192 K RAM im Genie I und II

H.Bernhardt, C.Ueberschaar

Einer der wesentlichen Nachteile von 8 Bit-Mikroprozessoren gegenüber 16 Bit-
Prozessoren ist die Beschränkung auf nur 16 Adreßleitungen. Der Prozessor
kann damit 216 = 65536 = 64 K Speicherstellen von einander unterscheiden. Von
diesen 64 K werden beim Genie 16 K für ROM, Sonder-ROM, Video-RAM, Tastatur
und memory mapped decodierte Peripheriegeräte benutzt. Bei angeschlossener
Floppy Disk und geladenem DOS und Disk-BASIC werden je nach DOS nochmals an-
nähernd 16 K RAM belegt. Die verbleibenden 32 K Speicherraum reichen für die
meisten Anwendungen aus.

Wenn allerdings Aufgaben bewältigt werden sollen, bei denen große Datenmengen
schnell gesammelt werden müssen (z.B. Messungen), miteinader verrechnet und
z.B. in Form von Graphiken ausgegeben werden müssen, dann werden 32 K schnell
zu knapp.

Den prinzipiellen Weg zu mehr Speicher beim Genie I und II hat der Hersteller
bei der Änderung von 16 K RAM auf 48 K RAM im Grundgerät (83er Modell) aufge-
zeigt. Durch Ersetzen der 4116 (16 K x 1 Bit) RAM-Chips durch 4164 (64 K x 1 Bit)
RAM-Chips und einige dafür nötige Änderungen, ist der gesamte vom Z80-Prozessor
adressierbare Speicherbereich bereits im Grundgerät auf dem CPU-Board realisiert.
Die Steckplätze für 32 K RAM im Expansionsinterface werden nicht mehr gebraucht.

Was auf dem CPU-Board möglich ist, ist aber auch im Expansionsinterface durchzu-
führen, indem 4116er Chips durch 4164er RAMs ersetzt werden.

Die dadurch vorhandenen 192 K RAM lassen sich allerdings nicht durch Umschalten
zwischen den drei 64 K-Blöcken benutzen. Beim Umschalten vom Hauptblock in einen
anderen Block wären Betriebssystem und Stack nicht mehr verfügbar. Das Umschalten
darf nur einen kleinen Teil im oberen Adreßraum umfassen.

In der im Folgenden beschriebenen Lösung wurden dafür die oberen 4 K (oder 8 K;
durch Software umschaltbar) also der Adreßraum F000 H bis FFFFH (bzw. E000 H
bis FFFF H beim 8 K-Banking) gewählt. Das bedeutet, daß der gesamte Adreßraum
von 64 K in 60 K (56 K) Grundspeicher und einen 4 K (8 K)-Bereich, der durch Soft-
ware steuerbar überall in den zusätzlichen Speicher hineingelegt werden kann,
unterteilt ist.

- 2 -

Die Schaltung

Die softwaregesteuerte Umschaltung der 4 K (8 K)-Blöcke, die bei einer Aus-
gabe einer Adresse in diesem Speicherbereich jeweils angewählt werden, er-
folgt über ein 8 Bit-Latch mit ENABLE und CLEAR 74 116, das durch die Port-
adresse F 0 H decodiert ist (Abb.1). Durch einen OUT-Befehl läßt sich in das
Latch ein 8 Bit-Wort eintragen, das dann ständig an den Ausgängen anliegt
und zur Selektion eines von maximal 256 4K (8 K)-Blöcken herangezogen werden
kann. Der Eingang CLEAR wird an die RESET-Leitung des Systems angeschlossen
und gewährleitet dadurch, daß beim Einschalten des Systems immer alle Bits des
Latch auf Low gesetzt sind.

Abb. 1

Decodieren der Portadresse F0H
( F1H, F2H, F3H )

Das 8 Bit-Wort im Latch wird benutzt, um einerseits einen der 3 im Gerät vor-
handenen 64 K-Blöcke anzuwählen und um andererseits im angewählten Block einen
bestimmten 4 K (8 K)-Bereich zu decodieren.

Die niederwertigen 4 (3) Bits im Latch werden anstelle der Adreßleitungen A 12
(A 13) bis A 15 an die Adreßmultiplexer der RAMs gelegt und adressieren damit
einen 4 K (8 K)-Bereich im angewählten 64 K-Block.

- 3 -

Die höherwertigen 4 (5) Bits werden zur Auswahl eines von maximal 16 (32)
Blöcken mit je 64 K benutzt. Auf diese Art lassen sich mit dem 8 Bit-Wort
im Latch insgesamt 1 M Byte ( 2 M Byte) Speicher verwalten. Hier wird aber
nur von drei 64 K-Blöcken Gebrauch gemacht, weil für diese nach Ersetzen der
4116er RAMs durch 4164er RAMs und einige geringfügige Änderungen die nötigen
Steckplätze im System vorhanden sind. Die Schaltung liefert aber die Auswahl-
impulse für insgesamt 32 solcher 64 K-Blöcke. Mit geeigneten Speicherkarten
läßt sich das System auf 2 M Byte Speicher erweitern.

Der Blockauswahlimpuls, der gewonnen wird, wenn alle 4 (5) höherwertigen Bits
des Latch 0 sind und der Prozessor eine Adresse oberhalb F000 H ( E000 H)
ausgibt, muß den RAM-Block auf dem CPU-Board anwählen. Dieser Block muß aber
auch angewählt werden, wenn eine Adresse unterhalb F000 H ( E000 H) ausge-
geben wird. Die Schaltung muß also erkennen, ob eine Adresse unterhalb des
umschaltbaren Bereichs anliegt, und dann die normalen Adreßleitungen A12
(A 13) bis A 15 an die Adreßmultipexer der RAMs durchschalten, oder ob eine
Adresse im umschaltbaren Bereich anliegt, und dann die niederwertigen 4 (3)
Bits des Latch als Adresse an die Multiplexer der RAMs anlegen.

Diese Aufgabe wird durch ein 4 Input NAND 74 LS 20 (IC 10), dessen Ausgang
immer dann low ist, wenn A 12 (A13) bis A 15 alle gleichzeitig high sind,
und einen Multiplexer 74 LS 157 (IC 15), dessen SELECT Eingang je nach Zu-
stand des NAND entweder die unteren Bits des Latch oder die System-Adreß-
leitungen A 12 bis A 15 durchschaltet.

Wenn die an das NAND-Gatter angelegten Adreßleitungen alle high sind (also
der obere, umschaltbare Adreßbereich angewählt wird, dann werden vom Multi-
plexer die Ausgänge des Latch durchgeschaltet, wenn auch nur eine dieser
Adreßleitungen low ist, werden die normalen Adreßleitungen vom Multiplexer
durchgeschaltet (Abb. 2).

Die Umschaltung zwischen Banking von 4 K und von 8 K erfolgt über das Bit 0
eines anderen Latch. Ein zweiter Baustein 74 116 wird dazu in zwei 4 Bit-
Latches unterteilt. Beide Hälften werden durch unterschiedliche Portadressen
Pins 11 und 10 von IC 3) decodiert. Die Hälfte, die durch die Portadresse
F2 H decodiert wird, dient als Software-Schalter. Der Bit 0-Ausgang wird
an die SELECT-Eingänge von 3 weiteren 74 LS 157 Multiplexern gelegt und
kann so die Durchschaltung von je einem von 2 Eingängen zum Ausgang des Multi-
plexers steuern.

- 4 -

Abb. 2

Multiplexern der Adressen A 12 -
A 15 und der unteren Bits des
Latch. Wenn A 12 (A 13) bis A 15
alle gleichzeitig high sind,
werden die unteren Bits des Latch
durchgescha1tet .

An den A-Eingängen der beiden Multiplexer IC 7 und IC 8 liegen die 8 Bit
des Latch F0 H an. Diese 8 Bit werden dann direkt durchgeschaltet, wenn
das Bit 0 des Steuerlatch F2 H low ist (4 K-Banking). An den B-Eingängen
der Multilexer liegen ebenfalls die Bits 0 bis 6 des Latch F0 H an, nur,
daß jedes Bit um eine Position zum höheren Stellenwert verschoben ist. Wenn
das Bit 0 des Steuerlatch F2 H high ist (8 K-Banking), erscheint das Wort
des Latch an den Ausgängen der Multilexer arithmetisch links geshiftet.

Das Bit 7 des Latch F0 H liegt dann am Ausgang 1 des dritten Multipexers
IC 9 an. Am niederwertigsten Ausgang von IC 7 liegt dann der Pegel der
Adreßleitung A 12 an (Abb.3).

Die Adreßleitungen A 12 und A 13 werden durch den dritten 74 LS 157 (IC 9)
ebenfalls gemultiplext, so daß beim 4 K-Banking A 12 an den vierten Eingang
des 4 Inputs NAND Gatters (IC 9) anliegt, während beim 8 K-Banking A 13 an
diesen Eingang gelegt wird und A 12 an den B-Eingang des Multiplexers, um
bei Zugriff auf den Grundspeicherbereich 0 - 56 K als niederwertigstes Bit
neben den 8 Bit des Latch durchgeschaltet zu werden. Die Daten an den Aus-
gängen der Multiplexer IC 7 bis IC 9 beim 4 K-Banking und beim 8 K-Banking
werden in Tabelle 1 dargestellt.

- 5 -

Abb. 3

Einstellen von 4K- oder 8K-
-Banking über Bit 0 des Steuerlatch
F2H (Signal Q0 ). Die Bits des
Latch werden bei 8K-Banking arith-
metisch links geschiftet durchge-
schaltet. A 12 wird als LSB durch-
geschaltet.

In beiden Fällen werden die Multiplexerausgänge Y 1 bis Y 4 (am IC 7)
zusammen mit den System-Adreßleitungen A 12 bis A 15 an den Multiplexer
IC 15 gelegt. Durch Selektion des NAND-Gatters IC 10 wird eine dieser
beiden Gruppen dort durchgeschaltet und ergibt die Adreßleitungen A 12'
bis A 15'.

Zwingend ist die Verwendung der Signale A 12' bis A 15' nur im 64 K-Block
auf dem CPU-Board, weil hier auch der nicht umschaltbare Hauptadreßraum
bis 60 (56) k liegt. Alle anderen 64 K-Blöcke können auch direkt mit den

- 6 -

Tabelle 1   Von den Multiplexern (IC 7 bis IC 9) durchqe-

schaltete Signale für 4K- und 8K-Banking

Ausgängen Y 1 bis Y 4 des Multiplexers IC 7 als Adresse A 12 bis A 15 be-
schaltet werden, weil diese Speicher je nach eingestellter Bank im Latch
F0 H nur bei Ausgabe von Systemadressen oberhalb F000 H (E000 H) ange-
sprochen werden.

Die Multiplexer Ausgänge Y 5 bis Y 8 werden an zwei 74 LS 154 (1 aus 16
Decoder) gelegt und ergeben die Block-Auswahlimpulse BS 0 bis BS 31, die
den jeweiligen 64 K-RAM-Block freigeben.

Y 9 gibt jeweils einen der beiden 1 aus 16 Decoder frei. Beim 4 K-Banking
muß diese Auswahl durch Setzen von Bit 1 im Steuerlatch F2 H (low: 0-1 M

- 7 -

Byte Bereich; high: 1-2 M Byte Bereich) erfolgen. Die prinzipielle Freigabe
beider 1 aus 16 Decoder erfolgt durch das 4 Input NAND (IC 10 ), wenn A 12
bis A 15 (A 13 bis A 15 ) alle high sind.

Y 11 wird nicht benutzt. Y 10 und Y 12 steuern die Schaltung von A 12 oder
A 13 an den Eingang des 4 Input NAND Gatters IC 10 und an den Eingang B 1
des Multiplexers IC 7.

Der Grundspeicherbereich, der 64 K-Block auf dem CPU-Board, der bei Low auf
den Ausgängen des Multiplexers IC 8 ( Y 5 bis Y 8) decodiert wird, hat dabei
mehrere Funktionen. Der Adreßbereich 16 - 60    (56) K wird vom Prozessor direkt

adressiert. Andererseits ist er auch in den Banking-Zugriff eingeschlossen,
so daß jeder 4 K (8 K)-Bereich durch Ausgabe der Bank Nummern 0 - 15 (0 - 7)
in das Latch F0 H in den oberen Banking-Adreßraum F000 H (E000 H) bis FFFF H
gelegt werden kann. Das kann mit dem ohnehin in diesem oberen Adreßraum liegenden

Bereich und mit dem Bereich 0 - 16 K, der parallel zum ROM liegt, gemacht
werden. Wenn allerdings Teile des Betriebssystems, des BASIC oder des An-
wenderprogramms in den oberen Adreßraum gelegt werden, in den z.B. Meßdaten
eingetragen werden, so überschreiben diese Daten die jeweiligen Programme.

Dieses Problem kann z.B. dadurch gelöst werden, daß entsprechende Bank
Nummern nicht benutzt werden (4 — 14 beim 4 K-Banking und 2-6 beim 8 K-
Banking). Sicherer ist aber eine Kontrollschaltung, die immer dann, wenn
eine verbotene Bank Nummer an die RAMs durchgeschaltet wird, sofort einen
RESET am Latch F0 H auslöst und darin die Bank Nummer 0 einstellt, die
in jedem Fall erlaubt ist.

In Tabelle 2 sind die Bitkombinationen an den Ausgängen des Multiplexers
IC 7 angegeben, die beim Banking im 64 K-Block auf dem CPU-Board erlaubt
sind, und diejenigen, die verboten sind.

Es ist zu erkennen, daß für die erlaubten Bank-Nummern folgende Bedingungen

für die Bitkombination gelten:

1)  Y 4, Y 3, Y 2 und Y 1 müssen alle gleichzeitig high sein oder

2) Y 4 und Y 3 müssen beide gleichzeit low sein und

3) Y 5 bis Y 8 müssen alle low sein (64 K-Block Nr. 0 decodiert), weil
in anderen Blöcken diese Kombinationen erlaubt sind.

- 8 -

Tabelle 2    Bitkombinationen (an den Ausgängen des
 Multiplexers IC 7) der möglichen Bank-
 Nummern für den RAM-Block auf dem CPU-Board

Die "Sicherung" muß also erkennen, wenn Bedingung 3 und eine der beiden
anderen Bedingungen gleichzeitig erfüllt sind. Die in Abb. 4 gezeigte ein-
fache Schaltung erkennt diese Bitkombinationen und gibt am letzten NAND-
Gatter ein Low-Signal aus, wenn eine verbotene Bank-Nummer vorliegt. Dieses
low-Singal wird zum Löschen des Latch F0H benutzt. Da aber auch durch RESET
das Latch gelöscht werden soll, ist eine AND-Verknüpfung (2 NAND Gatter in
IC 4) von RESET und dem Signal der "Sicherung" nötig. An die beiden durch
F1H und F2H decodierten Latches kann das RESET Signal direkt angeschlossen
werden.

Diese Schaltung hat einen kleinen Schönheitsfehler. Beim 8 K-Banking wird
auch der Adreßbereich E000 H bis EFFF H, der als untere Hälfte des oberen
8 K-Adreßbereichs durchaus erlaubt ist, als verboten erkannt (Y 1 = A 12 = 0 ;
damit sind Y 1 bis Y 4 nicht alle gleichzeitig high). Diese 4 K Byte werden
dabei zugunsten erhöhter Sicherheit verschenkt.

- 9 -

  Abb.4

 Sicherungsschaltung zur Verhinderung

   verbotener Bank-Nummern

Vereinfachte Schaltung für beschränkte Anwendung

In vielen Fällen wird ein Umschalten von 4 K- auf 8 K-Banking durch Software
gar nicht gefordert sein. Es genügt hier eine einmalige in Hardware vorge-
gebene Einstellung auf entweder 4 K- oder 8 K-Banking.

Weiterhin kann davon ausgegangen werden, daß 1 M Byte Speicherplatz aus-
reichen.

Wahrscheinlich kann auch die weiter unten noch beschriebene Bankumschaltung
des Adreßbereichs des Sonder-ROM (3000 H - 36FF H) entfallen.

Es kann dann auf die ICs 6,7,8,9 und 14 der Banking-Schaltung verzichtet
werden. Anstelle der ICs 7 bis 9 können die Eingänge A (für 4 K-Banking)
oder B (für 8 K-Banking) direkt per Drahtbrücken in der Banking Karte an
die Ausgänge Y geschaltet werden.

Der Ausgang Y 9 ist an GND zu schalten.

Bei Verzicht auf IC 14 (Verwaltung des Bereiches 1 - 2 M Byte) kann auch
das Steuerlatch F2 H (IC 6) entfallen. Damit entfällt aber auch die Möglich-
keit, mit dem Latch F1 H eine Umschaltung des Adreßbereichs des Sonder-ROM
zu verwalten.

- 10 -

Auch in dieser abgemagerten Version kann die Schaltung beim 83er Modell ohne
herkömmliches Expansionsinterface mit Speichersteckplätzen den Zugriff auf die
16 K RAM, die parallel zum ROM liegen und deshalb bisher nicht verfügbar waren,
ermöglichen.

Notwendige Änderungen im Genie

Beim Genie Mikrocomputer ( 82er Modell) bestehen im Grundgerät 16 K RAM und
im Expansionsinterface 32 K RAM in Form von 8 und 16 Stück 4ll6 Chips (16 K x
1 Bit). Beim 83er Modell sind die 8 Chips auf dem CPU-Board durch 4l64 (64 K x
1 Bit) Chips ersetzt worden. Der Unterschied zwischen beiden Typen besteht
darin, daß die 4116er RAMs die drei VersorgungsSpannungen + 5 V (Vcc), + 12 V
(Vdd) und - 5 V (VBB) benötigen, während die 4164er Chips nur noch + 5 V be-
nötigen (Abb.5). Um in den gleichen Sockeln 4164er RAMs benutzten zu können,
müssen die drei Versorgungsspannungszuführungen zu den RAM-Blocks abgetrennt
werden. + 5 V ist nun an die Pins 8 der RAMs anzulegen, während an die Pins 9
(bisher beim 4116 + 5 V) A 7 anzulegen ist. Die Bezeichnung der Adreßleitungs-

Pins im Pinout der beiden RAM-Typen ist nicht zu verwechseln mit den Adreß-
leitungen des Systembus A 0 bis A 7. An die Pins A 0 bis A 7 der RAMs werden
die durch Multiplex nacheinander durchgeschalteten Gruppen A 0 bis A 7 und
A 8 bis A 15 des Systembus gegeben.

Abb. 5 Pinout der RAM-Typen 4116 und 4164

- 11 -

Gegenüber der Belegung der Multiplexer 74 LS 157 bei Benutzung von 4116 RAMs,
wo A 0 bis A 6 und A 7 bis A 13 als Gruppen nacheinander durchgeschaltet werden,
muß bei Benutzung von mehr als nur einem 64 K-Block wegen des Refreshings
unbedingt A 7 mit A 0 bis A 6 zusammen durchgeschaltet werden, während A 8
bis A 13 zusammen mit den dazukommenden Adressen A 14 und A 15 durchgeschaltet
werden müssen. Die nötigen Änderungen an den Multiplexern im Grundgerät und im
Expansionsinterfache sind in Abb.6 und Abb. 7 gezeigt.

Abb. 6

Änderung der Beschaltung der Adreß-
multipexer des RAM-Blocks auf dem
CPU-Board

Anstelle der Systembus-Adressen A 12 bis A 15 sind zumindest auf dem CPU-Board

die Signale A 12' bis A 15' der Banking-Schaltung zu benutzen. Auf dem Board
im Expansionsinterface und auf eventuell dazukonmenden weiteren Speicherkarten
können auch die Signale Y 1 bis Y4 von IC 7 anstelle von A 12' bis A 15' ver-
wendet werden.

Abb. 7

Änderung der Beschaltung der Adreß-
multiplexer der RAM-Blocks im
Expansions-Interface

- 12 -

Anstelle der bisherigen Blockauswahlinpulse 32 K und 48 K (Pins 6 und 7 von
Z 29, 74 LS 139) sind im Expansionsinterface die 64 K-Blockauswahlimpulse
BS 1 und BS 2 (Pins 2 und 3 von IC 13, 74 LS 154) der Banking-Schaltung an
Pins 1 und 2 von Z 32 (74 LS 00) und Pins 10 und 12 von Z 22 (74 LS 32)
zu legen. Die Pins 9 und 10 von Z 37 (74 Ls 20), an denen auch die Signale
32 K und 48 K lagen, müssen beide mit dem Signal von Pin 8 des IC 12
74 LS 00) der Banking-Karte beschaltet werden. Die entsprechenden Verbin-
dungen zwischen Z 29 und Z 37 und zwischen Z 37 und (Z 22 und Z 32) müssen
getrennt werden.

Die Auswahl des 64 K Blocks auf dem CPU Board und auch der ROMs soll unter
mehreren Voraussetzungen möglich sein:

1)  Wenn eine Adresse oberhalb von F000H (E000H beim 8K-Banking) auf dem
Systembus liegt und der 64 K-Block 0 eingestellt ist (und beim 4 K Banking
Bit 1 im Steuerlatch F2 H low ist):

Dann liegt an Pin 1 des 1 aus 16 Decoders IC13 (74 LS 154) Low-Pegel an
(BS 0= 0).

2) Wenn eine Adresse unterhalb F000 H) vom Prozessor ausgegeben wird:

Dann ist der über IC 11 invertierte Ausgang Pin 8 des 4 Imput NAND Gatters
IC 10 low aktiv.

Diese beiden Signale werden an die Pins 1 und 2 sowie 4 und 5 von Z 21
(74 LS 20) auf dem CPU-Board gelegt. Die bisherigen Anschlüsse 0 - 16 K
und 16 - 32 K (Pins 12 und 11 vom Z 25, 74 LS 139 im 82er Modell) oder
0 - 16 K und dessen Inversion (über Z 36, 74 LS 0 4) 16 - 64 K (Pin 12
vom Z 25 und Pin 2 von Z 36, 74 LS 04 im 83er Modell) werden abgetrennt.

Die NAND Verknüpfung der Signale BS0(IC 13, Pin 1) und MAIN = 0-60
(56) K (IC 11, Pin 8) über IC 12, Ausgang Pin 8 wird mit dem in der Banking
Schaltung in der zweiten Hälfte des IC 3 (74 LS 139) aus A 14 und A 15 ge-
wonnenen Signale 0-16 K im IC 4 NAND-verknüpft und ergibt das Freigabe-
signal CASEN für den CAS-Treiber Z 37 (74 LS 367) Pin 15 auf dem CPU-Board
(Abb.8).

Der 64 K-RAM-Block auf dem CPU-Board ist also nur dann verfügbar, wenn ent-
weder eine Adresse im Bereich 16 - 60 (56) K ausgegeben wird, oder wenn eine
Adresse oberhalb von F000 H) ausgegeben wird und gleichzeitig eine Bank
0 ins Latch F0H eingetragen ist und beim 4 K Banking Bit 1 im Steuerlatch
F2H low ist. Die Gesamtschaltung ist in Abb. 9 dargestellt. Sie läßt sich
bequem auf einer Europakarte unterbringen.

- 13 -

Abb. 8    Erzeugung des CAS-Treiber-Freigeabe-

signals CASEN für den 64K-Block
auf dem CPU-Board

Anstelle eines Layouts, das entweder doppelseitig sein müßte oder viele
Drahtbrücken aufweisen müßte, soll hier nur eine Wiedergabe einer günstigen
Anordnung der ICs und deren Verdrahtung (durch Drahtverbindungen auf der
Rückseite einer Lochrasterplatine oder ein Teil-Layout für ein einseitiges
Board mit entsprechenden Drahtbrücken auf der Bestückungsseite) gezeigt
werden (Abb. 10). Danach kann sicher jeder je nach den zur Verfügung stehenden
technischen Mitteln die Karte selbst aufbauen.

Zweckmäßig ist ein Anschluß an den S-100-Bus-Stecker auf der Lötseite des
Boards im Expansionsinterface (Achtung ! Die Belegung der Kontakte ent-
spricht nicht der des 50poligen Platinenrandsteckers auf der Rückseite des
Grundgerätes. An den Pins 1,3 und 5 liegen z.B. die Spannungen + 16 V, - 16 V
und + 8 V an, mit denen man sehr viel Schaden anrichten kann). Die Versorgungs-
spannung + 5 V muß an geeigneter Stelle auf dem Board selbst abgegriffen werden.

Anwendung

Die Schaltung ist so konstruiert, daß volle Kompatibilität zum TRS 80, Modell 1
erhalten bleibt. Alle Programme laufen so, wie ohne diese Hardware-Erweiterung.
Der Anwender, der nichts davon weiß, merkt die Änderung nicht, es sei denn,
er gibt Daten über die Ports F0 H und F2 H aus.

Abb. 9 Prinzipschaltbild der Bankingkarte

Abb . 10 Bestückungs- und Verdrahtunqsplan

- 16 -

Allerdings wird der erweiterte Speicher vom DOS und BASIC nicht automatisch
mitbenutzt. Um den vollen Speicherplatz vom BASIC aus zu nutzen, können in
den einzelnen Banken entweder Maschinenprogramme gespeichert sein, die nach
Einschalten der entsprechenden Bank aufgerufen werden können, oder BASIC kann
in den Banken Daten durch POKE-Befehle ablegen und durch PEEK-Befehle wieder
lesen.

Die Speicherung von Variablen oder gar BASIC-Programmtext in diesen Bereichen
wird nicht unterstützt. Vor dem Benutzen der Banken muß zu Anfang HIMEM bzw.
MEMORY SIZE auf einen Wert unter 60 (56) K gesetzt werden, um keine String-
variablen oder eventuell auch numerische Variablen durch Bankumschaltung ver-
schwinden zu lassen.

Banking des Adreßbereiches des Sonder-ROMs

Nachdem nun die Verwaltung von bis zu 2 Megabyte dynamischer RAMs realisiert
wurde, soll noch kurz erwähnt werden, daß von IC 6 (74 116) nur eine Hälfte
als Steuerlatch (Portadresse F2 H) benutzt wird. Die andere Hälfte mit eben-
falls einem 4 Bit-Latch wurde durch die Portadresse F1 H decodiert. Hier stehen
noch einmal 4 Bit zur Verfügung, die an einen 1 aus 16 Decoder angeschlossen
werden können und dann 16 Freigabe-Signale erzeugen können.

Diese Möglichkeit erlaubt es prinzipiell, den Speicherbereich des Sonder-ROM
3000 H bis 36FF H zu vervielfachen, indem das Freigabe Signal für das ROM
zur Freigabe des 1 aus 16 Decoders benutzt wird. Der Decoder liefert die 16
Freigabesignale für 2716 EPROMs und/oder pinkompatible 6ll6 CMOS RAMs.

Durch die Beschaltung des Sonder-ROM im Genie ist die Verwendung aller Signale
an den Pins dieses Sockels aber nicht möglich.

1)  Der WE-Eingang, Pin 21, der beim 6116 RAM für Speicherschreibeoperationen
auf low gehen muß, ist über einen Widerstand an + 5 V angeschlossen.

2)  Der CE -Eingang ist direkt an GND angeschlossen.

3)  Am OE -Eingang liegt das 12-14K-Signal (von Pin 5, Z 22, 74 LS 156),
das auch bei Adressen im Bereich 3700 H - 37FF H einen Zugriff auf das ROM
ermöglicht.

- 17 -

4)  Das Ausblenden des Bereiches 3700 H bis 37FFH erfolgt nicht durch die
OE -Freigabe sondern durch die Freigabe der Speicherlesetreiber. Dies wird
durch eine im Schaltplan des Service Manuals nicht dokumentierte Schaltung
(Abb. 11) erreicht.

5)  Die Datenleitungen sind über unindirektionale Speicherlesetreiber ange-
schlossen, so daß die Verwendung von RAMs nicht ohne Änderungen möglich ist.

Abb.11    Ausblenden des Speicherbereiches

3700 H — 37FF H im Sonder—ROM über
die Freigabe des Speicherlesetreibers
(im Service Manual nicht dokumentiert)

Zur Benutzung von RAMs dürfen die Datenleitungen nicht über die unidirektionalen
Speicherlesetreiber an das Speicherchip geführt werden. Anstelle dieser bis-
herigen Anschlüsse an den Sonder-ROM-Sockel (Pins 9-11, 13-17) müssen die Signale
D 0bis D 7 des bidirektionalen Systemdatenbus verwendet werden (Abb. 12).

An die Anschlüsse OE , Pin 20 und WE , Pin 21 müssen sie Signale MRD (Z 36,

Pin 11) und MWR (Z 33 Pin 3) gelegt werden.

- 18 -

Abb.12

Änderungen am Sockel des Sonder-ROM für
das Banking von wahlweise EPROMS und/oder
RAMs im Adreßbereich 3000 H - 36FF H

Die Freigabe von CE, Pin 18 muß neu decodiert werden, da auf das Ausblenden des
Bereiches 3700H-37FFH durch die Freischaltung der Speicherlesetreiber ver-
zichtet werden soll. Eine einfache Erzeugung dieses Signals ist in Abb 13. ge-
zeigt. Der dazu auf dem CPU-Board zusätzlich nötige Baustein 74 LS 08 läßt
sich direkt neben Z 25 (74 LS 139) in das dort vorhandene freie Feld einsetzen.

Abb.13    Neue Decodierung des Sonder-ROM-Adreß-
bereiches 3000 H - 36FF H und des
Bereiches der memory— mapped-Divices

37XX H

- 19 -

Nun lassen sich alle Signale des Sonder-ROM-Sockel an eine Karte führen, auf
der bis zu 16 Stück 2716 ERROMs und/oder 6116 RAMs stecken. Das nach Abb. 13
gewonnene Freigabesignal wird an die Freigabe-Eingänge des 1 aus 16 Decoders
gelegt. Die Eingänge 10 bis I 3 werden mit den Ausgängen Q 0 bis Q 3 des
Latch F1 H verbunden. Die Ausgänge des Decoders schalten dann das jeweils an-
gewählte Speicherchip frei (Abb. 14)

Abb. 14   Ver—16—fachung des Sonder—ROM—Speicher
bereiches

Auf diese Weise läßt sich der Speicherbereich 3000 H bis 36FFH versechszehn-
fachen. Das ist besonders interessant, weil dadurch ein Austesten von Maschinen-
spracheprogrammen im RAM und späteres Benutzen im EPROM bei gleichen Speicher-
adressen möglich wird. Es läßt sich dadurch ein Gesamtspeicherraum von 28 K
in Form von EPROM-residenten Maschinenprogrammen, Debuggern, Utilities, BASIC-

Erweiterungen usw. bereitstellen, die weder bei Gebrauch erst geladen werden
müssen noch den Hauptarbeitsspeicher belegen.

- 20 -

Wenn der 2716 Sonder-ROM aus dem Genie durch Pin 1 des 1 aus 16 Decoders
74 LS 154 freigegeben wird, so ist gewährleistet, daß beim Einschalten des
Gerätes (durch RESET wird in das Latch 0 eingetragen) immer dieser Bau-
stein freigegeben ist und damit genauso verfügbar ist wie im Urzustand.
