80-Bus Journal |
Januar 1983 · Ausgabe 1 |
an ECB-Bus-Karten offen, ohne daß er auf die mit dem Nascom entwickelte oder für den Nascom gekaufte Software verzichten muß. Und wer nur noch mit 19-Zoll-Gehäusen arbeiten möchte, für den gibt es demnächst auch eine Nascom-kompatible Hardware auf Europakarten. Hat jemand gesagt, der Nascom sei tot? – Es lebe der E8C0B-BUS!
Wie schon an anderer Stelle in diesem Heft beschrieben (siehe „Konfigurationen“), soll die Entwicklung eines neuen Monitors der Austauschbarkeit von Programmen dienen und das spätere Umsteigen auf ein Floppy-Disk-System mit CP/M erleichtern. Erst in zweiter Linie sollen zusätzliche Fähigkeiten, über die NAS-SYS nicht verfügt, eingebaut werden (ein Beispiel dafür ist der unten beschriebene Relocator). Wenn man etwas zu CP/M kompatibles entwickeln will, muß man natürlich zunächst einmal CP/M und seine Verwandten näher kennenlernen. Das ist in diesem Beitrag nur recht oberflächlich möglich, und es muß wegen der Einzelheiten auf die vielfältige Literatur verwiesen werden. Zur Zeit erscheint auch in der Zeitschrift MC eine Artikelreihe über CP/M von Rolf Dieter Klein. Wer sich heute CP/M (oder CDOS, ZDOS und wie sie alle heißen) zulegt, der erhält ein umfangreiches Programmpaket, von dem uns hier jedoch nur der Kern, das eigentliche Betriebssystem, interessiert. Das besteht aus drei Teilen, dem CCP (Console Command Prozessor), dem BDOS (Basic Disk Operating System) und dem BIOS (Basic Input Output System). Die Bezeichnungen sind eigentlich etwas irreführend; mir gefallen die (deutschen) Bezeichnungen von ZDOS besser: KI (Kommando-Interpreter), LEAS (Logisches Ein/Ausgabe-System) und HEAS (Hardwareabhängiges Ein/Ausgabe-System). Das entscheidende Kriterium ist die Hardware-Unabhängigkeit von LEAS bzw. BDOS. Nur das BIOS ist systemabhängig, muß also für jeden Computer neu geschrieben werden. Es läßt sich auch vom Benutzer verändern und ergänzen, um eine Anpassung an die jeweilige Systemkonfiguration zu ermöglichen. Das BIOS bzw. HEAS enthält also die Treiber- (Ausgabe) bzw. Monitor-Software(Eingabe) für sämtliche Peripheriegeräte: Tastatur, Video, externes Terminal, Cassetten-Ein/Ausgabe, Lochstreifenleser und -Stanzer, Drucker usw. sowie bei einem Diskettensystem alle Ansteuerroutinen für die Diskettenlaufwerke (bei RP/M sind diese durch entsprechende Cassetten-Routinen ersetzt). HEAS bzw. BDOS besteht im wesentlichen aus zwei Funktionsblöcken: einer logischen Ein/Ausgabesteuerung und einer Dateiverwaltung für die Diskettenlaufwerke (oder andere Massenspeicher). Alle Einzelfunktionen sind über ein standardisiertes Verfahren, ein „Weichwaren-Interface“, vom Benutzer oder von „CP/M-kompatibler“ Software aufzurufen.
CP/M benutzt den Speicherbereich von 0 bis FFH als Arbeitsbereich. An der Stelle 5 steht dabei ein Sprung nach BDOS bzw. LEAS. Über diese Adresse kann man die Funktionen von LEAS als Unterprogramme aufrufen. Im Register C wird dabei eine Kennziffer für das gewünschte Unterprogramm übergeben. Eingangsparameter werden in D und E übergeben, während Ausgangsparameter in A bzw. HL übergeben werden. Diesmal sollen uns nur die grundsätzlichen Ein/Ausgabefunktionen interessieren, die mit den Kennziffern 1 bis 11 aufgerufen werden (Kennziffer 0 bewirkt einen Kaltstart des Systems). Die genaue Funktion der einzelnen Routinen kann der beigefügten Tabelle entnommen werden. Logische Eingabegeräte sind die „Konsole“ und ein „Streifenleser“; logische Ausgabegeräte ebenfalls die Konsole, ein „Streifenstanzer“ und ein Drucker („List Device“). Die meistert dieser Geräte sucht man an einem Nascom oder Gemini vergebens. Schon die Bezeichnungen verraten, daß das Betriebssystem CP/M aus der Anfangszeit der Mikrocomputerei stammt. Aber keine Angst; man muß sich nicht so einen altmodischen „Rattermann“ anschaffen, um mit CP/M arbeiten Zu können. Den logischen Ein/Ausgabefunktionen können physikalische Geräte auf vielfache Weise zugeordnet werden, sofern die zugehörigen Routinen im BIOS implementiert sind.
Jedem logischen Ein/Ausgabegerät können 4 physikalische Geräte zugeordnet werden. Die Zuordnung ist ebenfalls standardisiert und erfolgt über das „IOBYTE“, das an der Speicherstelle 3 abgelegt ist. Je 2 Bit sind einem logischen Gerät zugeordnet in der folgenden Weise:
000000XX: Konsole
0000XX00: Streifenleser
Seite 24 von 28 |
---|