Sorry, aber da MUSS ich Klugscheissen!Zitat von i_make_it
Beim Atari ST ganz bestimmt nicht, den hat man ohne Bankswitching auf 14MB bringen können. Beim Atari XL/XE wurde das gerne und noch häufiger wie beim C64 gemacht.
Atari XL/XE zu Atari ST verhält sich wie C64 zu Amiga.
Aber zum Threadthema:
ich würde empfehlen sich mal die Bankswitchingmethoden beim Atari 2600 anzuschauen.
Dadurch das die Hardware so begrenzt war und zum Modulport z.B. kein /WE etc geführt wurde, haben sich die Entwickler zum Teil wirklich geniale Bankswitchingmethoden ausgedacht.
Ich habe mal eine nachgebaut, mit ein paar 74er TTL Ics. Das läuft dann nach der Methode:
Schreiben oder Lesen auf eine bestimmte Adresse und das Rom wird umgeschalten.
Vorteil: Man braucht keinen Portpin von einem anderen IC etc pp.
Ich würde das Schaltungs- und Programmtechnisch dann so lösen:
Erstmal den RAM bedarf bestimmen.
z.B.
64K Eprom
32K RAM
Aufteilen in 1x 16K Eprom und anschließen in den 16K von 17-32K die 3 16K Blöck einblenden.
Die ersten 16K Eprom mit allen "wichtigen und oft" verwendeten Routinen.
Bei jedem Sprung in eine Routine die in einem geswitchten ROM-Bereich liegt muß man vor dem Sprung nur noch einen Dummyread oder write durchführen. Evtl. noch ein oder 2 NOPs falls sich ungünstige Gatterlaufzeiten bei den TTls ergeben und dann den Sprungbefehl.
Mit der Adresse des Dummyzugriffs übergibt man dann auch gleich den Block den man einblenden möchte. Ziemlich Elegant, weil nur ein zusätzlicher Befehl zum Einblenden pro Aufruf notwendig ist.
Im Anhang an den Sprungbefehl kann man dann (je nach Programmierstil) dann auch gleich mit einem weiteren Dummyread/write nach dem Rücksprung einen default Zustand wieder herstellen.
Die Schaltungen passen auf einen Zwischensockel und sind ziemlich flexibel.
Vorteil: die Methode hat sich bewährt und die Schaltungen kann man im Netz finden. Stichwörter: Atari 2600 Bankswitching. Nicht nur nach Webpages auch nach txt-Dateien im web suchen auf die diese Stichworte treffen.
Viel Erfolg!
Lesezeichen