![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
| ->Atari ST-> reSTeycle->Decodi Decoda | |||||||||
| Adressdecodierung | |||
|
Der original Atari ST wurde mit 192KB Rom, welches sich auf sechs ROMs mit je 32KB aufteilte. Außerdem
konnte per Steck-Modul noch einmal 128KB Rom eingesteckt werden. Auch hier waren 32KB-Chips vorgesehen.
Das macht insgesamt 10 ROMs, da aber der ST 16-bittig ausgelegt ist, werden immer 2 ROMs als eine Bank
angesprochen, insgesamt also 5 Bänke. Der GLUE stellt hierfür 5 ROM-Select-Leitungen bereit. Spätestens beim Mega ST war das gesamte ROM in zwei 128KB-ROMs untergebracht. Um diese IC's zu selectieren wurden die drei ROM-Select-Leitungen des GLUE mit einem LS11 (Oder mit 3 Eingängen) zu einem Select- Signal zusammengefaßt. Später mit dem TOS 2.06 war der für das ROM vorgesehene Speicherbereich von 192 KB nicht mehr ausreichend und das TOS 2.06 wurde in den Speicherbereich ab $E00000 verlegt. Beim ReSTeycle wollte ich sowohl das TOS 2.06, als auch das alte TOS betreiben können. Dazu werden zwei FLASH-ROMs (im System beschreibbar) mit je 4 Mbit, also zusammen 8 Mbit = 1 MByte, verbaut. Die unteren 512 KB werden als TOS 2.06 im Adressbereich $E00000-$E7FFFF eingeblendet. Aus den oberen 512 KB werden 192 KB im Breich $FC0000-$FEFFFF als TOS 1.x eingeblendet. Die darunter liegenden 128 KB können optional in den Cartridge-Bereich eingeblendet werden. Die obersten 64 KB und die 128 KB zwischen TOS 2.06 und Cartridge können nicht adressiert werden. Im Falcon liegen die Adressen des IDE-Port ab der Adresse $F00000. Da im PC die I/O-Adressen bis $1FF für Systemkomponenten reserviert sind und nicht für Karten verwendet werden sollen, lag es nahe, die BUS-I/O-Adressen gleich hinter die IDE-Ports zu legen, so daß, ganz PC-like, für alles die 10 niedrigsten Adressbits von $F00000-$F003FF ausgewertet werden. Der Adressdecoder muß also für die Bereiche des TOS 2.06 und des alten TOS sowie, abhängig von /CartEN auch für den Adressbereich des Cartridge, den Chip-Select für die FLASH-ROMs und den /CS für ISA-Memory und für ISA-I/O erzeugen. Der /RomCS muß außerdem per /DTACK bestätigt werden. Da ein GAL nicht ausgereicht hätte um alle Adressen für die ISA-Devices zu decodieren, werden diese ohne Berücksichtigung von /AS erzeugt. Die Geräte müssen sich also selbst um die genaue Decodierung ihrer Adressen und die /DTACKs kümmern. |
|||
| <<zurück-weiter>> | |||