Mikroprozessor Boards/65816

Aus
Wechseln zu: Navigation, Suche
65C816 Kit

65C816 Mikroprozessor Board

Es handelt sich hier um einen Einplatinencomputer für die CPU 65C816. Das Board wurde von Wichit Sirichote entwickelt und wird von ihm über eBay vertrieben. Alle Bauteile auf dem Board sind gut erhältlich, so dass Ersatzeile kein Problem darstellen.

Die 65C816 ist eine sehr interessante CPU. Insbesondere deswegen, weil die 65816 relativ einfach an ein bestehendes 6502 System angepasst werden kann. Das liegt daran, dass die 65C816 sich im sogenannten Emulationsmodus wie eine 6502 CPU verhält. Die 65C816 ist im Nativmodus eine 16 Bit CPU, die bis zu 16MB (24 Bit Adressbus) adressieren kann. Im Gegensatz zu herkömmlichen Banking in 6502 Systeme kann der Adressraum sehr einfach zugegriffen werden. Es kann der gesamte Adressraum direkt und indirekt adressiert werden.

Die Doku zu dem Board ist tadellos, wie bei allen Boards von Wichit Sirichote. Die Systemsoftware ist als Source Code verfügbar und kann so einfach modifiziert und erweitert werden. Zum übersetzen des Source Code benötigt man als Assembler den TASM. Der TASM läuft allerdings nur in einem DOS Emulator.

Als Cross Assembler kann man zB. den ACME oder den XA65 verwenden. So kann man ganz bequem die Software an einem PC entwickeln und anschließend direkt in das Board laden, um sie zu testen.


Specifications

  • CPU 65C816 mit 1.228 MHz Takt (DIL-40 Sockel)
  • Speicher: 128kB RAM, 32kB EPROM
  • Adressdekodierung über einen GAL22v10
  • Display: 7-Segment LED -- 8 Zeichen
  • Debugging LED: 8 LED an GPIO1 (Adresse $8000)
  • Display: optional LCD Anzeige (HD44780)
  • Tastatur: 36 Tasten
  • RS232 Port: 9600 bd über einen ACIA (Motorola 6850)
  • Bus Interface
  • Ticker: 10ms Takt (100 Hz)
  • Erweiterungs-Port: 40-pin header
  • Board Maße: xx x xx mm


Unterschiede von 6502 und 65C816

Nach einem Reset befindet sich die CPU 65C816 im Emulationsmodus. Im Emulationsmodus verhält sich die CPU wie eine normale 6502, und kann daher auch nur 64KB adressieren. Wie bei der 6502 befinden sich die Hardware Vektoren (Reset, NMI, IRQ) am obersten Ende des 64KB großen Adressraum. Daher muss sich da ein ROM befinden.

Im Nativmodus kann die CPU 65C816 bis zu 16MB adressieren. Der Adressbus ist 24 Bit breit und hat damit 8 Bit mehr als die 6502. Es stehen quasi 256 Banks zu je 64KB zur Verfügung. Die Bank 0 ist der erste 64KB Block im Adressraum. Im Emulationsmodus kann die CPU nur auf die Bank 0 zugreifen.

Die Zeropage heißt bei der 65C816 Directpage. Sie muss im Nativmodus nicht unbedingt an der Adresse $00000 beginnen, sondern sie kann frei in der Bank 0 verschoben werden. Es ist aber empfehlenswert, die Directpage an eine 256 Byte Grenze zu legen. Ansonsten benötigt der Zugriff auf Daten in der Directpage einen Takt mehr.

Der Stackpointer ist im Nativmodus 16 Bit breit. Der Stack liegt immer in der Bank 0, aber er ist nun nicht mehr auf 256 Byte begrenzt.

Alle Register (AC, XR, YR) sind nun im Nativmodus optional 16 Bit breit. Mittels zweier Flags im Status Register können die Bitbreite von AC bzw. XR und YR eingestellt werden auf 8 Bit oder 16 Bit. Das wirkt sich auf alle Befehle aus, die das Register betreffen. Unter Umständen benötigen die Befehle im 16 Bit Modus dann ein Byte mehr.

Die 65C816 hat einige Befehle mehr als die 6502. Daher sind einige illegale Opcodes der 6502 nicht mehr verfügbar, auch nicht im Emulationsmodus. Möglicherweise laufen daher Programme die illegale Opcodes verwenden nicht richtig auf der 65C816.



Memory Map

Die originale Speicher Belegung nützt den physisch verfügbaren Speicher leider nicht völlig aus. Auf dem Board sind 128KB SRAM und ein 32KB EPROM verbaut. Davon sind aber nur 96KB SRAM und 16KB EPROM für die CPU sichtbar. Damit bleiben 32KB SRAM und 16KB EPROM ungenutzt.

  • 32KB SRAM ($00000 - $07FFF)
  • 16KB IO ($08000 - $0BFFF)
  • 16KB EPROM ($0C000 - $0FFFF)
  • 64KB SRAM ($10000 - $1FFFF)



Downloads


WEB Links