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.