Ulrich Zander hat ebenfalls ein ROM-Modul entwickelt, das wichtige Programme für den Z9001 enthält.
Ulrichs ROM-Bank mit 256 KByte Kapazität und mit 16K SRAM (batteriegestützt, Foto vom KC-Treffen 2007)
Bereich: | C000-E7FFh |
RTC-Port: | 60h-6Fh |
Bank-Port: | 78h |
Es liegen 16 Bänke (0..15) parallel in diesem Speicherbereich. Es ist immer eine Bank aktiv. Die geraden Bänke 0,2,4,… haben eine Kapazität von 10KByte, die ungeraden Bänke von 6 KByte.
Über eine (beliebige) Ausgabe auf den Bank-Port wird die nächste Bank aktiviert. Nach Reset ist Bank 0 aktiv.
Der Port ist nur ein OUT-Port, d.h. die aktuelle Bank kann nicht über den Port zurückgelesen werden!
Außerdem ist im Modul auch Software für einen Uhren-Chip (RTC) enthalten (Port 60-6Fh).
ROM-Bank und Software sind eine Entwicklung der TU-Dresden(?)
s. http://www.sax.de/~zander/z9001/ex.html (ROM-Bank-Modul)
RTC Echtzeituhr nach O. Matthäi (nicht kompatibel zur GIDE-RTC).
Damit alle Bänke vom OS aus nach Software durchsucht werden können, gibt es ein angepasstes OS.
Der System-PROM im Geräte muss dazu ausgetauscht werden, um die ROM-Bank in ihrer derzeitigen Form nutzen zu können!
In der ROM-Bank gibt es eine Auflistung der enthaltenen Programme („H - Menüanzeige“) und eine Suchfunktion („SUCH“, „SUCHALL“) zum Auflisten transienter Kommandos.
Die Programme in der ROM-Bank müssen entweder für den ROM-Bereich geschrieben sein, in dem sie abgelegt werden, oder über eine kurze (selbst zu schreibende) Umladeroutine in den RAM-Bereich umkopiert werden, in dem sie arbeiten.
Programme, die größer als 10K sind, müssen auf mehrere Bänke verteilt werden. Das Kopieren in den RAM und das Weiterschalten des Bank-Ports müssen aufeinander abgestimmt sein. Der Loader für Pascal kann als Beispiel dienen.
BASIC-Programme sind derzeit keine in der ROM-Bank abgelegt. Man kann aber ein BASIC-Programm von 300h-(3D7h) speichern. Nach dem Zurückkopieren in den RAM wird WBASIC aufgerufen und man kann das Programm erneut starten.
Soll der Programmname im Menü auftauchen, ist in Bank 3 der Name zu ergänzen. Im Programmteil „H - Menüanzeige“ am Ende der Bank ist entsprechend Platz freigehalten.
Bank 7, 11, 13, 14, 15 sind leer und können für eigene Programme genutzt werden.