★ APPLICATIONS ★ DISQUE ★ ZCPR - das neue Kleid für CP/M ★ |
ZCPR | Applications Disque |
Komfortable Verbesserung für CP/M Trotz allem Unken aus der MS-DOS-Ecke ist und bleibt CP/M ein Standard, der sehr weit verbreitet ist. Und wie bei allen Dingen ist auch hier die Entwicklung nicht stehengeblieben. Das Betriebssystem CP/M hat, wie andere Programme auch, so seine Unzulänglichkeiten. Um sie auszubügeln, wurde ZCPR. im Heft 6-7/91 bereits vorgestellt, entwickelt. Im folgenden noch einige nützliche Hinweise zu dessen Anwendung. CP/M ist wie MS-DOS dreigeteilt:
Historisch bedingt wurde CP/M im 8080-Code generiert, der langsamer und umständlicher ist als der Z80-Code. Da man davon ausgehen kann, daß die meisten CP/M-Computer heute einen Z80 oder höhere Verwandte wie den HD 64180 oder gar den Z280 verwenden, war es logisch, überflüssigen Code durch effizienteren zu ersetzen. Erstes Ziel war natürlich der CCP, da dieser am leichtesten ersetzbar ist und zur Laufzeit sowieso per Definition vom Anwenderprogramm übersehrieben werden darf. Bei jedem Control-C (Warm-Boot) wird er deshalb wieder nachgeladen. Als Nebeneffekt wird die Diskverwaltung “zurückgesetzt“. Richard Conn und Jay Sage sind die bedeutendsten Autoren des Z80 Console Processor Replaccmcnts, des ZCPR. Auch für 8085-Anwender kein Grund, traurig zu sein — der Prozessor NSC-800 ist Pin-kompatibel und kennt sich mit Z80-Instruktionen aus! Entsprechende Informationen kann jeder Triumph-Adler-Club geben; im Zweifelsfall einfach an die genannte Adresse wenden. Bis zur Version 3.3 wurde ZCPR als nicht-kommerzielles Produkt über die Public Domain angeboten und ist nach wie vor (als Quellcode zur Selbstinstallation) erhältlich. Diese Versionen funktionieren ausschließlich unter CP/M 2.2! Für CPCs mit Dobbertin-Erweiterung gibt cs eine fertig angepaßte Version gegen Zusendung einer Diskette mit 704 kByte Kapazität (Adresse siehe Box). Für andere Nutzer gibt es zwei Auto-Install-Versioncn, NZCOM (für CP/M 2.2) und Z3PLUS Jeweils neu erscheinende Tools bringt die Schncidcr/Amstrad CPC User Group gratis in Umlauf, die Verteilung übernehmen die User untereinander. Jeder Käufer erhält#eine Anwender-Adreßliste, aus der er die Formate ersehen kann, die vom Empfänger gelesen werden können. Das ist notwendig, weil diese Systeme auf so gut wie jedem CP/M-Computer laufen. Gehen wir also davon aus, daß Ihr Z-System bereits läuft und daher ein definiertes Environment existiert. Das bedeutet, das Z-System verwaltet die Daten der Bildschirmsteuerung (TCAP ähnlich wie bei UNIX) und die Daten der gültigen Laufwerks- und User-Nummern. Eingeschlosscn sind dabei auch die Zugriffs-Flags, die Suchpfad-Definition und die Namen der benannten Verzeichnisse. Alle für das Z-System geschriebenen Programme können diese Daten (mehr oder weniger gut, je nach Tool) auswerten. Auf diese Art und Weise können sogar Pulldown-Windows und Balkengrafikcn portierbar programmiert werden! Damit hat man endlich etwas erreicht, was uns die MS-DOSIcr immer voraus hatten -eine einheitliche Umgebung (englisch= environment)! Hier ein Beispiel: Ein Anwender hat die Hardware-Konfiguration Floppy A: und Floppy B: sowie eine RAM-Disk (eine Hard-Disk würde gegebenenfalls die Rolle der RAM-Disk übernehmen). Da wir oben Z3PLUS als Beispiel genommen haben, wollen wir dabei bleiben, denn für die CP/M-2.2-Variante NZCOM des Autoinstallers gilt fast das gleiche wie für die CP/M-Plus-Variante. Nach dem gewohnten Booten des CP/M Plus starten wir Z3PLUS einfach wie ein Utility: Z3PLUS < ENTER >Die User-Bereiche, die der Anwender zum Arbeiten benötigt, wurden bereits vorher festgelegt und ihre Namen aus einer Datei geladen. Diese stehen jetzt als benannte Vcrzeichnise zur Verfügung. Hier erkennt man, wozu User-Berciche sinnvoll verwendet werden können. Die Übersicht auf großen Disketten und speziell auf Festplatten nimmt erheblich zu. Im Gegensatz zu MS-DOS ist jedoch eine hierarchische Schachtelung nicht vorgesehen, da es fast keine CP/M-Programme gibt, die ein derartiges Verzeichnis unterstützen. User-Bereiche erhalten einen Namen Sind mehrere Laufwerke oder User-Bereiche vorhanden, ist es manchmal schwierig, eine Datei zu finden oder aus einem anderen Bereich aufzurufen. Einfacher geschieht dies mit einem sogenannten SUCHPFAD. Für CP/M Plus ist neu, daß anstelle des normalen Suchpfades die Verwendung von User-Angaben zulässig sind. Der CP/M-2.2-Anwender mußte auf solchen Luxus bisher verzichten. Der PATH-Befehl dient zum Errichten und Anzeigen des Suchpfades (siehe Textkasten). Beispiel für eine praktische Anwendung:
Ganz schön aufwendig, wenn man das ohne ZCPR realisieren will! Natürlich geht einiges über die raffinierte SUBMIT-Steuerung, was aber gerade unter CP/M 2.2 einen Schreibzugriff auf AO: auslöst, wenn das Standard-Submit verwendet wird. Automatisierung mit ARUNZ.COM beziehungsweise CMDRUN.COM Unter ZCPR genügt zur Ausführung ein Befehl, der nur aus einem Buchstaben oder einem Wort besteht, solange der Befehl eindeutig ist. Wie geschieht das? Die Kommandozeile wird analysiert und über den Suchpfad ein passender Befehl A.COM beziehungsweise ADRES.COM gesucht. Da dieser nicht aufzufinden ist, tritt der ALIAS-Prozessor ARUNZ in Aktion, den wir in CMDRUN.COM umbenannt haben. Dieser sucht die Datei ALIAS.CMD im Heimat-User und dort den passenden Befehl. Die zugehörige, zusammengesetzte Kommandozeile wird interpretiert und ausgeführt. Für die obigen Operationen sieht das etwa so aus (Ausschnitt aus ALIAS.CMD - einer Textdatei(!) des Anwenders): A=ADRESACOPY $“↑M↑J↑GBitte DBASE-Diskette einlegen und ENTER! “ ; B0:DBASE*.COM RAM: /d ; if exist B0:*.C?D;ACOPY B0:*.C?D RAM: ;else;ECHO Keine *.C?D Dateien gefunden; fi; IF exist B0:*.LBR;ACOPY B0:*.LBR RAM: /d;else;ECHO Keine Dateien .LBR gefunden!;fi;UNLIBM;UCRAM; Z3PLUS small; DBASE adres;Z3PLUS large;echo “Backup-Disk einlegen und Taste! “;SAK; UNLIBM M:;W lget *.lbr *.*;$D$U URAM M: ;uncrunch *.?Z?; PROTECT *.CMD;$D$U Das liest sich jetzt sehr kompliziert, im Grunde ist aber die Syntax nicht komplizierter als etwa in BASIC. Ein solches Mini-Menü kann jeder Anwender aus den reichhaltigen Beispielen innerhalb kürzester Zeit zusammenstellen und dann immer wieder verwenden. Die Fachleute unter Ihnen haben bestimmt nicht nur die Leistungsfähigkeit des Systems erkannt, sondern schon gemerkt, daß viele "ALlASse" in einer einzigen Datei Platz finden (bei den kleinen AMSTRAD-3-Zoll-Disks oft ein Problem!) und daß ein gegenseitiger Aufruf von ALIAS-Befehlen möglich ist. Alles, was der Anwender in unserem Beispiel eingeben muß, ist A oder ADRES und < ENTER > . Er sieht danach nur noch die Meldungen “Bitte DBASE-Diskette einlegen und ENTER!“sowie die Lademeldungen und danach die Aufforderung "Backup-Disk einlegen und Taste! " und "- Strike any key — ". Darüber hinaus kann jemand, der lieber menügesteuert arbeitet, mit dem Programm MENU.COM arbeiten, dessen Scripts leichter erlernbar sind. Hochinteressant sind die Utilities VLU.COM und ZFILER.COM. VLU dient zum Bearbeiten sogenannter LIBRARY-Dateien, also Sammeldateien, die eine Anzahl von anderen Dateien beinhalten. Man erkennt sie durch die Endung .LBR. Erzeugt werden sie unter CP/M mit NULU oder unter ZCPR eben auch mit VLU. NULU ermöglicht das Lesen gesqueezter Dateien, VLU das Lesen von gecrunchten Dateien innerhalb von Libraries, ohne diese auszupacken. Unkomprimierte COM-Dateien kann man aus Libraries heraus ohne Auspacken aufrufen. Ein Vorteil von VLU ist die Fähigkeit, bei geöffneter Library auf ein anderes Laufwerk zuzugreifen und dorthin die Dateien “mitzunehmen“, um sie dann auszupacken. Mit ESC schaltet man den Pfeil-Cursor zwischen dem Dateiverzeichnis der Diskette und dem Inhalt der Library. ZFILER ist wohl das ausgefeilteste Tool der Z-Systeme nach ARUNZ. Es erlaubt ebenfalls komplexe Scripts, die jedoch über eine Makro-Taste wie etwa ESC-A (bis Z) direkt ausgelöst werden können. Dabei wird ein Zeiger mit den Cursor-Tasten über das Inhaltsverzeichnis bewegt und der damit indizierte Dateiname in einem Puffer abgelegt. Diese Dateien werden dann beim Aufruf eines solchen Makros als Parameter angenommen. Tritt ein Fehler auf, den das DOS bemerkt, so werden entsprechende ZCPR-Register gesetzt. Diese können von anderen Programmen oder Programmteilen gelesen und übernommen oder auch modifiziert werden. ZCPR-Programme haben direkten Zugriff auf diese Register, auch ohne daß das DOS dies bemerkt. Hier hat man auch die Möglichkeit, seine eigenen, beispielsweise deutschen Fehlermeldungen auszugeben. Abhängig vom Erfolg oder Mißerfolg eines Befehls wird der IF-Status des Flow-Command-Prozessors TRUE oder FALSE, wenn dies abgefragt wurde. Hierdurch läßt sich ein Mißbrauch oder eine ungültige Behandlung unterbinden. ZCPR-Programme sind universell einsetzbar Ein ausgefeilter Spezial-SUBMIT namens ZEX rundet die vom Anwender programmierbaren Hilfs-Utilities ab und ergänzt sie um wichtige automatische Input-/Output-Möglichkeiten, die durch ein Software-Interface zum ZCPR ausgewertet werden können. Hier kommt die IF-ELSE-FI-Steuerung perfekt zum Einsatz. Ein weiteres Plus von ZCPR besteht darin, daß einmal an die Adresse HEX 100 geladene COM-Dateien mit GO noch einmal aufgerufen werden können, ohne daß sie dazu vom Laufwerk geladen werden müssen. Das kann ganz erheblich Zeit sparen. Außerdem kann sogar dazwischen die Diskette gewechselt werden, solange das auszuführende Programm ohne Overlays arbeitet. Die neuen Möglichkeiten des erweiterten SUBMIT-Prozessors ZEX sind ein zusätzlicher Pluspunkt. Sprungmarken und Rekursion sind die herausragendsten Merkmale dabei. ZCPR3 und höher hat vier sogenannte SHELL-Stacks. Das sind Puffer, in denen die Namen und Adressen von "auf Eis gelegten“ Dateien enthalten sind. Bei Bedarf können diese in der entsprechenden Reihenfolge aktiviert werden. Mit ZSHOW können Sie sich eine solche SHELL-Seite ansehen. Der Shell-Stack erleichtert die Arbeit Wie auf einem Kartenstapcl werden Programme hier abgelegt und wieder abgeholt. Man kann also aus Wordstar (zumindest aus der Version 4.0) den ZFILER aufrufen und aus diesem dann VLU. Ruft man statt dessen SHOW auf, kann man sich das Ergebnis im SHELL-Stack ansehen. Nach dem Verlassen des momentan aktiven Programms wird anstelle des Betriebssystems das darunterliegende Programm wieder aktiv und so weiter, bis wir wieder in Wordstar sind. Durch die übersichtliche Darstellung mit SHOW wird klar, wie so ein Shell-Stack arbeitet. Aber auch alle anderen wesentlichen Systemeigenschaften lassen sich gut erkennen. Viele Anwendungen für CP/M existieren auch in speziellen ZCPR-Versionen. die auch die Eigenschaften der Register und Pfade mit berücksichtigen. Insgesamt sind seit dem Januar 1988 etwa 30 MByte an Public-Domain- und Share-ware-Utilities produziert worden, die alle über die Adresse der SCUG bezogen werden können.
|