Das neue Betriebssystem für den KC 85 (2)

von Mario Leubner

Seit den letzten KC-News und der ersten Vorstellung des neuen KC-Betriebssystems hat sich einiges getan. So hatten sich im CCP ein paar kleine Fehler eingeschlichen und die Installation des eigenen Systems war noch recht umständlich. Sobald es nenneswerte Verbesserungen gibt, werde ich diese auch in den KC-News veröffentlichen, damit jeder Nutzer des neuen Systems auf dem aktuellen Stand bleibt. Auf der Beilagendiskette werden jedoch nur die lizenzfreien Dateien verteilt, die lizensierten Dateien aus dem ZSDOS-Paket können über Jörg Linder bezogen werden.

Eine Bitte hätte ich noch:
Keiner ist fehlerfrei, deshalb kann und will ich auch keine Garantien geben, die meine Programme betreffen. Bei der Installation des Betriebssystems sollte mit größter Sorgfalt vorgegangen werden. Das gilt besonders bei der Verwendung einer Festplatte, da sich meist wertvolle Daten darauf befinden, die nur schwer wieder hergestellt werden können. Für Hinweise zu auftretenden Problemen, die von den Systemdateien kommen könnten, bin ich jedoch immer dankbar. Kommen wir nun aber zu den aktuellen Neuerungen:

Installation

Mit der Installation des Systems (siehe KC-News 2/96) war ich noch nicht zufrieden. Es war recht umständlich, erst das BIOS zu übersetzen und dann bei jedem weiteren Schritt die erforderlichen Adressen zu berechnen. Dabei kann auch ganz schnell mal ein Fehler auftreten, der weniger versierte Anwender zur Verzweiflung bringen kann. Inzwischen habe ich eine einfache Lösung gefunden. Das Schlüsselwort heißt SPR-Format. In diesem Zusammenhang danke ich Jörg Linder für seine Zuarbeit und die umfangreichen Informationen, die ich regelmäßig erhalte.

Die Erstellung des eigenen Systems vereinfacht sich soweit, daß nur noch die gewünschten 8 Laufwerke in der Datei OPTION.INC einzutragen sind. Zur Erzeugung der Datei CPM.COM sind dann die drei Befehlszeilen

A>ASM ZBIOS=ZBIOS

A>LINK131 SYSTEM=CCP,ZDDOS.ZRL,ZBIOS [D1600,OS,NR]

A>SYSGEN

einzugeben bzw. aus einer SUB-Datei abzuarbeiten und die Datei CPM.COM ist fertig. Dazu noch ein paar Erläuterungen:

  • Beim Assemblieren des BIOS wird die Konfiguration der Laufwerke festgelegt. Die beiden Festplattenpartitionen werden zur Kontrolle auf dem Bildschirm angezeigt.
    Ergebnis: ZBIOS.REL

  • Beim Linken werden die drei Systembestandteile zu einer SPR-Datei zusammengefügt. Die Option D1600 ist erforderlich, damit die BIOS-Funktionen im DOS korrekt erzeugt werden, 1600H ist definiert durch die Größe von CCP+DOS und ändert sich nicht, solange die Standardgrößen CCP = 2k und DOS = 3,5k beibehalten werden. Zur Kontrolle zeigt der Linker zwei Adressen an, die denselben Wert (1600H) haben müssen. Als DOS kann ZDDOS oder ZSDOS angegeben werden.
    Ergebnis: SYSTEM.SPR

  • Im dritten Arbeitsschritt wird die Datei SYSTEM.SPR gelesen, die Anfangsadressen des Systems berechnet und die endgültige Anpassung des Codes vorgenommen. Alle Zwischenschritte, die bisher mit POWER.COM und den DMP-Dateien nötig waren, entfallen damit. Die Adressen des erzeugten Systems werden zur Kontrolle aufgelistet. SYSGEN prüft danach noch, ob ZSDOS oder ZDDOS vorhanden ist und aktiviert den Uhrentreiber.
    Ergebnis: CPM.COM

Bei Eingabe von SYSGEN // erscheint eine kurze Anleitung. Die Entwicklung von SYSGEN ist jedoch noch nicht abgeschlossen. Ähnlich wie in MSYSG.COM soll noch die Installation der Druckertreiber und Koppeltreiber eingebaut werden und natürlich das Abspeichern in den Systemspuren der Diskette (Festplatte).

Zu den Dateien:

START.MAC nicht mehr erforderlich, in SYSGEN enthalten
START.DMP nicht mehr erforderlich
MODUL.INC CAOS-Unterprogramm zum Aufbau der Modultabelle
CCP.MAC nur zur Information
CCP.REL REL-Code des CCP-Moduls
ZSDOS.ZRL REL-Code des BDOS (ZSDOS v1.0)
ZDDOS.ZRL alternatives BDOS (im ZSDOS-Paket enthalten)
ZBIOS.MAC Quelltext des neuen BIOS
OPTION.INC USER-Definitionen zu GIDE und Festplatte
DEFDPB.INC 8 DPB-Definitionen für Laufwerk 1.6

Kommandoprozessor (CCP)

In die Entwicklung des CCP habe ich bisher die wenigste Zeit investiert - aus dem einfachen Grund, da er eigentlich nur für die Entwicklungsphase gebraucht wird. Sobald das Z-System installiert ist, übernimmt ein wesentlich besserer ZCPR die Arbeit. Dennoch sollten mit dem CCP die Grundfunktionen eines CP/M-Systems fehlerfrei ausführbar sein. Unter diesem Gesichtspunkt erfolgte die Überarbeitung:

  • Das Stellen der Uhr ist jetzt fehlerfrei möglich, nach dem Stellen der Uhr wird die Zeit nochmal ausgelesen und angezeigt.

  • Das Kommando "H" listet alle CCP-Kommandos auf.

  • Das Kommando "U" zum Wechsel des Userbereichs entfällt, dafür ist wie beim Z-System die Angabe des USER-Bereiches direkt hinter dem Laufwerks-Buchstaben möglich. Der USER-Bereich wird ständig im Prompt mit angezeigt. Dazu ein paar Beispiele:
A0>B: Wechsel zu Laufwerk B:
B0>7: Wechsel zu USER-Bereich 7
B7>A15: Wechsel zu Laufwerk A: und USER 15
A15>D B0: Anzeige des Verzeichnisses von B0:
A15>B0:POWER Aufruf des Programms POWER auf B0:
A15>_

ZSDOS oder ZDDOS?

Aufmerksame Leser werden bemerkt haben, daß einmal von ZSDOS und zum anderen von ZDDOS gesprochen wird, wenn es um das neue System für den KC geht. Was hat es damit auf sich? Zunächst soviel:

Beide DOS-Varianten sind im ZSDOS-Paket enthalten. Beide DOS-Varianten belegen 3,5 KByte (wie das Original CP/M 2.2) und können gleichermaßen verwendet werden. Es gibt aber Unterschiede, so daß jeder für sich entscheiden muß, welches DOS er verwenden will. Ich habe mal die wichtigsten zusammengestellt:

Funktion ZDDOS ZSDOS

DOS-Suchpfad nein ja
^R in DOS-Funktion 10 nein ja
DateStamper-Unterstützung intern extern

Aufgrund der Beschränkung der DOS-Größe auf 3,5 KByte konnten nicht alle Funktionen untergebracht werden. Für ZSDOS ist deshalb ein externer Speicherbereich erforderlich, wo das DateStamper-Modul geladen wird. ZDDOS enthält dagegen dieses Modul, dafür wurde auf zwei andere Funktionen verzichtet.

Der DOS-Suchpfad stellt dabei die Eigenschaft dar, die vielleicht am meisten fehlen könnte, um alle erforderlichen Dateien zu erreichen. Der Suchpfad ermöglicht es, wenn die Datei im angegebenen Verzeichnis nicht vorhanden ist, diese auch von anderen Laufwerken/USER-Bereichen zu laden. Vergleichbar ist diese Aktion mit dem unter MicroDOS möglichen Systemlaufwerk, jedoch ist der ZSDOS-Suchpfad komfortabler - es können 3 zusätzliche Verzeichnisse angegeben werden.

Ich habe mich für folgende Systemkonfiguration(en) entschieden:

  • Startsystem mit ZDDOS, da sofort DateStamper aktiv ist. Das heißt, alle Aktionen vor Start des Z-Systems werden bereits mit Datum und Uhrzeit protokolliert.

  • Z-System mit ZSDOS, da das DateStamper-Modul einfach im UMA (User Memory Area) von NZCOM installiert werden kann.

  • ZDDOS für die geplante CAOS-Betriebsart, da unter CAOS ein Suchpfad nicht erforderlich ist, das Aktualisieren der Datumsinformationen erfolgt automatisch.

Neues System auch ohne Festplatte?

Vielleicht mag sich der eine oder andere noch nicht dazu entschlossen haben, das GIDE-Interface in sein D004 einzubauen und die Festplatte anzuschließen. Damit stellt sich die Frage, ob es sinnvoll ist, auch ohne Festplatte auf das neue System umzusteigen. Ich würde diese Frage mit einem eindeutigen 'ja' beantworten und das aus mehreren Gründen:

Mit ZSDOS/ZDDOS erhält man ein stabileres und schnelleres Betriebssystem, das vollständig im Z80-Code geschrieben wurde. Dabei erhält man eine vollständige Kompatibilität zu CP/M 2.2, was einige Programme mehr für den KC erschließt.

Die Verwendung von DateStamper mit ZDDOS ist auch ohne GIDE-Interface möglich, da das BIOS dann wie bisher mit der CTC-Uhr läuft. Diese Uhr muß dann aber nach jedem Bootvorgang neu gestellt werden. Für die Programme, welche die Uhr verwenden, gibt es keinen Unterschied, da die Schnittstelle identisch ist.

Der größte Vorteil ist aber wahrscheinlich der größere TPA. MicroDOS belegt den Speicher von C900H bis FBFFH, läßt also 50 KByte für Anwenderprogramme übrig. Bei der gleichen Laufwerksinstallation wird unter ZSDOS/ZDDOS nur der Bereich von D800H bis FBFFH belegt, wobei der CCP noch überschrieben werden kann. Es bleibt also von 100H bis DFFFFH und somit 55,75 KByte TPA.