PROJEKT

64'er

DAS MAGAZIN FÜR COMPUTER-FANS ONLINE


Aus eins mach vier

64'er Ausgabe 7/Juli 1985, Seiten 41 bis 43

Wir stellten schon mehrere geänderte Betriebssysteme für den C 64 vor. Das beste Beispiel ist das Hypra-Perfekt. Diese Bauanleitung setzt der ganzen Sache die Krone auf: Absturzfreies Umschalten zwischen vier Betriebssystemen.

Die Idee zu dieser Schaltung lieferte eigentlich das Hypra-Load-Programm in der Betriebssystemversion, welches ein neues EPROM im Kernalsteckplatz U 4 erfordert. Mit etwa 98 Prozent der Programme funktioniert dies hervorragend. Für die restlichen 2 Prozent, mit denen es Schwierigkeiten gibt, hilft allerdings nur, das Originalkernal wieder einzusetzen. Meistens ist das der Fall, wenn Kassetten-Routinen benötigt werden. Eine Umgehung des ständigen Ein- und Ausbaus bietet sich mit einer Betriebssystemumschaltung an. So könnte ein Programm mit Hypra-Load geladen und anschließend auf das Originalsystem zurückgeschaltet werden. Dadurch wäre eine 100prozentige Programmverträglichkeit gewährleistet. Allerdings nur, wenn beim Umschalten der Computer nicht »abstürzt«.

Aus diesen Gedanken heraus wurde diese Schaltung entwickelt. Sie hat die oben beschriebenen Vorteile und bietet noch die Möglichkeit der Umschaltung zwischen dem Original-Kernal und drei zusätzlichen Betriebssystemen.

Etwas Theorie

Wie wird dem Computer ein Umschalten des Betriebssystems mitgeteilt? Für den Computer stellt das Betriebssystem eine Ansammlung von Befehlen, Sprungadressen und Routinen in einem bestimmten Adreßbereich dar. Beim C 64 ist es der Bereich 57344 bis 65535 ($E000 bis $FFFF). Will der Computer aus irgendeinem Grund auf das Betriebssystem zugreifen, aktiviert er den Speicherbaustein für diesen Adreßbereich und legt ihn auf den Adreß- und Datenbus. Was für eine Art Speicherbaustein (ROM, RAM oder EPROM) das ist, ist ihm völlig egal. Hauptsache, er findet in dem Adreßbereich einen Speicher vor.

Für uns ist es aber nun sehr wichtig zu wissen, nach welchem System der Computer seine Speicherbausteine verwaltet, damit ohne Absturz ein neues Betriebssystem aktiviert werden kann. Das Zusammenspiel der einzelnen RAM/ROM-Bausteine wird von einem einzigen IC gesteuert. Dieses IC befindet sich im Steckplatz U 17 und ist sogenannter PLA-Chip (Programmable Logic Array). Dieses IC wird bei der Fertigung nach Herstellerangaben programmiert und erhält so besondere Logikeigenschaften, die eine Vielzahl von herkömmlichen Gatterfunktionen nachbilden. Dieser PLA-Baustein ist im C 64 dem Prozessor untergeordnet und nimmt diesem weitgehend die Verwaltung der Speicherbausteine im gesamten Adressierungsbereich ab. Die PLA, auch Adreßraummanager genannt, sorgt dafür, daß auf entsprechende Befehle der CPU immer der richtige Baustein angesprochen wird und daß immer nur ein RAM/ROM-Baustein aktiv auf dem Adreß- oder Datenbus zugreift, damit keine »Kurzschlüsse« entstehen. Jeder RAM/ROM-Baustein ist über eine Leitung mit dem Manager verbunden. Sie heißt Chipselect- oder Enableleitung. Sie aktiviert die einzelnen Speicher über ein Low-Signal und blendet dadurch den entsprechenden Adreßbereich ein. Um beispielsweise das Betriebssystem zu aktivieren, legt der Manager die Kernalleitung auf Low-Pegel (Pin 20 am Kernal-ROM) und hält alle anderen Leitungen auf High-Pegel. Damit ein anderes Betriebssystem aktiviert wird, muß man nur die Kernalleitung zum anderen Betriebssystem durchschalten und es natürlich auch mit den Adreß- und Datenleitungen verbinden. Will man drei neue und das alte System benutzen, braucht man eigentlich nur einen 4fach-Umschalter, der die Chipselect-Leitung verteilt. Allerdings hat die ganze Sache einen Haken.

Der Computer läuft mit einer Taktfrequenz von 1 MHz. Entsprechend schnell werden die einzelnen Speicher-ICs auch geschaltet. Würde man mit einem einfachen Umschalter ein anderes Betriebssystem auswählen, wäre während der Umschaltphase, die ja immerhin selbst bei »Fingerakrobaten« einige Millisekunden dauert, gar kein Betriebssystem verfügbar und der Computer würde ins »Leere« springen. Um das zu verhindern, darf eigentlich nur umgeschaltet werden, wenn auf das Betriebssystem gerade nicht zugegriffen wird. Hier setzt diese Schaltung an. Sie speichert den Umschaltimpuls so lange, bis das Kernal-ROM nicht mehr aktiv ist und gibt dann das andere angewählte Betriebssystem frei.

Wie funktioniert die absturzfreie Umschaltung?

Zuerst etwas Grundsätzliches zur Arbeitsweise der beiden ICs. Sollten Sie sich für die Technik nicht interessieren, können Sie dieses Kapitel auch überschlagen.

Schaltbild Umschaltplatine
Bild 1. Schaltbild der Umschaltplatine. Es wurde übrigens mit dem Malprogramm »Hi Eddi« aus der Ausgabe 1/85 64'er gezeichnet.

IC 1 beinhaltet vier D-Register (bistabile Gatter, Flip-Flops) mit zwei Eingängen E und D (Bild 1) und zwei Ausgängen Q und Q. Der Eingang E ist ein Enable, das heißt ein Freigabe-Eingang. Liegt dieser Eingang auf High-Pegel, wird das an D anliegende Signal sofort zum Ausgang Q übertragen. Q führt dagegen immer das entgegengesetzte Signal zu Q. Deshalb auch der Strich über dem Buchstaben. Wird an E ein Low-Signal gelegt, wird das in diesem Augenblick an D anliegende Signal gespeichert. Das heißt, daß Signaländerungen an D nicht wirksam sind, solange E auf Low-Pegel liegt. Das D-Register ist also nichts anderes als ein 1-Bit-Speicher, den man freigeben oder sperren kann. DR 1-3 sind völlig identisch.

Bestückungsplan Umschaltplatine
Bild 3. Bestückungsplan. Vergessen Sie bitte nicht, die Drahtbrücken auf der Bestückungsseite einzulöten.

Die technische Bezeichnung für IC 2 lautet: 3-Bit-Binärdecoder/Demultiplexer (3-8) mit Adressen-Zwischenspeicher. Das hört sich komplizierter an als es ist. Die drei Eingänge A0 bis A2 (Bild 1) wirken so wie die D-Register DR 1-3. Der Eingang LE (Latch Enable) bestimmt die Funktion der Adreßeingänge A0 bis A2. Liegt LE auf High-Pegel, werden die zuletzt an den Eingängen A0 bis A2 anliegenden Pegel gespeichert. Liegt dagegen ein Low-Pegel an LE, werden die Signale an A0 bis A2 an die Ausgänge weitergegeben. Nun sind bei diesem IC die Ausgänge der Speicher nicht herausgeführt wie bei IC 1, sondern führen auf einen internen 1-aus-8-Decoder. Die Ausgänge Q0 bis Q7 sind die Ausgänge dieses Decoders, der wie folgt arbeitet: von seinen acht Ausgängen kann immer nur einer Low-Pegel führen. Welcher, das bestimmt die 3-Bit-Binärzahl an den Eingängen A0 bis A2. Mit 3 Bit lassen sich ja bekanntlich die Dezimalzahlen von 0 bis 7 darstellen. Als Beispiel: an A0 bis A2 liegt die Bitkombination 101 an. Dezimal ist das 5, somit liegt Q5 auf Low-Pegel, und zwar so lange, wie diese Bitkombination anliegt. Alle anderen Ausgänge führen High-Pegel.

Rückseite der Umschaltplatine mit Adaptersockel
Bild 4. So muß der Adaptersockel an die Platinenrückseite gelötet werden.

Weiterhin hat IC 2 zwei Freigabe-Eingänge E1 und E2, die vollkommen unabhängig von den anderen Eingängen arbeiten. Mit E1 oder E2 können alle Ausgänge Q0-Q7 gleichzeitig auf High-Pegel gelegt werden. Dazu muß an E1 ein High- oder E2 ein Low-Signal. Anschaulicher wird es an einem Beispiel: Wir wollen mit Hilfe eines 3-Bit-Wortes irgendein Signal, sagen wir ein Rechtecksignal, nacheinander an vier verschiedene Stellen leiten. Dazu legen wir das 3-Bit-Wort an die Adreßeingänge A0 bis A2 an. E1 wird auf Masse gelegt, da nur ein Freigabeeingang benötigt wird. Wie bringen wir aber nun zum Beispiel Ausgang Q5 dazu, unser Rechtecksignal zu übertragen? Zuerst wird an A0 bis A2 die Bitkombinationen 101 angelegt, mit der wir Ausgang Q5 bestimmen. Dann wird das Rechtecksignal gleichzeitig an LE und an E2 gelegt. Liegt das Rechtecksignal gerade auf High-Pegel, sind alle Ausgänge, somit auch Q5, auf High-Pegel. Geht das Rechtecksignal auf Low-Pegel, gibt E2 die Ausgänge frei, und das Low-Signal an LE überträgt sich auf den adressierten Ausgang; hier Q5. Geht das Rechtecksignal wieder auf High-Pegel, beginnt alles von vorn. Das ist genau das, was wir wollen. Wird an A0 bis A2 jetzt ein anderer Ausgang adressiert, wird das Eingangssignal auf den anderen übertragen.

Fertige Umschaltplatine
Bild 5. Die fertige Umschaltplatine. Achten Sie auf die Drahtbrücken

Nachdem nun die Funktion der einzelnen ICs etwas verdeutlicht wurde, zur eigentlichen Umschaltung. Die Auswahl des Betriebssystems erfolgt über die Schalter SI (a und b). Die Auswahlsignale gelangen nicht direkt auf die Adreßeingänge, sondern erst über die D-Register DR1 und DR2. Die beiden Register haben die Aufgabe, den Pegelwechsel vom Schalter »schön rechteckig« zu machen.

Hinweise zum Aufbau

Das Layout für die Umschaltplatine zeigt Bild 2, die Stückliste Tabelle 1. Beachten Sie beim Ätzen, daß einige Leiterzüge sehr schmal sind und nicht verschwinden.

Nach erfolgreicher Herstellung der Leiterplatte wird dieses gebohrt. Die angedeuteten Löcher zum Anschluß der Steckverbinder dürfen nicht durchbrochen werden, da die Steckverbinder als Adaptersockel später direkt von hinten auf die Platine gelötet werden. Zuerst sollten die Drahtbrücken eingesetzt werden und dann die Widerstände und IC-Sockel. Zur Befestigung der Adaptersockel lötet man diese erst an den zwei Endpunkten an und richtet sie rechtwinklig aus. Danach sollte man ausprobieren, ob die ganze Sache auch paßt. Erst dann sollten die Steckverbinder endgültig mit der Platine verlötet werden. Den 4fach-Umschalter schließt man am günstigsten mit Flachbandleitung an. Um Leiterzüge auf der Platine zu sparen, wird die eigentliche Verdrahtung des Schalters erst an den Anschlußpins des Schalters selbst durchgeführt. Der Schalter wird laut Schaltplan »binär« verdrahtet: die Schalterausgänge müssen beim Weiterschalten die Binärzahlen 00-01-10-11 liefern. Das ist einfach möglich, indem man die entsprechenden Schaltereingänge mit R4 (5 Volt) verbindet oder offen läßt. Durch das Offenlassen entsteht über R2 oder R3 Low-Pegel.

Die Leuchtdioden sollen eigentlich nur dem Spieltrieb von Computerfreaks entgegenkommen. Die LEDs werden über die noch freien vier Kontakte des Umschalters geschaltet. Die Versorgungsleitung für dei Leuchtdioden kommt über R1 von der Platine. Wollen Sie die LEDs nicht einbauen, kann der 470-Ohm-Widerstand selbstverständlich ersatzlos entfallen. Es ist dann auch nur noch ein 2x4-Umschalter notwendig.

Ist die Platine nun so weit bestückt, können die Betriebssysteme eingesetzt werden. Dazu kommt das Kernal-ROM aus Steckplatz U4 in die 24polige Fassung. Wenn Sie eine C 64-Version mit fest eingelötetem ROM haben, sollten Sie sich von einem Lötkolben-Profi eine Fassung einbauen lassen. In die Fassungen 1 bis 3 auf der Platine werden die Betriebssystems-EPROMs gesteckt. Achten Sie unbedingt darauf, die EPROMs und das ROM richtig herum in die Fassungen zu stecken (Bestückungsplan, Bild 3). Möglich sind nur 2764 oder 27C64-Typen, die ohne Schwierigkeiten zu beschaffen sind. Die C-Typen sind CMOS-Ausführungen und bieten den Vorteil der geringen Stromaufnahme. Hat man nur ein neues Betriebssystem, muß dieses unbedingt in Fassung 1 eingesteckt werden, das nächste in Fassung 2 und das dritte in Fassung 3. Sollte eine Fassung frei bleiben, darf diese natürlich nicht über den Schalter angewählt werden. Ein Absturz des Computers bliebe mit Sicherheit nicht aus.

1:1-Platinenlayout der Umschaltplatine
Bild 2. Das 1:1-Platinenlayout der Umschaltplatine

Ist alles soweit fertig (vorher noch einmal auf Lötbrücken untersuchen!), kann die Platine in den Steckplatz U4 eingesetzt werden. Die EPROMs müssen nach dem Einsetzen links von U4 stehen und alle Markierungskerben der ICs auf die C 64-Rückseite zeigen. Der Wahlschalter kommt zunächst in Stellung 1. Nach dem Einschalten des Computers sollte dieser sich normal melden. Dann kann umgeschaltet werden. Schaltet man auf Hypra-Perfekt, dürfte auf dem Bildschirm keine Veränderung feststellbar sein. Aber an der geänderten Funktionstastenbelegung wird es schnell klar, daß man ein anderes Betriebssytem aktiviert hat. Noch ein Wort zur Umschaltung: Der Computer wird natürlich nur dann nicht »abstürzen«, wenn innerhalb der Betriebssysteme zur Umschaltzeit die gleichen Routinen benutzt werden. Konkret: Benutzt man ein System mit Hypra-Load, darf natürlich während des Ladens nicht auf das normale Kernal umgeschaltet werden, weil die Laderoutine mit der originalen nicht identisch ist. Bei anderen Betriebssystemen muß man das von Fall zu Fall ausprobieren. Am sichersten ist ein Umschalten immer im Direktmodus. Kaputtgehen kann während des Umschaltens nichts. Spätestens nach einem Reset ist der Rechner wieder einsatzbereit.

(Andreas Gerzen/hm)

IC 1 74 LS 75
IC 2 74 LS 137
D1, D2, D3, D4 LED 3 mm
R1 470 Ω
R2, R3 4,7 kΩ
R4 330 Ω
S1 Umschalter 3x4 trennend
IC-Fassungen
16polig 2 Stück
24polig 1 Stück
28polig 3 Stück
 
Schaltdraht für Brücken
5fach-Flachbandleitung, etwa 20 cm
Adaptersockel
Da sie schwer zu beschaffen sind, hier einige Bezugsquellen:
Typ AP 119/G 20polig (deshalb 2 Stück)
Firma Ratev, Lochnerstr. 1, 4030 Ratingen
oder
Typ K5 50polig (deshalb nur 1 Stück)
Best.-Nr.: 58 F 800
Firma Bürklin, Kölner Str. 42, 4000 Düsseldorf
 
Tabelle 1. Stückliste zur Umschaltplatine

© Originalartikel: WEKA Verlagsgesellschaft, 64'er
© HTML-Veröffentlichung: Projekt 64'er online
Erfassung des Artikels: Jörg Bleimann



8-Bit-Nirvana | Impressum