» Seitenende

Kapitel 4

Mehr vom Z-System

Das Z-System unterteilt sich in

Die Komponenten, die im Z3PLUS-Paket enthalten und unten beschrieben sind, stellen eine relative Grund-Ausrüstung dar, und doch, sind sie schon reichhaltig an Features. Die folgenden Beschreibungen sind hier für Sie zum Nachschlagen, aber Sie müssen sicher nicht alles beim ersten Lesen absorbieren.

 

4.1 Residente Z3PLUS Komponenten

 

4.2 Automatische Kommandos

Einige Z-System-Tools werden unter bestimmten Bedingungen automatisch ausgeführt.

4.2.1 Erweiterter Kommando-Prozessor

Wenn der Kommando-Prozessor einen Befehl weder als speicherresidentes Kommando, noch als Disk-Datei finden kann, dann wird dieser an ein Programm übergeben, das als Erweiterter Kommando-Prozessor (ECP) bezeichnet wird. Z3PLUS versucht stets, als ECP ein Programm mit dem Namen CMDRUN.COM im ROOT-Directory zu laden (das ist das letzte Directory in Ihrem Suchpfad). Das im Vertrieb befindliche Z3PLUS-System beinhaltet zwei Programme, die oft als ECPs eingesetzt werden: 1

1Es gibt sogar einen Weg, beide als ECP zusammenwirken zu lassen.
ARUNZ kann als sehr leistungsfähiger Kommandogenerator und Übersetzer verwendet werden.

Um eines dieser Programme als Ihren Erweiterten Kommando-Prozessor einsetzen zu können, kopiert man es unter dem Namen CMDRUN.COM. 2 Um zum Beispiel ARUNZ als ECP zu verwenden, gibt man ein:

PIP CMDRUN.COM=ARUNZ.COM<cr>
2Es muß im ROOT-Directory sein (letztes Element im Suchpfad). Wenn Sie das nicht selbst geändert haben, wird dies A0 sein, aber man kann mithilfe des PATH-Kommandos nachsehen, welches das ROOT-Directory ist.

Sie sollten das jetzt tun, da wir in Kürze (Abschnitt 4.3.1) ARUNZ für einige Beispiele verwenden wollen. Später, wenn Sie lieber LX verwenden wollen, geben Sie ein: 3

PIP CMDRUN.COM=LX.COM<cr>
3Vorher sollten Sie das alte CMDRUN.COM entfernt haben.

4.2.2 Error Handler

Wenn der Kommando-Prozessor einen Befehl nicht ausführen kann, weil der ECP nicht gefunden wurde, oder weil der Erweiterte Kommando-Prozessor den Befehl auch nicht bearbeiten kann, dann wird CPR einen Error-Handler aktivieren. Hochentwickelte Z-System-Errorhandler können Information darüber geben, was mit dem Befehl nicht stimmt und Ihnen ein Editieren der Kommandozeile erlauben, um irgendwelche Fehler zu beseitigen.

Jede Art von Fehlermeldung kann mit dem ERRSET-Utility (nicht im Lieferumfang enthalten) geladen werden. Die meisten Error-Handler werden sich automatisch installieren, wenn sie manuell als Kommando geladen werden (sie können unterscheiden, ob sie vom Anwender oder vom CPR) aufgerufen wurden. Das Z3PLUS Paket beinhaltet den ZERRLSH Error-Handler in Kombination mit der History-Shell LSH, mehr darüber im nächsten Abschnitt.

4.2.3 Kommando Shells

Shells sind Tools, die automatisch ausgeführt werden, wann immer der Kommando-Prozessor alle übergebenen Kommandos ausgeführt hat -- einschließlich Stapel-Befehlen von SUBMIT -- und ist bereit für neue Befehlseingaben. Ist keine Shell geladen, dann wird der normale Prompt am Bildschirm auftauchen und der Anwender wird nach dem nächsten Befehl gefragt. Ist eine Shell aktiv, dann wird statt dessen diese ablaufen. Die meisten Shells erzeugen Kommandos für den Anwender und geben diese an den Kommando Prozessor weiter. Wir haben verschiedene Shells beim Z3PLUS-System mitgeliefert.

Die Shell Befehlszeile (manchmal im Verbund mit anderer Information, die von der Shell benutzt wird) liegt in einem Speicher-Puffer, genannt der "Shell-Stack". Der Shell-Stack des Z3PLUS-Systems kann bis zu vier Shell-Befehlszeilen speichern. Das zuletzt abgelegte Kommando ist das aktive Shell-Kommando. Wenn diese Shell beendet wird (normalerweise durch einen gesonderten Befehl), wird ihre Befehlszeile vom Shell-Stack entfernt (in Anlehnung an die Assemblersprache: "gepoppt"), wobei die darunterliegende Shell zuoberst auf dem Stack zu liegen kommt. Sie wird dadurch aktiv. Dieser Mechanismus erlaubt die "Verschachtelung" von Shells.

ZERR und LSH - Error Handler und History-Shell

LSH (Log Shell) ist ein gutes Beispiel für das Shell-Konzept. Es ist außerdem besonders praktisch. Wenn LSH aktiv wird, wird ein Prompt sichtbar, ähnlich dem CPR, aber zusätzlich mit der eingestellten Uhrzeit. Daran kann man erkennen, daß LSH läuft. Es gibt jedoch drei sehr wichtige Unterschiede:

  1. Wenn man ein Kommando eingibt, steht ein sehr mächtiger Editor zur Verfügung, eine Art Textverarbeitung für die Kommando-Zeile. Diese kann vorwärts und rückwärts durchgeblättert werden und man kann Zeichen einfügen oder löschen.

  2. Bei der Eingabe eines Kommandos wird durch Drücken der Return Taste die Kommando-Zeile in eine "History" Datei gespeichert, bevor der Befehl dem CCP übergeben wird.

  3. Früher eingegebene Kommandos können aus der History-Datei geholt, nach Wunsch editiert und wieder ausgeführt werden

Nachdem Sie gesehen haben, wie praktisch diese Features sind, wollen Sie möglicherweise LSH der Liste der Kommandos im STARTZ3P Startup Alias hinzufügen.

LSH wird mit ZERR als Error-Handler erst perfekt.

LSH ist, so wie es mit Z3PLUS geliefert wird ein type-3 Programm (siehe Abschnitt 3.2.4), das an Adresse 8000H abläuft (32K). Als Resultat wird LSH beim Wiederaufruf eines Programms mit Hilfe des GO-Befehls nicht stören, es sei denn, das Anwenderprogramm war größer als 32K.

Die Installation von LSH geschieht mit LSHINST und definiert zum Beispiel die Mindestlänge eines Befehls, der gespeichert werden soll. Sie können aber auch schon so probeweise 4 arbeiten. Sinnvoll ist der Aufruf von einer RAMDISK aus, da die History-Datei dann beim Kaltstart stets leer ist. Geben Sie also ein:

LSH<cr>
4HELPLSH kann zur Hilfestellung mit ESC-J aufgerufen werden.

Wir empfehlen Ihnen das jetzt mit den folgenden Beispielen zu üben. Geben Sie die die folgenden Kommandos nacheinander ein, durch Return getrennt:

ECHO Das ist der Befehl 1<cr>
DIR *.COM<cr>
ECHO Das ist der Befehl 3<cr>
LDIR Z3PLUS<cr>

Wenn der nächste Prompt erscheint, drücken Sie Control-E (für Rückwärts). Das vorangegangene Kommando erscheint. Geben Sie jetzt mehrfach Control-E ein. Dann versuchen Sie's mal mit Control-X (für Vorwärts); es wird Sie in der History vorwärts bewegen. Fahren Sie fort, bis Sie die Befehlszeile "ECHO Das ist der Befehl 3" am Prompt sehen.

Jetzt wollen wir das Kommando editieren. Die meisten der Editor-Tasten sind von WordStar her bereits bekannt. Control-S und Control-A springt ein Zeichen bzw. ein Wort nach Links, Control-D und Control-F entsprechend nach Rechts. Wenn Sie die "3" erreichen, geben Sie Control-G zum Löschen ein. Dann geben Sie eine "5" ein und drücken Return.

Nun versuchen wir einen Befehl zu finden. Beim Prompt geben Sie nur "ECHO" ein (ohne Return). Dann drücken Sie Control-QF. Beachten Sie, daß LSH das zuletzt benutzte Kommando findet, das mit "ECHO" angefangen hatte. Drücken Sie nochmals Control-QF. LSH findet das nächste zurückliegende Vorkommen. Diese Eigenschaft ist bemerkenswert praktisch!

Versuchen Sie jetzt den Seitenmodus von LSH. Drücken Sie zweimal kurz hintereinder ESC. 5

5Wenn Sie einen AMSTRAD Rechner benutzen, überprüfen Sie, ob Sie die ESC-Taste wirklich über SETKEYS mit dem Zeichen 27 (ESC) belegt haben.Die CPCs haben dort normalerweise das Bömbchen, das Zeichen 252.

Sie finden jetzt mehrere Eingabezeilen untereinander am linken oberen Bildschirmrand. Wie in WordStar kann man jetzt die Eingabezeilen bearbeiten und die geeignete Zeile schneller erkennen und wieder verwenden. Sehr praktisch ist auch die Hilfs-Funktion von LSH. Sorgen Sie dafür, daß die Datei HELPLSH.COM sich im Suchpfad befindet. Geben Sie jetzt ein:

ESC-J

Das erreichen Sie durch gleichzeitiges Drücken der ESCAPE-Taste 6 und der Taste "J".

6beim PCW heißt diese Taste STOP

Die ZFILER Shell

ZFILER illustriert, wie eine Shell das Anwender-Interface vollständig verändern kann. Statt einer Befehlszeile stellt es eine "Point-and-Shoot"-Umgebung zur Verfügung. Um nun ZFILER in Aktion zu sehen, geben Sie ein:

ZFILER<cr>

Sie brauchen LSH nicht zu "entfernen", bevor Sie ZFILER starten. Shells können unter dem Z-System "verschachtelt" werden. ALs LSH lief, wurde ZFILER aufgerufen, dadurch wurde LSH inaktiv, wohingegen ZFILER läuft, ist jedoch automatisch wieder zurück, wenn ZFILER verlassen wird.

Sie werden eine ganzseitige Anzeige von Dateinamen des augenblicklichen Directorys erhalten, sowie einen Zeiger, der auf den ersten Dateinamen zeigt. Benutzen Sie die WordStar-Raute (Control-Tasten E, X, S, und D für hoch, runter, links, und rechts), um diesen zu bewegen. Positionieren Sie den Zeiger auf eine Text-Datei, wie LSH.CMD, ALIAS.CMD, oder ZFILER.CMD. Drücken Sie die "V"-Taste, um eine Datei anzusehen ("View"-Funktion). ZFILER hat viele solcher eingebauter Funktionen, und Sie können eine Liste davon sehen, indem Sie einen Slash ("/") für Hilfe eingeben. Drücken Sie nochmals diese Taste, um zum Dateimenü zurückzukehren.

Versuchen Sie jetzt mit "T" Dateien "anzukreuzen". Experimentieren Sie mit "Gruppen-"Operationen durch Drücken der "G" Taste. Wie Sie sehen können, sind Funktionen nicht nur auf eine einzelne Datei, sondern auf alle "angekreuzten" Dateien ausführbar. Geben Sie zum Probieren "Copy" ein durch Drücken von "C". Wenn Sie nach dem Ziel-Directory gefragt werden, geben Sie ein

A1<cr>

Beachten Sie, daß der Doppelpunkt nach Verzeichnisangaben innerhalb von ZFILER nicht unbedingt notwendig ist.

Überprüfen wir jetzt, ob die Dateien ordnungsgemäß kopiert wurden. "Loggen" Sie sich in das Directory A1: ein durch die "L" oder "Log" Taste. Geben Sie beim Prompt ein:

A1<cr>

Löschen Sie diese doppelten Dateien mit der "D" Taste. Kehren wir jetzt wieder ins Directory A0: zurück, aber auf eine leicht andere Art und Weise:

Das Verzeichnis A0: hat den Namen: COMMAND. Drücken Sie die "L" Taste und geben Sie dann ein:

COMMAND<cr>

Wie Sie sehen, können benannte Directories genauso wie Drive-User Bezeichnungen angegeben werden. Das gilt für das gesamte Z-System. 7

7Das heißt, für den Z3PLUS Kommando Prozessor und Z-System-spezifische Utility Programme.

Die eingebauten Funktionen sind nicht die einzigen, die ZFILER ausführen kann. Ein Set von "Macro"-Kommandos kann zusammen mit einer Anwender-Hilfsseite in der Datei ZFILER.CMD definiert werden. Wir haben eine ganz einfache Variante beigefügt, um die Möglichkeiten zu verdeutlichen. Bewegen Sie den Zeiger auf die Datei Z3PLUS.LBR. Drücken Sie jetzt die ESCAPE-Taste. Sie werden jetzt nach einem Makro gefragt. Später, wenn Sie wissen, welche Tasten welchen Macro-Funktionen zugeordnet sind, können Sie gleich die richtige Taste eingeben. Alternativ können Sie nochmals ESCAPE drücken (tun Sie das jetzt), und die Informations- Seite verschwindet. Sie werden sehen, daß das "L"-Makro Ihnen das Verzeichnis einer Library-Datei zeigt. Drücken Sie "L" und sehen Sie zu, was passiert.

ZFILER hat für Sie eine Befehlszeile generiert und dem Kommando Prozessor übergeben. Nachdem diese Kommando-Zeile ausgeführt ist, wird automatisch die ZFILER-Shell wieder aufgerufen. In diesem Fall, wußte sie ja, daß sie gerade ein Kommando beendet hatte, das eine Bildschirmausgabe verursacht hatte. Also wartete sie auf einen Tastendruck, bevor sie die Dateiliste restaurierte.

Es ist sogar möglich, Makro-Kommandos auf Gruppen von angekreuzten Dateien anzuwenden. "Taggen" Sie ein paar Dateien und drücken Sie dann "G", um eine Gruppen-Operation zu starten. Wenn Sie nach der Operation gefragt werden, drücken Sie wie zuvor die ESCAPE-Taste, um einen Makro-Befehl auszuwählen. Wie vorher, werden Sie aufgefordert, eine Makro-Taste einzugeben. Sie können wieder sofort die Taste drücken, oder mit ESCAPE Hilfe anfordern.

Geben Sie jetzt ein: "E". ZFILER wird jetzt automatisch eine Datei namens ZFILER.SUB im Directory A0: generieren und dann eine SUBMIT Stapel-Operation einleiten. Das "E"-Macro, wie Sie sehen werden, ist eine harmlose Kommando-Zeile, die ECHO benutzt, um zu zeigen, wie ZFILER den Namen der (mit Zeiger oder Tag markierten) bezeichneten Datei "parsen" kann.

Sie können jetzt ZFILER verlassen, indem Sie die "X" oder "eXit" Taste drücken. 8 Das wird die Shell beenden. Wenn LSH vor dem Aufruf von ZFILER aktiv war, dann wird LSH zurückkehren. Andernfalls, werden Sie den Prompt des Kommando-Prozessors selbst sehen. Profis erkennen das Vorhandensein von LSH an der angezeigten Uhrzeit vor dem Prompt.

8AMSTRAD PCW Anwender: Es ist nicht die EXIT-Taste gemeint.

Andere Shells

Es gibt eine ganze Reihe anderer Shells, die nicht im Standard Z3PLUS-Paket enthalten sind, die ebenso eine große Bandbreite von Funktionen bieten. Einige sind in der gleichen Familie wie ZFILER. Im Gegensatz zu ZFILER, der die Dateien auf dem Bildschirm zeigt und die verfügbaren Makro-Kommandos nur auf Wunsch anzeigt, präsentiert die MENU-Shell nur die Kommando-Optionen. Sie unterstützt mehrfache Verschachtelung von Befehlsmenüs. Die VMENU- und FMANAGER-Shells sind irgendwo in der Mitte zwischen MENU und ZFILER. Sie zeigen die Dateien in der obereren Hälfte des Bildschirms und die Kommando-Optionen in der unteren.

Eine andere Art Shell ist die Patch-Shell ZPATCH. Sie erlaubt Ihnen, den Maschinencode einer Datei zu editieren. Zum Beispiel möchten Sie die Konfigurations-Optionen eines Programms anpassen. Aus ZPATCH heraus können Sie das modifizierte Programm aufrufen, um das Ergebnis Ihrer Arbeit zu begutachten und dann automatisch nach ZPATCH zurückzukehren, wobei der Cursor auf exakt demselben Byte steht wie vor dem Aufruf.

Ein weiteres Set von Shells (SH, GETVAR, FOR-NEXT) gestatten das Erzeugen und Verwenden von "Shell Variablen", ziemlich ähnlich den "Environment Variablen" in MS-DOS.

 

4.3 Andere Z-System Tools

Es gibt noch viele, viele andere Z-System-Tools, bei weitem zu viele, um sie alle hier beschreiben zu können. In der Tat gibt es wahrscheinlich nicht einen Z-System User, egal welchen Expertenlevels, der alle kennt! Damit Sie damit umgehen lernen, werden wir ein paar wichtige beschreiben. Bis jetzt mußten Sie diese noch nicht alle von Ihrer Z3PLUS-Arbeitsdiskette (Abschnitt 2.2) in Ihr Directory A0: kopieren. Sie können diese entweder kopieren, oder von Ihrer Arbeitsdiskette ausführen.

4.3.1 ARUNZ

Ein Z-System Alias oder Alias-Script ist eine Sequenz eines oder mehrerer Kommandos, die mit einem einzigen Befehle aufgerufen werden kann. Wie wir in Abschnitt 3.1 gesehen haben, sind alleinstehende Aliase kurze COM-Dateien, die man mit SALIAS, dem Bildschirm-orientierten Alias-Editor, erzeugen kann.

ARUNZ bietet einen alternativen Weg, um Aliase zu definieren und anzuwenden. Statt jeden Alias in eine eigene Datei zu packen, erlaubt ARUNZ die Definition zahlreicher Aliase in einer einzigen Datei namens ALIAS.CMD. ARUNZ extrahiert einen bestimmten Alias-Script aus der ALIAS.CMD Datei, expandiert eventuelle symbolische Parameter im Script und übergibt die resultierende Kommando-Zeile an den Kommando-Prozessor.

Die Datei ALIAS.CMD ist eine gewöhnliche Textdatei, die mit einem beliebigen Text-Editor oder Textverarbeitung (im Non-Document Mode) erstellt werden kann. Da alle Scripts in einer einzigen Datei kombiniert werden können, benötigen sie sehr wenig Disk-Speicherplatz. Auf diese Weise können Dutzende oder sogar hunderte verwendet werden und dadurch Ihren Computer-Alltag erheblich erleichtern.

ARUNZ-Aliase werden in der Form aufgerufen:

ARUNZ ALIASNAME BEFEHLS-ARGUMENTE<cr>

ALIASNAME spezifiziert, welcher der Scripts in ALIAS.CMD gemeint ist und BEFEHLS-ARGUMENTE liefern weitere Informationen, die von den Scripts erwartet werden, wie etwa Dateinamen. Die wirkliche Leistungsfähigkeit von ARUNZ kommt zutage, wenn man ihn in CMDRUN.COM umbenennt und er als Erweiterter Kommando-Prozessor (siehe Abschnitt 4.2.1) fungiert. Dann kann das Kommando einfach so eingegeben werden:

ALIASNAME BEFEHLS-ARGUMENTE<cr>

Ein Beispiel macht das möglicherweise etwas klarer. Eine Zeile in der Datei ALIAS.CMD lautet:

D=SD   sdz $td1$tu1:$tn1*.$tt1* $-1

Das mag ziemlich verboten aussehen mit all diesen Dollar-Zeichen, aber, wenn wir es Stück für Stück auseinandernehmen, wird es nicht so schlimm. Zuerst kann der Alias als erster mit "D" oder "SD" aufgerufen werden, es ist sozusagen sein Name. ARUNZ gestattet eine Vielzahl von Namen für einen einzigen Script. Das Programm, das jetzt von diesem Alias aufgerufen wird, ist SDZ, das Super-Directory Programm.

Der interessante Teil dieses Scripts ist die Art, wie die Befehlsargumente verarbeitet werden. Um zu illustrieren, was geschieht, nehmen wir an, daß wir das folgende Kommando eingegeben haben:

D S.C<cr>

Der Parameter-Ausdruck "$td1" steht für das im ersten Token angegebene Laufwerk. In unserem Beispiel, ist das erste Token "S.C". Da dort kein Laufwerk angegeben wurde, wird das aktuelle Laufwerk A: angenommen. Gleichermaßen bedeutet "$tu1" die im ersten Token angegebene User-Nummer. Wiederum war auch hier keine angegeben, daher wird die aktuelle User-Nummer 0 angenommen. Als nächstes gibt es da einen Doppelpunkt. Bisher liest sich die Kommando-Zeile "SDZ A0:".

Der nächste Parameter, "$tn1", indiziert, daß der Dateiname Teil des ersten Tokens ist. In unserem Beispiel, ist das "S". Die nächsten Zeichen im Script sind ein Asterisk (*) und danach ein Punkt. Dann haben wir den Parameter "$tt1", der für den Datei-Typ im ersten Token, oder "C". Dann gibt es noch einen weiteren Asterisk (*) im Script. Bisher liest sich also unsere Kommando-Zeile: "SDZ A0:S*.C*".

Der letzte Teil des Scripts ist der Parameter Ausdruck "$-1". Das bedeutet das gesamte Befehls-Argument ohne das erste Token ("$-2" würde die ersten zwei Tokens auslassen). Im Beispiel, gibt es keine anderen Tokens, aber man hätte eine Option von SDZ angeben können, wie etwa "/C", um die Dateigröße als Record Count statt in K anzugeben. Auf diese Weise wird das Kommando, das als

D S.C<cr>

eingegeben wurde, dank ARUNZ, zu:

SDZ A0:S*.C*<cr>

Versuchen Sie den Alias-Befehl und sehen Sie, was passiert. Das Script zeigt uns einen sehr bequemen Weg, automatisch die Dateiangaben für das SDZ-Programm in eine "Wildcard"-Angabe zu verwandeln, womit wir uns das ärgerliche Eingeben der Joker-Zeichen (*.*) ersparen. Im Beispiel, erhalten wir alle Dateien, deren Name mit "S" beginnt und deren Typenbezeichnung mit "C" beginnt, einschließlich SALIAS.COM, STARTZ3P.COM, und SDZ.COM.

Um mehr darüber zu lernen, wie man ARUNZ-Aliase schreibt und einsetzt, konsultieren Sie die Querverweise in der Bibliographie. Aber beachten sie, daß die Version von ARUNZ, die mit Z3PLUS geliefert wurde, neuer ist, als die dort beschriebene. Viele neue Parameter wurden hinzugefügt und ein paar alte Parameter wurden verändert. Lesen Sie daher die Update-Dokumentation, die im Z3PLUS Paket enthalten ist.

4.3.2 HELP

Die meisten Z-Tools geben eine herbe Erinnerung an die Befehlszeilen-Syntax aus, wenn Sie sie nur mit einem doppelten Schrägstrich (SLASH) aufrufen, wie in

Z3PLUS //<cr>

Viel ausführlichere on-line Information kann man durch das Z-System HELP Utility erhalten. Es stellt eine organisierte Methode dar, um (baumstrukturiert) nach speziellen Textdateien des Typs HLP zu suchen und die darin enthaltene Information anzuzeigen. Es ähnelt der CP/M-Plus HELP Einrichtung, ist aber ungleich leistungsfähiger. Das Programm hieß ursprünglich HELP, um aber eine Verwechslung mit dem CP/M Programm dieses Namens zu vermeiden, haben wir es für das Z3PLUS-System in ZHELP umbenannt. ZHELP ruft man wie folgt auf:

ZHELP<cr>
ZHELP Dateiname<cr>

Die erste Form benutzt eine Datei mit dem Namen HELP.HLP; die zweite verwendete Form war mit einem Namen "filename" angeandt worden. Zum Beispiel, wenn Sie dafür SALIAS einsetzen und es gibt eine Hlp-Datei dafür, geben Sie ein

ZHELP SALIAS<cr>

Help-Dateien für eine Vielzahl anderer Z-System-Programme könnnen in den Z-Nodes gefunden werden. 9 Sie können auch Ihre eigenen HLP-Dateien schreiben.

9In Europa gibt es bisher nur einen Z-NODE: ZNODE 51 in Neufahrn bei München 08165/60041 Baudrate 300 1200 2400 8 N 1 SIG-OP Helmut

4.3.3 Library Tools

Z-System Library Tools machen es möglich, einen ganzen Set von Dateien in eine einzige Library-Datei zu packen und dann die einzelnen Library-Mitglieder nach Bedarf zu verwenden. Das ist effektiv, um kurze und in Zusammenhang stehende Dateien zu organisieren und Directory- und Dateikapazität der Diskette zu sparen. Programme wie Z3PLUS und JETLDR sind in der Lage, auf mehrere Mitglieder einer Library schneller zuzugreifen, als individuelle Dateien gelesen werden könnten. Der Einsatz von Libraries in Mailboxen (RASs oder RCPMs) ist sehr verbreitet. Die grundlegenden Z3PLUS System-Dateien zum Beispiel, befinden sich alle in der Library Z3PLUS.LBR.

Die zwei Mehrzweck-Library-Tools sind NULU (new Library utility) und VLU (Visual Library Utility). Diese zwei Programme können eine Library erzeugen, Dateien hineinstellen und extrahieren, Textdateien auf dem Bildschirm "typen", und besitzen eine Reihe anderer Funktionen. NULU ist ein generisches CP/M Programm, es läuft also unter dem normalen CP/M ebenso und kann von Mailboxen downgeloadet werden; VLU ist ein Z-System-spezifisches Tool und arbeitet ähnlich wie die ZFILER-Shell. Wir haben dem Z3PLUS Paket eine spezielle, für CP/M Plus gepatchte Version beigefügt, die die freie Disk-Kapazität korrekt anzeigt. Andere Versionen sollten unter Z3PLUS nicht verwendet werden.

Library Tools, die eingeschränktere Funktionen besitzen, sind:

LPUT 
Datei in eine Library packen
LGET 
Datei aus Library holen
LDIR 
Directory einer Library
LX 
Ausführen von Member-Dateien
LT 
Library-Text-Datei ansehen

4.3.4 Datei-Kompression

Kompressions- und Dekompressions-Tools erlauben das "Crunchen" von Files auf ein Bruchteil Ihrer Original-Größe für kompaktere und schnellere Übertragung per Modem. Gecrunchte Dateien haben ein "Z" als zweiten Buchstaben des Dateityps, der sogenannten Extension (oder ZZZ als Typ, wenn keine Extension vorhanden war). CRUNCH und UNCRUNCH machen die Arbeit. Auch sie sind im Z3PLUS-Paket enthalten.

LT.COM ist sehr vielseitig. Es wurde mit den Library Tools gelistet, weil es Textdateien in Libraries darstellen kann. Es kann auch einzelne Dateien anzeigen und in beiden Fällen kann die Datei gecruncht sein als auch unkomprimiert sein. Es erkennt sogar automatisch, ob "Uncrunchen" notwendig ist. Um ein Library-Mitglied auf dem Bildschirm auszugeben, benutzen Sie die Befehlsform:

LT LBRNAME FILENAME.TYP<cr>

Um eine einzelne Datei anzuzeigen, benutzen Sie die Form:

LT FILENAME.TYP<cr>

4.3.5 Benannte Directory Tools

Die Fähigkeit des Z-Systems, Namen mit Directories zu assoziieren, machen das Leben einfacher, vor allem, wenn Ihr Computer eine Harddisk besitzt. EDITNDR 10 ist ein Hilfsmittel, um die Zuordnung von Directory-Namen zu editieren. Es kann sowohl interaktiv, als auch aus der Kommando-Zeile verwendet werden. Wenden wir es zuerst interaktiv an. Geben Sie ein

EDITNDR<cr>
10Früher hieß es einmal EDITND. Wir haben es umbenannt, um eine einheitliche Form mit SAVENDR zu erreichen.

Sie erhalten einen Prompt, der Sie einlädt, für Hilfe ein "?" einzugeben. Warum sollten wir diese Einladung nicht akzeptieren! Geben Sie jetzt ein RETURN ein. EDITNDR zeigt Ihnen jetzt die augenblicklich zugewiesenen Namen. Geben Sie jetzt ein

A1:TEXT<cr>

Das weist dem User 1 auf Laufwerk A: den Namen TEXT zu. Drücken Sie <cr> um die neue Anzeige zu erhalten. Vielleicht sehen Sie die Zuweisung von A1: nicht, weil es nicht bei den anderen Zuordnungen von Laufwerk A: steht. Mit der Eingabe von "S" sortieren Sie die Liste und geben Sie noch einmal ein <cr>. Jetzt sind die Namen in geordneter Reihenfolge. Wenn Sie den eingebauten Hilfe-Bildschirm ansehen, werden Sie sehen, daß EDITNDR sehr flexibel ist in der Syntax, die es akzeptiert.

Die Datei ALIAS.CMD enthält einen Alias, um die Zuweisung von Directory-Namen zu vereinfachen. Sie geben dazu nur ein

NAME DU:DIRNAME<cr>

wobei DU den Userbereich (drive/user) angibt, der den Namen DIRNAME erhalten soll. Wenn "DU:" weggelassen wird, wird dem aktuellen Verzeichnis der Name zugewiesen. Versuchen Sie die Eingabe

NAME SYS<cr>

und beobachten Sie, wie der Kommando-Prompt sich verändert. Sie können den Inhalt von ALIAS.CMD betrachten, um zu sehen, wie dieser Alias funktioniert.

Die mit EDITNDR gemachten Directory-Zuweisungen sind temporär. Sie können das SAVENDR Utility verwenden, um die Zuweisungen in eine Datei zu speichern. Diese Datei kann durch den STARTZ3P-Alias geladen werden, um Ihre Namen wieder zu installieren. Das Kommando

SAVENDR SYS<cr>

zum Beispiel, erzeugt im aktuellen Verzeichnis eine Datei namens SYS.NDR. Diese Datei kann von Z3PLUS geladen werden durch den Befehl

Z3PLUS SYS.NDR<cr>

Z3PLUS kann viele Dateien gleichzeitig laden, daher können Sie das kombinieren mit dem Laden der Z3T-Datei wie folgt:

Z3PLUS myterm.Z3T SYS.NDR<cr>

Wenn Sie diese zwei Dateien mit LPUT in Z3PLUS.LBR stellen, können Sie diese sogar noch schneller laden mit

Z3PLUS Z3PLUS.LBR myterm.Z3T SYS.NDR<cr>

Am besten benennen Sie die beiden Dateien in DEFAULT.Z3T und DEFAULT.NDR um, bevor Sie sie in Z3PLUS.LBR packen. Dann lädt Z3PLUS sie automatisch beim Start und Sie müssen im STARTZ3P-Alias kein neues Kommando einfügen.

4.3.6 Andere Tools

Eine Anzahl anderer Utility-Programme können auf Ihrer Z3PLUS-Diskette enthalten sein. Sie sollten selbst mit Ihnen experimentieren. Geben Sie nach dem Namen "//" ein, um die eingebaute Hilfe zu bekommen. Wenn es eine (HLP)-Datei mit demselben Namen wie die Befehlsdatei gibt, können Sie ZHELP benutzen, um mehr über dieses Kommando zu lernen.

 

4.4 Kommando-Hierarchie

Der Z3PLUS Kommando-Prozessor ist hochentwickelt in der Art, wie er Befehle abarbeitet. Zwei Schritte sind es bei der Befehlsabarbeitung. Zuerst muß von irgend einer Kommandoquelle ein Kommando kommen. Dann muß das Kommando in entsprechender Weise bearbeitet werden. Wir wollen jetzt diese zwei Aspekte der Befehlsbearbeitung kurz beschreiben.

4.4.1 Kommando Akquisition

Der Z3PLUS Kommando-Prozessor erhält sein nächstes Kommando nach der folgenden Hierarchie:

  1. aus dem Mehrfach-Kommandozeilen-Puffer

  2. aus einer SUBMIT-Datei

  3. durch ein Shell-Kommando

  4. durch Anwender-Eingaben

Kommandos im Mehrfach-Kommandozeilen-Puffer haben die höchste Priorität. Ist der Kommandozeilen-Puffer leer, sieht der Kommando-Prozessor nach, ob ein SUBMIT läuft, in welchem Fall er seine nächste Kommandozeile von der SUBMIT-Datei erhält. Das bedeutet, daß ein SUBMIT-Job sich tatsächlich wie eine sehr lange Kommandozeile verhält. Ist der Befehlsstrom erschöpft, kehrt der Kommando Prozessor zu einer eventuell gewählten Shell zurück. Nur wenn es keine Shell gibt, kehrt der Kommando Prozessor als letzte Anlaufstelle zum Anwender zurück!

4.4.2 Kommando Auflösung

Wenn Z3PLUS das nächste Kommando erhält, löst es den Befehl nach folgender Hierarchie auf:

  1. Durchsuchen der FCP Kommandos

  2. Durchsuchen der RCP Kommandos

  3. Durchsuchen der eingebauten Kommando-Prozessor Befehle

  4. Suchen einer Datei (COM, SUB, PRL) entlang des Suchpfads

  5. Aufrufen des Erweiterten Kommando-Prozessors

  6. Aufrufen des Error Handlers

Die Dateitypen, die entlang des Suchpfades gesucht werden, werden von der CP/M-Plus Suchordnung kontrolliert. 11 Wenn die Reihenfolge zum Beispiel erst COM, dann SUB ist, dann wird erst der gesamte Pfad erst nach einer COM-Datei abgesucht. Wird keine passende COM-Datei gefunden, wir der Pfad nochmals nach einer SUB-Datei durchsucht.

11Diese Reihenfolge und welche Dateitypen das beinhaltet, kann mit dem CP/M-Plus Utility SETDEF geändert werden.

Einige Faktoren können die Auflösungshierarchie beeinflussen. Ist der gegenwärtige Flow State "False", werden nur FCP und Shell Kommandos gescannt. RCP und CPR-residente Kommandos werden ignoriert; transiente Kommandos und der Erweiterte Kommando Prozessor (ECP) werden ignoriert. Shells werden immer noch ablaufen.

Verschiedene Voranstellungen können die Hierarchie der Auflösung verändern. Ein Slash Prefix "/" weist einen Befehl unmittelbar dem Erweiterten Kommando Prozessor zu. Wenn Sie wissen, daß Ihr Kommando vom ECP ausgeführt werden muß , dann können Sie sich die Zeit sparen, die andernfalls bei der Durchsuchung des Pfades nach einem transienten Kommando verlorengeht. Der Slash Prefix kann auch verwendet werden, wenn sowohl transiente, als auch ECP-Versionen ein und desselben Kommandos existieren, und Sie die ECP Version haben möchte.

Ein Prefix, der nur aus einem Doppelpunkt, oder aus einem Punkt besteht, veranlaßt den Z3PLUS Kommando-Prozessor, residente Kommandos zu überspringen. 12 Außerdem fügt es das aktuelle Verzeichnis auch dem Suchpfad hinzu. Wird ein transientes Kommando nicht gefunden, wird immer noch der ECP will aufgerufen. Diese Prefixe können benutzt werden, wenn der Suchpfad das aktuelle Verzeichnis ($$) nicht beinhaltet und Sie wissen, daß es das Kommando gibt. Man kann sie auch benutzen, um die Ausführung eines transienten Programms mit demselben Namen wie ein residentes im RCP oder CPR zu erzwingen.

12Das gilt nicht für resident Kommandos im FCP. Bei jedem Kommando werden Flow control Kommandos mitgeprüft, egal, welcher Prefix vorliegt (ein Doppelpunkt, ein Slash, DU:, oder DIR:).

Ein expliziter Directory Prefix der Form D:, U:, DU: oder DIR: hat denselben Effekt wie der Doppelpunkt oder der Punkt, außer daß das Kommando nur im angegeben Directory gesucht wird und der ECP nicht aufgerufen wird, wenn das Kommando nicht gefunden wurde.

Tritt ein Fehler auf, versucht der Kommando Prozessor erst, einen Error-Handler. Wurde keiner angegeben oder keiner gefunden wurde, schreibt es die verbleibende Kommando-Zeile in den Mehrfach-Kommandozeilen-Puffer, gefolgt von einem "?".

» Seitenanfang