ROM-Bank und ES 4.0c

Rolf Weidlich hat eine ROM-Bank für den JU-TE-Computer in der Ausbaustufe mit dem 6K-Betriebssystem entwickelt. Zur Verwaltung dieser ROM-Bank wurde das Betriebssystem ES 4.0 erweitert. Die im Emulator enthaltene erweiterte Version ist ES 4.0c.

Die ROM-Bank wird optional emuliert. Ist in den Einstellungen die Emulation der ROM-Bank aktiviert, enthält der Betriebssystem-ROM automatisch ES 4.0c anstelle von ES 4.0, sofern für diesen Bereich kein externes ROM-Image eingebunden wurde.


1. Hardware der ROM-Bank

Die ROM-Bank besteht aus mehreren jeweils 8 KByte großen einzelnen ROM-Bänken, von denen eine Bank im Adressbereich %2000-%3FFF eingeblendet wird. Die Auswahl der einzublendenden Bank erfolgt über einen Zähler, der über die beiden Bits P35 und P37 gesteuert wird. Die Ausgabe eines L-Impulses an P35 (Port 3, Bit 5) setzt den Zähler zurück und blendet die Bank 0 ein. Jeder ausgegebene L-Impuls an P37 (Port 3, Bit 7) zählt den Zähler um eine Position weiter und blendet somit die Bank mit der nächst höheren Nummer ein. Möchte man also Bank 5 im Adressbereich %2000-%3FFF einblenden, sind ein Impuls an P35 und fünf Impulse an P37 auszugeben.

Die originale ROM-Bank von Rolf Weidlich verwendet einen 128 KByte großen ROM und bietet somit 16 einzelne Bänke. Das Konzept mit dem Zähler beschränkt aber die Anzahl der einzelnen Bänke nicht. Aus diesem Grund kann der Emulator eine fast beliebig große ROM-Bank emulieren. Die Anzahl der einzelnen zu emulierenden ROM-Bänke ergibt sich aus der Größe des ROM-Images, welches die Datenbytes der gesamten ROM-Bank enthält.

2. Erweiterungen in ES 4.0c

2.1. Kommando X

Im Maschinenmonitor des ES 4.0 wurde das neue Kommando X eingeführt. Dieses ist der Zugang zur Software in der ROM-Bank.

Beim Aufruf des Kommandos X wird die ROM-Bank 0 in den Adressbereich %2000-%3FFF eingeblendet und anschließend die Adresse %2000 angesprungen. Ab dieser Adresse muss somit die Routine stehen, die das X-Kommando inhaltlich implementiert, also z.B. den Inhalt der ROM-Bank anzeigt und den Start der dort enthaltenen Programme ermöglicht. Beendet wird diese Routine mit einem RET-Befehl.

Möchte man also nach einem RESET direkt in die ROM-Bank kommen, muss man zuerst M und Enter drücken, um in den Maschinenmonitor zu gelangen, und anschließend die Tasten X und Enter betätigen.

2.2. Funktionstasten

Im originalen ES 4.0 sind zwar Funktionen für die Tasten F1 bis F6 enthalten, aber diese sind nach RESET nicht aktiv. ES 4.0c aktiviert nun die Funktionstasten nach einem RESET und belegt zusätzlich die Tasten F7 und F8 folgendermaßen:

F7 Bildschirmausgabe zwischen Scroll-Modus und Seitenmodus umschalten
F8 Soft-RESET, Sprung zur Adresse %0812

Die Funktionstasten F7 und F8 haben damit zwar keinen direkten Bezug zur ROM-Bank, es bot sich aber an, im Zuge der Erweiterung von ES 4.0 diese mit einer Funktion zu belegen.

3. Unterschiede zwischen ES 4.0 und ES 4.0c im Detail

Adresse [hex] Bedeutung
088A Statt %68 steht hier das Byte %48. Bit 6 = 0 bedeutet, dass Caps Lock standardmäßig ausgeschaltet ist. Der Emulator kehrt die Groß-/Kleinschreibung um, so dass ohne Shift Groß- und mit Shift Kleinbuchstaben eingegeben werden können.
08C4-08CB Bildschirmausschrift ES4.0c
08DA-08DC Aufruf des Unterprogramms zur Aktivierung der Funktionstasten
092F-0945 Routine zum Einblenden und damit Aktivieren einer ROM-Bank,
Die Banknummer ist im Register %54 zu übergeben.
0A4A-0A51 Alternativen Zeichensatz in RAM laden und aktivieren
0C66-0C68 Definition des Monitorkommandos X sowie dessen Startadresse
0D87-0D92
0DF4-0DF9
Inhalt des Monitorkommandos X,
Es wird Bank 0 eingeblendet und Adresse %2000 angesprungen.
1C08-1C0D Bank einblenden und starten (Adresse %2000 anspringen)
1EC8-1ECB Funktion für die Taste F7
1ECC-1ECF Funktion für die Taste F8
1FAB-1FD9 Unterprogramm zur Aktivierung der Funktionstasten:
Die Funktionen der Tasten F1 bis F8 werden an die entsprechende Stelle (%F7E0) in den RAM kopiert und damit die Funktionstasten aktiviert.