Kapitel 6
6.1 Definition von Datei-Typen
Das Z3PLUS-Betriebssystem identifiziert die Funktionen gewisser besonderer Dateien durch ihren Dateityp. Diese Typen sind in der unten stehenden Tabelle aufgeführt. ZRL-Files sind besondere, relokatible Dateien, die an jede beliebige Z3PLUS-System Konfiguration anpaßbar sind. Sie können sowohl das Format von SLR Systems (SLR-Ass.) oder das von Microsoft (M80) besitzen. Die Moduln müssen in Übereinstimmung mit der Tabelle benannt werden durch Beifügen einer Zeile im Source-Code mithilfe des "NAME"-Pseudo-Opcodes. Es gibt keine Einschränkungen in Bezug auf die Namen, die für die Dateien selbst verwendet werden können. Zum Zeitpunkt des Ladens bestimmt Z3PLUS die Art des Moduls, das in einer Datei kodiert ist, indem es den darin eingebetteten Namen liest.
DATEI-TYP INHALT LBR Library File Z3P Z3PLUS System Descriptor Z3T Z3 Terminal Capability Descriptor (TCAP) NDR Named Directory Register Datei ZRL Benannter Common Bereich, Z-system ReLozierbar Datei mit dem REL-Modulnamen: CP3xxx Z3PLUS Kommando Prozessor RCPxxx Residentes Kommando-Paket FCPxxx Fluß Kommando Paket wobei "x" irgendein Zeichen ist Tabelle der Dateitypen, die das Z3PLUS-System verwendet.
6.2 Bei Z3PLUS mitgelieferte Dateien
Viele Dateien sind im Lieferumfang des Z3PLUS-Systems enthalten. Die meisten davon sind in diesem Abschnitt zusammen mit Erklärungen ihrer Funktionen aufgeführt. Beachten Sie die Datei RELEASE.NOT in Bezug auf Informationen über eventuelle Änderungen.
6.2.1 Z3PLUS System-Dateien
Die Dateien, die das Z3PLUS-Produkt bilden, sind in der folgenden Tabelle aufgelistet. Wir möchten Sie daran erinnern, daß diese Dateien durch Copyright geschützt und auf einen einzigen Anwender lizensiert sind. Es ist ungesetzlich, diese Dateien zu kopieren oder an Dritte weiterzugeben. Details hierzu entnehmen Sie bitte dem Copyright-Vermerk am Anfang dieses Handbuchs.
Liste der Z3PLUS-Systemdateien.
Z3PLUS .COMZ3PLUS Systemlader Z3PLUS .LBRLibrary der Z3PLUS System Moduln DEFAULT .Z3PDefault System Deskriptor DEFAULT .Z3TDefault Terminal Deskriptor (adm3a) DEFAULT .NDRDefault Benannte Directory Registerdatei DEFCP3 .ZRLDefault Kommando-Prozessor DEFRCP .ZRLDefault Residentes Befehls-Paket DEFFCP .ZRLDefault Fluß Kommando-Paket SMALL .Z3PSMALL System Deskriptor LARGE .Z3PLARGE System Deskriptor LARGERCP.ZRLRCP für das Large System TIMECP3 .ZRLCPR mit Stunde:Minute-Prompt JETLDR .COMZ-System Paket-Lader
6.2.2 Tools und Utilities
Viele Dateien, die nicht Teil des Z3PLUS-Systems sind, werden als Zugeständnis an den Anwender mitgeliefert. 1 Einige dieser Dateien sind Public Domain. Andere unterliegen dem Copyright ihrer Autoren oder der ZSIG, der Z-System Interest Group. Für alle gilt jedoch die Erlaubnis der Autoren, diese Dateien zu Kopieren und ohne Berechnung für nichtkommerzielle Zwecke an andere Anwender weiterzugeben. Folgende Dateien unterstützen das TCAP des Z-Systems:
1Deshalb können wir für diese Programme keinen extra Support anbieten.
TCSELECT.COMTerminal Deskriptor auswählen Z3TCAP .TCPDatabase der Terminal-Deskriptoren
Die folgenden Dateien unterstützen Z-System-Aliase:
SALIAS .COMGeneriert alleinstehende Aliase ARUNZ .COMAlias Befehls-Prozessor ALIAS .CMDAlias Script-Datei-Beispiel für ARUNZ
Die folgende Datei wird vom FCP verwendet, um erweiterte konditionelle Prüfungen auszuführen:
IF .COMErweiterter Fluß-Bedingungsprüfer
Die folgenden Utilities definieren oder zeigen diverse Z-System Environment Variablen und System Möglichkeiten:
CPSET .COMdefiniert und zeigt CRT/PRT Charakteristika PATH .COMsetzt und zeigt den Befehls-Suchpfad
(Der Name hat sich von ursprünglich SETPATH.COM geändert.) ZSHOW .COMzeigt Konfigurations-Information an
(Der Name hat sich von ursprünglich SHOW.COM geändert.) EDITNDR .COMEditiert NDR im Speicher
(Der Name wurde von ursprünglich EDITND.COM geändert.) SAVENDR .COMSpeichert Named Directory Register in Datei
Folgende Programme sind Utilities von allgemeinem Interesse:
FF .COMFile Finder CRUNCH .COMDatei-Kompressor Tool UNCRUNCH.COMDatei-Dekompressor Tool
Folgende Programme unterstützen Library Files:
LDIR .COMLibrary DIRectory Programm LGET .COMLibrary Extraktor LPUT .COMLibrary Datei-Inserter VLU .COMVideo-orientiertes Library Utility LX .COMLibrary-Programm Exekutor
Die folgenden Dateien gehören zur Gruppe der Shells und Error Handler:
ZF-REV .COMZFILER Shell für Reverse-Video Terminals ZF-DIM .COMZFILER Shell für Dim-Video Terminals ZFILER .CMDMacro Script File für ZFILER LSH .COMBefehls-History-LOG-Shell ZERRLSH .COMError Handler, der mit LSH zusammenarbeitet
Folgende Dateien unterstützen die Z-System Help-Einrichtung:
ZHELP .COMZeigt Help-Dateien menügesteuert an
(Der Name hat sich vom ursprünglichen HELP.COM geändert.) xxx .HLPdiverse Help-Menü-Dateien
Die folgenden Programme sind Transiente "type-4"-Programme (siehe Abschnitt 3.2.4), die am obersten Ende der verfügbaren TPA ablaufen und den unteren Teil nicht berühren. Diese sind besonders nützlich in einem "Minimum"-System, wo transiente Programme für Funktionen verwendet werden, die normalerweise durch RCP-Befehle ausgeführt werden. Zur Verwendung benennen Sie diese einfach um, indem Sie das vorangestellte TY4 weglassen.
TY4SP .COMFreien Diskettenspeicher anzeigen TY4SAVE .COMSpeicherbereich in Datei schreiben TY4REN .COMRename -- Umbenennen TY4ERA .COMErase -- Löschen
Es gibt verschiedene Wege, an die geballte Ladung der stets expandierenden Z-System User-Group Dateien zu gelangen. Die Telefonnummern der Z-Node Mailboxen sind aufgeführt in:
ZNODES .LST
Eine Gruppe von Personen hat sich bereitgefunden, anderen bei der Installation und Anwendung von Z-Systemen zu helfen. Ihre Namen, Adressen und Telefonnummern sind in der Datei
ZHELPERS.LST
aufgeführt.
6.3 Z3PLUS Befehls-Zeilen
6.3.1 Help Seiten
Eine eingebaute Help-Seite für die Syntax der Z3PLUS Befehle wird angezeigt durch Eingabe von:
Z3PLUS //<cr> Z3PLUS ?<cr>
Diese Hilfs-Seiten geben auch Auskunft über die Konfiguration der Quiet-Option und des System-Directorys (siehe unten).
6.3.2 Laden des Default-Systems
Es gibt drei Default-Systeme im Lieferumfang von Z3PLUS. Sie werden durch folgende Befehls-Zeile geladen:
Z3PLUS<cr> Z3PLUS ON<cr> Z3PLUS LARGE<cr> Z3PLUS SMALL<cr>
Die ersten zwei Formen laden das "Standard" Default system. Die anderen Formen laden das LARGE- und das SMALL- Default-System.
Options-Schalter, wie "/Q" oder "/V" können ans Ende einer Befehlszeile gepackt werden, um "Quiet" oder "Verbose" Modus zu wählen. Im Verbose-Modus zeigt das Z3PLUS eine ganze Seite Information über das ladende System an. Im Quiet-Modus wird diese Ausgabe unterdrückt. Die eingebaute Hilfe-Seite von Z3PLUS.COM zeigt an, welcher dieser zwei Modi benutzt wird, wenn keine Optionin der Befehls-Zeile angegeben ist.
Die System Moduln werden aus der Library-Datei Z3PLUS.LBR geladen, die in einem speziellen Verzeichnis, dem "System Directory" stehen muß. In der Lieferversion des Z3PLUS.COM ist dies das Directory A0:. Siehe Abschnitt 6.5 wegen Information, wie man das ändern kann. Das momentan konfigurierte System Directory wird von der Z3PLUS Help-Seite angezeigt.
Das Standard Default-System braucht 6.88K Speicher und lädt die folgenden Moduln aus Z3PLUS.LBR:
DEFAULT .Z3PSystem-Deskriptor DEFCP3 .ZRLKommando-Prozessor DEFRCP .ZRLResidentes Befehls-Paket DEFFCP .ZRLFluß -Befehls-Paket DEFAULT .Z3TTerminal Deskriptor DEFAULT .NDRBenannte Directory Zuweisungen
Das LARGE System braucht 7.38K Speicher. Die gleichen Moduln wie beim Standard System werden geladen, außer:
LARGE .Z3Pstatt DEFAULT.Z3P LARGERCP.ZRLstatt DEFRCP.ZRL
Das SMALL System hat keine Puffer für RCP, FCP oder NDR und benötigt nur 4K. Das Laden der Moduln weicht auf folgende Weise vom Standard ab:
SMALL .Z3Pstatt DEFAULT.Z3P DEFRCP .ZRL
DEFFCP .ZRL
DEFAULT .NDRwerden nicht geladen
6.3.3 Das Entfernen von Z3PLUS
Das Z3PLUS Betriebssystem kann aus dem System entfernt und das CP/M-Plus Betriebssystem wiederhergestellt werden durch Eingabe des Befehls:
Z3PLUS OFF<cr>
6.3.4 Das Laden spezifischer System-Moduln
Z3PLUS kann nicht nur zum Laden ganzer Betriebssysteme, sondern auch zum Laden spezifischer System-Moduln verwendet werden. Diese Modul können entweder individuelle Dateien oder Teile von Library-Dateien sein. Mehrere Moduln können gleichzeitig geladen werden. Die folgenden Befehlsformen werden verwendet:
Z3PLUS Dateiliste [/Option]<cr> Z3PLUS Lbrfile LBR-Dateiliste [/Option]<cr>
Dabei bedeutet "Dateiliste" eine Liste mit einem oder mehreren Dateinamen, alle in der Form
[dir:]name.typ
Der Ausdruck "Lbrfile" hat die Form
[DIR:]lbrname[.LBR]
"LBR-Dateiliste" schließlich, ist die Liste einer oder mehrerer Dateien, die in der bezeichneten Library enthalten sind. Das Format für einen solchen "Member"-Dateinamen ist gleich mit den Namen in "Dateiliste", außer daß naturgemäß keine Directoryangabe dabeistehen kann.
Zwei beliebige Dateinamen können in einer Befehlszeile entweder durch Leerzeichen, Kommata oder beides getrennt werden. Die Options-Schalter /Q und /V können bei diesen Befehlen ebenfalls eingesetzt werden.
Directories können für jede einzelne Datei in der ersten Form und für die Library-Datei in der zweiten Form angegeben werden. Wann immer es keine expliziten Directory-Angaben für eine Datei gibt, wird das System Directory (siehe Abschnitt 6.3.2) verwendet. Wenn Directories angegeben sind, können diese immer die Form DU:, (also Laufwerksbuchstabe + Usernummer) haben. Ist ein Z3PLUS-System aktiv, kann auch die Form DIR: (Benanntes Directory) verwendet werden.
Der Dateityp LBR ist optional in der zweiten Form. Wenn bei der ersten Datei keinen Dateityp angegeben war, wird der Typ LBR angenommen. Für die zweite Befehlsform, müssen alle Moduln, die nach einem Library-Namen angegeben werden, in dieser Library sein. Man kann nicht zugleich individuelle Dateien und Library-Dateien in einem einzigen Befehl laden.
6.4 Das Programm JetLDR
Im Lieferumfang des Z3PLUS-Pakets ist ein spezielles Programm namens JetLDR enthalten. Dieses Programm ist ein extrem mächtiger Allzweck-Modul-Lader. Alle der üblichen Modul-Ladevorgänge, die für das Z3PLUS-System notwendig sind, können jedoch mit Hilfe von Z3PLUS.COM ausgeführt werden, das diese Fähigkeit durch "Ausleihen" von JetLDR-Code besitzt.
Es gibt einige wichtige Unterschiede zwischen JetLDR.COM und Z3PLUS.COM. JetLDR kann nur unter dem Z-System gestartet werden und kann nicht verwendet werden, um ein neues System aufzubauen, so wie Z3PLUS das kann. Es wird nur zum Laden von Moduln verwendet. Es können jedoch viel mehr Modul-Typen geladen werden als Z3PLUS das kann und es führt ausgefeilte Gültigkeitsprüfungen für Moduln durch und versucht sicherzustellen, daß ein Modul für den Zielpuffer geeignet ist.
Das Programm JetLDR macht ausgiebig Gebrauch von speziellen Konfigurations- oder CFG-Dateien. Diese Moduln werden von JetLDR selbst geladen und bestimmen die Art und Weise, wie andere Moduln geladen werden. Diese Einrichtung kann JetLDR die Fähigkeit verleihen, spezielle Moduln wie Resident System Extensions (RSXe), BIOSe, und DOSe zu laden.
JetLDR hat eine eingebaute Help-Seite, die mit der Standard-Syntax
JETLDR //<cr>
aufgerufen werden kann. Sie werden sehen, daß seine Befehls-Syntax nahezu identisch zu der von Z3PLUS ist.
6.5 Patchen von Z3PLUS.COM
Es gibt diverse Optionen in Z3PLUS.COM, die von KonfigurationsBytes in der ersten Code-Page 2 bestimmt werden. Diese Bytefolgen sind alle durch Text-Strings gekennzeichnet, so daß sie mit einem Debugger (etwa SID, der beim CP/M-Plus enthalten ist) oder einem Patching-Utility, am besten dem Z-System-Tool ZPATCH leicht zu finden sind.
2128 Bytes werden im Maschinencode als eine Code-Page bezeichnet, hier also zwischen Hex 100 und Hex 17F
Das erste Bytepaar ist durch den String "SYSUD" gekennzeichnet. Die zwei darauffolgenden Bytes definieren den Userbereich (00H bis 0FH) und Laufwerk (A=00H bis P=1FH), die als System Directory (siehe Abschnitt 6.3.2) benutzt werden sollen.
Das nächste Byte ist mit dem String "QUIET" bezeichnet. Es entscheidet, ob der /Q oder der /V Modus als Default für die Bildschirmausgabe gilt. Ist das Byte 00H, ist der Quiet-Modus ausgeschaltet (der Verbose-Modus ist selektiert). Wenn das Byte FFH ist, ist der Quiet-Modus Default.
Das Byte hinter dem String "TEST" ist für Entwicklungs- und Debug-Zwecke reserviert. Anwender müssen normalerweise an diesem Byte nichts ändern, aber natürlich können Sie gerne damit experimentieren, wenn Ihnen Ihre Neugierde keine Ruhe läßt.
6.6 Unterschiede zwischen Z3PLUS und CP/M-Plus
Es gibt offensichtlich viele Unterschiede zwischen Z3PLUS und CP/M-Plus. In diesem Abschnitt wollen wir einige herausstellen, die Verwirrung oder Schwierigkeiten bereiten könnten, wenn Sie nicht darauf hingewiesen würden.
6.6.1 Das GET Kommando
Unter Z3PLUS ist GET ein (eingebauter) CPR-Befehl, der eine Datei an eine bestimmte Speicheradresse lädt. Um das CP/M-Plus GET.COM Programm zu benützen, stellen Sie dem Befehl irgendwelche Laufwerksangaben voran wie in den folgenden Beispielen:
:GET ...<cr> A:GET ...<cr> BASE:GET ...<cr>
Alternativ dazu können Sie es umbenennen etwa GETCPM.COM.
6.6.2 IOP -- Input/Output Package
In der Z3PLUS-Version des Z-Systems gibt es keinen Support für das Input/Output Package (IOP) des ZCPR3. Statt dessen wird das schon im CP/M-Plus vorhandene benutzt. Terminal- und Druckersteuerung, sowie Umleitung aus und in eine Datei oder ein anderes Device werden unterstützt durch die Utilities GET.COM und PUT.COM, 3 als auch durch RSXe. Die Device-Auswahl wird ebenfalls durch CP/M-Plus-Utilities unterstützt. 4 Sehen Sie dazu bitte auch in Ihren CP/M-Plus-Handbüchern nach, um weitere Information zu erhalten.
3diese finden Sie auf Ihrer CP/M-Plus System Diskette, eventuell auch auf einer UTILITY Seite, wenn Sie mehrere Systemdisketten besitzen
4DEVICE.COM o. ä.
6.6.3 Public Files
CP/M-Plus unterstützt ein "Public"-Dateisystem, wobei ausführbare Dateien im User 0 mit gesetztem "System"- oder $SYS-Attribut aus allen Userbereichen dieses Laufwerks aufgerufen werden können. Dieses Feature wird von Z3PLUS nicht erkannt, da hier stattdessen der Befehls-Suchpfad verwendet wird. Im Gegensatz zu dem mit SETDEF in CP/M-Plus definierten Suchpfad, sind im Z-System-Suchpfad nicht nur die Laufwerke, sondern auch vollständige Directories angegeben, einschließlich Userbereichen.
6.6.4 Paßwörter
Das Z-System erlaubt Directory-Paßwörter und Laufwerk/User-Begrenzungen, um alle Dateien in angegeben benannten Directories und Laufwerk/User-Bereichen zu schützen. Der Z3PLUS Kommando-Prozessor verbietet nicht den Zugriff auf Dateien, die von CP/M-Plus-Datei-Paßwörtern geschützt werden. Um sensible Dateien vor der Ausführung oder dem Betrachten zu schützen, verstauen Sie sie in ein paßwortgeschütztes Directory oberhalb der von Ihnen erlaubten Laufwerks- und User-Maxima. Bücher und Druckwerke, die in der Bibliographie aufgeführt sind, bieten Information, wie man die Z-System Sicherheits-Features einsetzt.
Alle CP/M-Plus-Dateipaßwörter bleiben aktiv, wenn ein Programm versucht, die betreffende Datei zu eröffnen.
6.6.5 Der Kommando-Suchpfad
Der Z3PLUS Kommando-Prozessor sucht nach Befehlsdateien entlang des Z-System-Pfads. Er wird in der Z3P-Deskriptor-Datei initiiert und kann jederzeit mit Hilfe von PATH.COM geändert werden. Z3PLUS deaktiviert den CP/M-Plus Suchpfad.
Der letzte Eintrag in Ihrem Pfad wird als Root Directory bezeichnet; es sollte dasjenige sein, wo sich Ihr CMDRUN.COM, der Erweiterte Kommando-Prozessor befindet.
6.6.6 Mehrfach-Kommandos
Unter Z3PLUS werden Befehle innerhalb einer Zeile durch einen Semikolon (";") getrennt. Der Z3PLUS Kommando-Prozessor unterstützt keine Dateipaßwörter, so daß der Semikolon, der unter CP/M-Plus einem Paßwort vorangestellt wird, dafür nicht benötigt wird. Der CP/M-Plus Befehls-Separator, das Ausrufezeichen ("!"), hat keine besondere Bedeutung unter Z3PLUS, außer wenn Z3PLUS das erste Mal geladen wird (siehe Abschnitt 5.1.1).
6.6.7 Konditionelle Ausführung
Z3PLUS stellt sehr ausführliche Möglichkeiten zum Testen und konditionellen Ausführen eines Befehls, basierend auf Flow States und den Befehlen im Flow Command Package. Unter dem Z-System veranlaßt ein vorangestellter Doppelpunkt (":") in einer Zeile einer Submitdatei nicht, daß die Zeile übersprungen wird, wenn ein CP/M-Plus-Programm Return Code einen Fehler meldet. Statt dessen wird er interpretiert als Anweisung, das nachfolgende Wort als ausführbare Diskettendatei zu suchen. Bevor Sie daher Ihre herkömmlichen Submit-Dateien unter Z3PLUS verwenden, müssen Sie vorangestellte Doppelpunkte daraus entfernen.
6.7 Funktionale Theorie
Z3PLUS ist eine spezielle CP/M-Plus Resident System Extension (RSX), die sich an die höchste Speicheradresse direkt unterhalb des CP/M-Plus Common Bereichs des BDOS "einklinkt". Sie enthält diese Hauptsegmente:
Warm-Boot Umleitung Programm- und RSX-Lader Kommando-Prozessor Z-System-immanente Segmente: Externe Environment Deskriptoren Terminal Capabilities Puffer Message Puffer Pfad Wheel Byte Externer File Control Block Mehrfach-Kommandozeile Shell-Stack Externer Kommando-Prozessor-Stack optionale Z-System Segment Puffer Benannte-Directory Register Resident Command Package Flow Command Package
Z3PLUS.COM liest Z-System-Dateien in den Arbeitsspeicher aus einer Library (z.B. Z3PLUS.LBR) oder als individelle Dateien, erstellt die angegebenen System-Adressen und Parameter und reloziert dann dieses System an die Speicher-Obergrenze. Z3PLUS schützt sich selbst durch Abfangen der normalen BIOS Warm-Boot Funktion, indem es die Kontrolle an den residenten Z3PLUS Kommando-Prozessor übergibt, um auf den nächsten Befehl zu reagieren.
Ist das Z-System schon aktiv, rettet Z3PLUS den Status des gegenwärtigen Z-System-Environments, determiniert die notwendigen Änderungen (z.B. einen Puffer mit anderer Größe), reloziert und installiert neue Pakete und restauriert die ungeänderten Komponenten des Environments (wie die Message-Puffer Werte und im Befehlszeilen-Puffer verbliebene Befehle).
Wenn das System entfernt wird, deaktiviert Z3PLUS die Warmboot-Umleitung, entfernt die Z3PLUS RSX, und veranlaßt das CP/M-Plus Host-System, seinen Standard Kommando-Prozessor nachzuladen.
Sowohl der Kommando-Prozessor, als auch der Z3PLUS Lader setzen zahlreiche Parameter im CP/M-Plus System Control Block. Darüberhinaus, mit Ausnahme des Patches für die BIOS Warmboot Sprungleiste, verändert Z3PLUS das CP/M-Plus Host-System intern nicht.