6502-Extension: Unterschied zwischen den Versionen
Tw (Diskussion | Beiträge) |
Tw (Diskussion | Beiträge) (→Einsatz in 6502 Systeme) |
||
| Zeile 60: | Zeile 60: | ||
* Commodore PET und CBM | * Commodore PET und CBM | ||
* [[Mikroprozessor_Boards/6502|6502 Microprocessor Kit von Wichit Sirichote]] | * [[Mikroprozessor_Boards/6502|6502 Microprocessor Kit von Wichit Sirichote]] | ||
| + | |||
| + | <br /> | ||
| + | === Anpassung an beliebige 6502 Systeme === | ||
| + | |||
| + | Das 6502 Extension Board kann prinzipiell an jedes System angepasst werden, das eine 6502 CPU verwendet. Die CPU 6502 hat einen Adressraum von 64K, wobei sich auch die IO Ports den Adressraum mit dem Speicher teilen. Die CPU 'sieht' also zu jedem Zeitpunkt generell immer nur 65536 Bytes (64K). Dieser Adressraum von 64K wird nun individuell genutzt von jedem 6502 System. Der Speicher gliedert sich in ROM (readonly Memory), in RAM (random access Memory) und IO. Das können aber beliebig viele Blöcke sein, die auch nicht aufeinander folgen müssen. | ||
| + | |||
| + | Nun hat das 6502 Extension Board auch selbst ROM (512K Flash), RAM (128K SRAM) und IO (das Register). Deshalb unterscheiden wir zwischen Board internen Speicher (Adressraum der 6502 Extension Platine) und Board externen Speicher (das 6502 Zielsystem). So gesehen ist die 6502 Extension schon fast ein selbstständiges kleines 6502 System, es fehlen nur Takterzeugung und Benutzer Schnittstellen. | ||
| + | |||
| + | Auf der 6502 Extension befinden sich zwei GAL Bausteine. Der innere GAL ist der Adressen Decoder, der das externe 6502 System abbildet. Es gehen alle 16 Adressleitungen der CPU auf den Adressen Decoder, deswegen kann er jedes einzelne Byte des Adressraum unserer 6502 CPU einem 'Speichertyp' zuordnen. So kann man praktisch jedes 6502 System nachbilden, was den Aufbau des Adressraum anbelangt. | ||
| + | |||
| + | Der Adressen Decoder erkennt also, auf 'was' (IO, ROM, RAM) die CPU in dem externen System zugreifen will. Will man nun zb. den gesamten RAM im Zielsystem ersetzen durch Board eigenen RAM, dann erfolgt dies aufgrund der Information des Adressen Decoder GAL. Dasselbe kann man mit dem externen ROM machen, man kann es ersetzen durch Board eigenen Speicher. Den IO Bereich kann man nicht ersetzen, aber man kann ihn 'unsichtbar' machen für die CPU. Das macht dann Sinn, wenn ein Programm einen möglichst großen durchgängigen Adressraum benötigt (zB. flache Adressierung: 64K RAM). | ||
| + | |||
| + | Der Adressen Decoder GAL ermöglicht also eine Anpassung des Board an ein externes 6502 System. Die Information über den Speichertyp beschränkt sich aber nicht auf IO, ROM und RAM. Der Speichertyp hat 3 Bits und kann damit bis zu 8 Zustände beschreiben. | ||
| + | |||
| + | |||
| + | Beim der CBM-8296 Implementierung gibt es folgende Speichertypen: | ||
| + | |||
| + | * die ersten 1024 Bytes des externen RAM (Zeropage, Stack, Buffer ...) | ||
| + | * der restliche externe RAM | ||
| + | * jede Art von ROM Sockel (8K Kernal, 8K BASIC, 4K Editor, 2x 4K Zusatz ROM) | ||
| + | * Bildschirm RAM | ||
| + | * externes IO (E800-E8FF und FFF0) | ||
<br /> | <br /> | ||
Version vom 7. Januar 2022, 11:46 Uhr
Inhaltsverzeichnis
Das 6502 Extension Board
Die 6502 Extension ist eine Platine, mit der man ein beliebiges 6502 System erweitern kann um RAM und ROM (Flash Speicher). Die 6502 Extension wird anstatt der CPU 6502 eingesetzt (die CPU kommt dann auf die Platine). Dadurch hat die Platine Zugriff auf den gesamten Adressraum der CPU (64KB).
Die Idee wurde stark inspiriert durch die Universal 6502 RAM and ROM expansion von Nicolas Welte. Dieses Board hat in der Praxis gezeigt, dass es für zahlreiche Einsatzgebiete wundervoll funktioniert. Heute ist Speicher sehr preisgünstig geworden. Und die Praxis mit dem 6502 RAM/ROM Board hat da und dort neue Wünsche aufgeworfen, deshalb habe ich die 6502 Extension entwickelt.
Auf dem Board befindet sich:
- ein Flash Speicher mit 512KB (AM29F040)
- ein SRAM Speicher mit 128KB (62LV1027)
- ein 74LS245 um den Datenbus zu trennen
- zwei GAL 22v10
- ein 74LS273 als Register
Was kann man mit dem Board tun:
- Diagnose an defekte 6502 Computer
- Reparatur von defekte 6502 Computer
- Speichererweiterung (RAM und ROM)
- Flash Laufwerk für Tools und andere Programme
Universal 6502 RAM and ROM expansion
Nicolas Welte hat mit der 6502 RAM/ROM Expansion ein großartiges Tool geschaffen. Dieses geniale Board lässt sich an jedes 6502 System anpassen und hat sich in der Praxis schon sehr bewährt. Vielen alten PET Computer wurde durch dieses Board neues Leben eingehaucht oder einfach nur der Speicher auf 32K erweitert. Man kann über DIP Switch die BASIC Version wählen oder zwischen 40 und 80 Zeichen umschalten (bei 8032 Systemen).
Der Unterschiede zum 6502 Extension Board sind:
- die 6502 Extension hat einen größeren FLASH Speicher (512K statt 128K)
- die 6502 Extension hat einen größeren SRAM Speicher (128K statt 32K)
- die Adressierung ist flexibler durch den Einsatz von zwei GAL
- Schreibzugriffe in den internen Board Speicher werden nicht ins externe System getragen
- Lesezugriffe in den internen Board Speicher werden nicht in den IO Bereich des externen System getragen
- die 6502 Extension ist über die Software konfigurierbar durch Einsatz eines Registers
Einsatz in 6502 Systeme
Das 6502 Extension Board kann prinzipiell in jedem System eingesetzt werden, das eine 6502 CPU verwendet. Allerdings ist jedes 6502 System für sich ziemlich speziell, was die IO und Speicherverwaltung anbelangt. Deshalb muss die 6502 Extension an das Zielsystem 'angepasst' werden. Diese Anpassung erfolgt über die beiden GAL Bausteine auf der Platine in Form einer JEDEC Datei. Der GAL Baustein kann mit den meisten EPROM Programmiergeräten (zB. der TL866) beschrieben werden.
Gute Einsatzmöglichkeit sehe ich für folgende Systeme:
- Commodore PET und CBM
- Commodore VC-20
- Commodore 1541 Floppy Laufwerk
- andere Commodore Floppy Laufwerke
- Single Board Computer (zb. das 6502 Microprocessor Kit von Wichit Sirichote)
Es sind JEDEC Dateien verfügbar für diese Zielsysteme:
- Commodore PET und CBM
- 6502 Microprocessor Kit von Wichit Sirichote
Anpassung an beliebige 6502 Systeme
Das 6502 Extension Board kann prinzipiell an jedes System angepasst werden, das eine 6502 CPU verwendet. Die CPU 6502 hat einen Adressraum von 64K, wobei sich auch die IO Ports den Adressraum mit dem Speicher teilen. Die CPU 'sieht' also zu jedem Zeitpunkt generell immer nur 65536 Bytes (64K). Dieser Adressraum von 64K wird nun individuell genutzt von jedem 6502 System. Der Speicher gliedert sich in ROM (readonly Memory), in RAM (random access Memory) und IO. Das können aber beliebig viele Blöcke sein, die auch nicht aufeinander folgen müssen.
Nun hat das 6502 Extension Board auch selbst ROM (512K Flash), RAM (128K SRAM) und IO (das Register). Deshalb unterscheiden wir zwischen Board internen Speicher (Adressraum der 6502 Extension Platine) und Board externen Speicher (das 6502 Zielsystem). So gesehen ist die 6502 Extension schon fast ein selbstständiges kleines 6502 System, es fehlen nur Takterzeugung und Benutzer Schnittstellen.
Auf der 6502 Extension befinden sich zwei GAL Bausteine. Der innere GAL ist der Adressen Decoder, der das externe 6502 System abbildet. Es gehen alle 16 Adressleitungen der CPU auf den Adressen Decoder, deswegen kann er jedes einzelne Byte des Adressraum unserer 6502 CPU einem 'Speichertyp' zuordnen. So kann man praktisch jedes 6502 System nachbilden, was den Aufbau des Adressraum anbelangt.
Der Adressen Decoder erkennt also, auf 'was' (IO, ROM, RAM) die CPU in dem externen System zugreifen will. Will man nun zb. den gesamten RAM im Zielsystem ersetzen durch Board eigenen RAM, dann erfolgt dies aufgrund der Information des Adressen Decoder GAL. Dasselbe kann man mit dem externen ROM machen, man kann es ersetzen durch Board eigenen Speicher. Den IO Bereich kann man nicht ersetzen, aber man kann ihn 'unsichtbar' machen für die CPU. Das macht dann Sinn, wenn ein Programm einen möglichst großen durchgängigen Adressraum benötigt (zB. flache Adressierung: 64K RAM).
Der Adressen Decoder GAL ermöglicht also eine Anpassung des Board an ein externes 6502 System. Die Information über den Speichertyp beschränkt sich aber nicht auf IO, ROM und RAM. Der Speichertyp hat 3 Bits und kann damit bis zu 8 Zustände beschreiben.
Beim der CBM-8296 Implementierung gibt es folgende Speichertypen:
- die ersten 1024 Bytes des externen RAM (Zeropage, Stack, Buffer ...)
- der restliche externe RAM
- jede Art von ROM Sockel (8K Kernal, 8K BASIC, 4K Editor, 2x 4K Zusatz ROM)
- Bildschirm RAM
- externes IO (E800-E8FF und FFF0)
Dokumente / Dateien
Links
- die großartige 6502 RAM/ROM Expansion von Nicolas Welte
- The universal 6502 RAM/ROM Expansion (Nicolas Welte's Hardware Projects)