Anleitung zu den CP/M-Systemen CP/M 2.2XV3 (Genie III) und CP/M 2.2XV1 (Genie IIs und Speedmaster) Handbuch: Erste Auflage Juli 1986 Anleitung und Programme Copyright (c) 1986 by Klaus Kämpf Softwareentwicklung Alle Rechte vorbehalten. Mit Zahlung des Kaufpreises erhält der Endabnehmer ein Nutz- ungs- aber kein Eigentumsrecht. Dieses Nutzungsrecht berech- tigt den Endabnehmer das/die Programm(e) auf einem Rechner ablaufen zu lassen und entsprechend dem hier beschriebenen Verwendungszweck zu benutzen. Das Nutzungsrecht berechtigt den Endabnehmer, Kopien der Programme zum Zwecke der persön- lichen Programmsicherung (Backup) vorzunehmen. Weitere Kopien jedweder Art sowie das Kopieren der Anleitung, sind nicht in diesem Recht enthalten. Technische Änderungen vorbehalten. Alle in dieser Anleitung gemachten Angaben erfolgen ohne Ge- währ und ohne Anspruch auf Vollständigkeit und Richtigkeit. Diese Anleitung und das/die darin beschriebene(n) Programm(e) kann/können jederzeit und ohne Benachrichtigung geändert oder der technischen Entwicklung angepasst werden. Ferner ist jede Schadenersatz-Forderung an den oben angeführten Eigentümer ausgeschlossen, falls im Zusammenhang mit diesem Produkt Kosten oder sonstige Schäden entstehen. Warenzeichen CP/M ist ein eingetragenes Warenzeichen der Firma Digital Research WordStar ist ein eingetragenes Warenzeichen der Firma Micro- Pro Televideo 950 ist ein eingetragenes Warenzeichen der Firma Televideo Kapitel Thema Seite ------------------------------------------------------------- 0. Vorwort 0-1 1. Einleitung 1-1 2. Arbeiten mit CP/M 2.2X 2-1 2.1 Starten des Betriebsystems 2-1 2.2 Anfertigen einer Sicherungskopie 2-2 2.3 Service 2-3 2.4 Zusatzprodukte 2-4 2.5 Benötigte Hardware 2-5 2.5.1 Beim Genie III 2-5 2.5.1 Beim Genie IIs 2-5 3. Tastatur 3-1 3.1 Tastaturbedienung 3-1 3.1.1 Tastenklick 3-1 3.1.2 Tastenwiederholung 3-1 3.1.3 Type-ahead 3-1 3.2 Funktionstasten 3-2 3.3 Spezielle Tasten 3-2 3.3.0 Einleitung 3-2 3.3.1 SHIFT-Taste 3-3 3.3.2 CTRL-Taste 3-3 3.3.3 ENTER-Taste 3-3 3.3.4 BREAK-Taste 3-3 3.3.5 CLEAR-Taste 3-4 3.3.6 LOCK-Taste 3-5 3.3.6.1 Beim Genie III 3-5 3.3.6.2 Beim Genie IIs 3-5 3.3.7 Pfeiltasten 3-5 3.3.7.0 Einleitung 3-5 3.3.7.1 Hochpfeil-Taste 3-5 3.3.7.2 Tiefpfeil-Taste 3-5 3.3.7.3 Linkspfeil-Taste 3-6 3.3.7.4 Rechtspfeil-Taste 3-6 3.3.8 Leertaste 3-6 3.3.9 00-Taste 3-6 3.4 Besondere Tastaturfunktionen 3-7 3.4.1 CTRL-00 3-7 3.4.2 P2-Leertaste 3-7 4. Der Bildschirm 4-1 4.1 Grundlagen 4-1 4.2 Bildschirmformat 4-2 4.3 Zeichendarstellung 4-2 4.4 Videomodi 4-2 4.4.1 Line/Pagemodus 4-2 4.4.2 Edit/Insertmodus 4-3 4.4.3 Zeilenüberlauf 4-4 4.5 Die 25. Zeile 4-4 4.5.1 Verwendung als Statuszeile 4-4 4.5.2 Verwendung als Benutzerzeile 4-5 4.5.3 Abschalten der 25. Zeile 4-5 4.6 Zeichenattribute 4-5 4.7 Cursorattribute 4-5 4.8 Monitormodus 4-6 4.9 Rückmeldung von Werten 4-6 4.10 Steuersequenzen 4-7 4.10.1 Cursorbewegung 4-7 4.10.2 Löschbefehle 4-8 4.10.3 Editierbefehle 4-8 4.10.4 Wahl des Videomodus 4-9 4.10.5 Wahl des Attributes 4-9 4.10.6 Status- und Benutzerzeile 4-9 4.10.7 Monitormodus 4-10 4.10.8 Setzen der Systemparameter 4-10 4.10.9 Rückmeldung von Werten 4-10 4.10.10 Sonderfunktionen 4-10 5. Schnittstellen 5-1 5.1 Ein- und Ausgabekanäle 5-1 5.1.1 Erster Hauptkanal 5-1 5.1.2 Zweiter Hauptkanal 5-2 5.1.3 Dritter Hauptkanal 5-2 5.1.4 Vierter Hauptkanal 5-2 5.1.5 Zuordnung der Kanäle 5-3 5.1.5.1 Beim Genie III 5-3 5.1.5.2 Beim Genie IIs 5-4 5.2 Centronics-Schnittstelle 5-5 5.3 Serielle Schnittstelle 5-5 6. Massenspeicher 6-1 6.1 Einleitung 6-1 6.2 Diskettenlaufwerke 6-1 6.2.1 Diskettenfehler 6-1 6.2.2 Erweiterte Fehlermeldung Genie III 6-2 6.2.3 Erweiterte Fehlermeldung Genie IIs 6-4 7. Systemkonfigurierung 7-1 7.1 CONFIG 7-1 8. Systembefehle 8-1 8.0 Einleitung 8-1 8.1 DIR 8-1 8.2 ERA 8-1 8.3 REN 8-2 8.4 TYPE 8-2 8.5 USER 8-2 8.6 SAVE 8-3 9. CP/M 2.2 - Standardprogramme 9-1 9.0 Einleitung 9-1 9.1 PIP 9-1 9.2 STAT 9-4 9.3 DDT 9-5 9.4 SUBMIT 9-9 9.5 XSUB 9-11 10. CP/M 2.2X - Dienstprogramme 10-1 10.0 Einleitung 10-1 10.1 AUTO.COM 10-2 10.2 BOOT.COM 10-3 10.3 CONFIG.COM 10-4 10.4 DATUM.COM 10-5 10.5 FKEY.COM 10-6 10.6 FORMAT.COM 10-8 10.7 ID.COM 10-10 10.8 INFO.COM 10-12 10.9 IOBYTE.COM 10-13 10.10 PD.COM 10-14 10.11 SIO.COM 10-15 10.12 UHR.COM 10-19 10.13 V24.COM 10-20 10.14 ZEIT.COM 10-22 A. Systeminterne Informationen A-1 A.1 Speicheraufteilung unter CP/M 2.2 A-1 A.1.1 Speicheraufteilung beim Genie III A-1 A.1.2 Speicheraufteilung beim Genie IIs A-1 A.2 Aufteilung der Systemdiskette A-2 B. Videokommandos B-1 B.1 Controlsequenzen B-1 B.2 Escapesequenzen B-3 B.3 Beispiel B-9 C. Fremdformate C-1 C.1 Unterstützte Fremdformate C-1 C.2 Weitere Formate C-4 C.3 Systembedingte Grenzen der Formate C-4 C.4 Aufbau des PDRIVE.SYS C-6 D. Tastaturtabellen D-1 D.1 Nummern und Belegungen der Tasten D-1 D.2 Belegung des separaten Zehnerblocks D-3 D.3 Belegung der Sondertasten D-4 E. Zeichensätze E-1 E.1 Zeichensatz beim Genie III E-1 E.2 Zeichensatz beim Genie IIs E-3 E.3 ASCII-Tabelle E-5 F. Literaturhinweise F-1 F.1 Literatur zum CP/M 2.2 F-1 F.2 Literatur zum Genie III und Genie IIs F-1 ## Vorwort ## 0. Vorwort Mit dem Kauf des CP/M-Betriebsystems für Ihr Genie III oder Genie IIs, haben Sie Zugang zum größten Softwarepotential der Welt. Obwohl inzwischen der Trend mehr zu 16-Bit Systemen geht, ist CP/M als Standard nicht totzukriegen. Der herausragende Vor- teil von CP/M ist die riesige Anzahl von Veröffentlichungen und Literatur zu diesem Betriebssystem. Der Anhang F gibt nur einen kleinen Überblick über die bekanntesten Werke und er- hebt sicherlich keinen Anspruch auf Vollständigkeit. Damit Sie das große CP/M Softwareangebot nutzen können, wurde im CP/M 2.2X vor allem Wert auf die Unterstützung von Fremd- formaten gelegt. Damit ist im CP/M 2.2X das Problem der Inkompatibilität von Diskettenformaten praktisch gelöst. Weitere Formate können Sie über ein Zusatzprogramm selber kreieren oder vom Autor anpassen lassen, hier sind fast keine Grenzen gesetzt. Das CP/M 2.2X ist das Produkt einer langjährigen Arbeit mit dem Betriebssystem CP/M und wird kaum Wünsche offen lassen. Zusammen mit den getrennt erhältlichen Zusatzprogrammen hat man sogar Zugriff auf Dateien von GDOS und MS-DOS. Aachen, im Juli 1986 Klaus Kämpf ## Einleitung ## 1. Einleitung Die vorliegende Ausgabe des CP/M 2.2X Handbuchs geht vor- nehmlich auf die speziellen Eigenschaften des CP/M 2.2X für die Geräte Genie III und Genie IIs ein. Die in den Kapiteln 8 und 9 gegebene Beschreibung der CP/M 2.2 Befehle und Stan- dardprogramme ist nur als grober Überblick gedacht. Zum Thema CP/M 2.2 gibt es genug Literatur, sodaß sowohl der Computeranfänger als auch der Fachmann schnell den Einstieg in die CP/M-Welt findet. Lesen Sie sich das Handbuch aufmerksam durch !! Nur so können Sie die vielfältigen Möglichkeiten, die Ihnen CP/M 2.2X an die Hand gibt, richtig nutzen. Das CP/M 2.2X ist für die beiden Geräte Genie III und Genie IIs im Grunde identisch. Nur dort, wo die technischen Ge- gebenheiten Grenzen setzen, mußten Abstriche gemacht werden. Die CP/M Dienstprogramme und Datenfiles sind zwischen beiden Geräten austauschbar, nicht jedoch zwischen anderen CP/M- Systemen. Im CP/M 2.2X ist sämtliche Systemsoftware in Dateien vorhan- den und nicht, wie bei anderen Systemen, in irgenwelchen Systemspuren 'versteckt'. Dies hat beim CP/M 2.2X den großen Vorteil der leichten Austauschbarkeit der Systemsoftware. Wer jedoch bisher mit einem Standard-CP/M System gearbeitet hat, wird evtl. Anfangs Schwierigkeiten haben. Daher soll im folgenden kurz auf die Systeminternen Einzelheiten des CP/M 2.2X eingegangen werden, sofern Sie für den Benutzer relevant sind. Die Rechner der Genie-Reihe haben kein eingebautes Betriebs- system, sondern laden dieses nach jedem Einschalten von der Diskette. Dieser Ladevorgang wird im Allgemeinen mit dem englischen Begriff 'Bootstrap' bezeichnet. Beim Bootstrap oder kurz 'Booten' unterscheidet man den 'Cold Boot' (Kalt- start) und den 'Warm Boot' (Warmstart). Der Kaltstart ist das erstmalige Laden des Betriebsystems nach dem Einschalten. Hier wird das gesamte Gerät auf das Betriebssystem einge- stellt und alle Schnittstellen konfiguriert. Der Kaltstart ist also nur einmal notwendig. Der Warmstart dagegen ist im CP/M nach jedem Diskettenwechsel und nach dem Ende eines Programms notwendig. Im CP/M 2.2 können Programme, Teile des Betriebssystems verändern oder sogar löschen. Beim Warmstart wird daher immer ein Teil des Systems neu von der Diskette geladen. Auch nach einem Disket- tenwechsel ist dieses Neuladen notwendig, damit sich das CP/M intern auf die neue Diskette einstellen kann. Zum Warmstart wird also immer eine Systemdiskette benötigt, von der der entsprechende Betriebssystemteil geladen werden kann. Die Besonderheit beim CP/M 2.2X ist nun, daß das Betriebs- system in Dateien auf der Diskette gespeichert ist. Damit jedoch der Kalt- und Warmstart zügig vonstatten geht, werden manche dieser Dateien auf ganz bestimmte Stellen der Diskette kopiert. Zu diesem Zweck sind auf jeder Systemdiskette zwei doppelseitige bzw. vier einseitige Spuren zur Aufnahme dieser Dateien reserviert. Beim Kaltstart wird im CP/M 2.2X ein Mini-Betriebssystem (LOADER genannt) geladen, was in der Lage ist, verschiedene Diskettenformate zu behandeln. Dadurch ist es möglich, Systemdisketten in verschiedenen Formaten zu kre- ieren, von einseitig, einfache Dichte bis doppelseitig bei doppelter Dichte. Zur Vereinfachung sind jedoch die Systemspuren bei allen Formaten identisch, sie werden sogar bei der Erzeugung einer Systemdiskette neu formatiert. Das Dienstprogramm ID (siehe Kapitel 10.7) hat die Aufgabe, die Systemspuren zu formatieren und darauf einen Urlader (Bootsektor) und den angesprochenen LOADER zu kopieren. Zu- sätzlich konfiguriert ID den LOADER auf das Format der Sys- temdiskette, denn die Diskettenaufteilung oberhalb der Sys- temspuren ist abhängig vom gewählten Format. Zu dieser Kon- figurierung benötigt ID auch das Formate-Datenfile PDRIVE.SYS. Der Bootsektor ist auf der gelieferten Diskette im File SYSBOOT.SYS, der Loader im File LOADER.SYS gespeichert. Beide Dateien werden nur vom Programm ID benötigt, also nur bei der Erzeugung einer neuen Systemdiskette. Nachdem der Bootsektor und der Loader auf einer Diskette aufgebracht sind, wird diese auch als 'bootfähige Diskette' bezeichnet. Bis aus einer bootfähigen Diskette jedoch eine vollständige System- diskette wird, sind noch weitere Schritte notwendig. Beim Kaltstart des CP/M 2.2X wird der Bootsektor automatisch in den Speicher ab Adresse 4200H geladen und die weitere Ausführung dorthin übergeben. Der Bootsektor lädt nun den Loader an eine spezifizierte Adresse (siehe Anhang A) und gibt die Programmausführung an diesen weiter. Der Loader kennt das Format der Systemdiskette und ist damit in der Lage, Dateien von dieser Diskette zu Laden. D.h. weitere Daten kommen nicht mehr von den Systemspuren, sondern von Dateien auf der Diskette. Die erste Datei, die der Loader erwartet, ist die Konfigura- tionsdatei CONFIG.SYS. Hier sind alle systeminternen Para- meter gespeichert, wodurch der Loader die gesamte Systemkon- figuration übernehmen kann. Da der Loader nur während des Kaltstarts benötigt wird und der durch ihr belegte Speicher- platz später wieder frei ist, konnte die Systemkonfigurierung sehr komfortabel gestaltet werden. Das Kapitel 7 zeigt, wel- che Parameter beeinflusst werden können. Auch benutzen viele der Dienstprogramme CONFIG.SYS zur Speicherung ihrer Daten. CONFIG.SYS muß daher auf jeder Sys- temdiskette vorhanden sein. Ist dies nicht der Fall, so meldet sich der Loader mit 'Kein CONFIG.SYS' und geht in eine Endlosschleife. Nachdem CONFIG.SYS geladen wurde, kommt der Hauptteil des CP/M 2.2X Betriebsystems, das BIOS an die Reihe. Das BIOS bildet die Anpassung der CP/M 2.2 an das jeweilige Gerät und macht hier das Standard-CP/M 2.2 zum CP/M 2.2X mit all seinen Möglichkeiten. Zur leichten Austauschbarkeit des BIOS, ist es ebenfalls als Datei (BIOS22X.SYS) auf der Systemdiskette. BIOS22X.SYS ist das zweite File, daß der Loader von der Diskette lesen muß. Fehlt es, so meldet er 'Kein BIOS22X.SYS'. Die oben genannten Files (SYSBOOT.SYS, LOADER.SYS und BIOS22X.SYS) sind systemspezifisch und im Gegensatz zu den Dienstprogrammen und CONFIG.SYS, nicht zwischen den Geräten Genie III und Genie IIs austauschbar. Der Loader lädt das BIOS an das obere Ende des Speichers und konfiguriert es entsprechend den aus CONFIG.SYS entnommenen Parametern. Nach Ausgabe der INFO-Zeile (siehe Kapitel 10.8) wird das BIOS gestartet. Das CP/M 2.2X-BIOS hat, anders als normale CP/M-System, keine eigene Kaltstart-Funktion (CBOOT) mehr. Diese ist komplett in den Loader ausgelagert. Nach Beendigung des Loaders ist auch der Kaltstart beendet und das weitere Systemverhalten ist wie bei einem Warmstart. Wie bereits oben angesprochen, wird beim Warmstart ein Teil des CP/M (genauer, die beiden Teile CCP und BDOS) neu von der Diskette geladen. Da dieses Nachladen ziemlich häufig ge- schieht, ist dieser Teil ebenfalls auf den Systemspuren ge- speichert. Das Programm ID, daß ja bekanntlich die System- spuren beschreibt, benötigt also auch noch diesen Betriebs- system-Teil, auf der Diskette als Datei 'CPM22X.SYS' vor- handen. Zusammenfassend ist also folgendes festzuhalten: Zur Erzeugung einer Systemdiskette müssen auf diese (natür- lich formatierte) Diskette Systemspuren und bestimmte Datein aufgebracht werden. Das Anlegen der Systemspuren wird vom Programm ID gemacht, daß folgende Files benötigt: SYSBOOT.SYS, den Urlader oder Bootsektor LOADER.SYS, das Mini-Betriebssystem CPM22X.SYS, den nachladbaren Betriebssystem-Teil und PDRIVE.SYS, das Formate-Datenfile. Nachdem ID seine Arbeit vollendet hat, ist die Diskette zwar bootfähig, aber noch keine Systemdiskette. Probieren Sie ruhig mal aus, was passiert wenn Sie eine nur mit ID behan- delte Diskette booten. Die vier aufgeführten Dateien werden also im Allgemeinen nur bei der Ausführung des ID-Programms benötigt ! Damit aus der bootfähigen Diskette eine Systemdiskette wird, müssen noch die beiden Dateien CONFIG.SYS und BIOS22X.SYS kopiert werden. Beim Kopieren (z.B. mit dem Standardprogramm PIP) muß darauf geachtet werden, daß das richtige, bei ID gewählte Format eingestellt ist (Formateinstellung, siehe Kapitel 10.10). Ansonsten sucht nämlich der Loader die Dateien in einem anderen Format, als sie auf der Diskette vorhanden sind. Auch sollten diese beiden Files immer als erste auf eine neue Systemdiskette kopiert werden. Dadurch erreicht man, daß die Dateien in der Nähe der Systemspuren angelegt werden, was den Bootvorgang erheblich beschleunigt. Eine minimale Systemdiskette ist nun eine formatierte, mit ID behandelte Diskette, auf die die Dateien CONFIG.SYS und BIOS22X.SYS kopiert wurden. Dies sollte als Einstieg in die speziellen Eigenschaften des CP/M 2.2X ausreichen, alle weiteren Informationen zum CP/M 2.2 sollten Sie aus einem der im Anhang F genannten Bücher entnehmen können. ## Arbeiten mit CP/M 2.2X ## 2. Arbeiten mit CP/M 2.2X 2.1 Starten des Betriebsystems Damit das CP/M 2.2X korrekt geladen wird, sollten Sie beim Booten des Systems in der angegebenen Reihenfolge vorgehen: 1. Schalten Sie Ihr Genie III bzw. Genie IIs ein. Falls Sie externe Laufwerke oder sonstige Peripheriegeräte an- geschlossen haben, schalten Sie diese vorher ein. 2. Legen Sie die CP/M-Systemdiskette in das erste 5 1/4 Zoll Laufwerke und schließen Sie vorsichtig die Laufwerks- klappe. Nach 1-2 Sekunden wird der Bildschirm gelöscht und das Betriebssystem geladen. Danach erscheint auf dem Bildschirm die Systemmeldung sowie Versionsnummer und -datum. Sollte diese Meldung nicht erscheinen, so kann dies ver- schiedene Gründe haben: - Die LSP-Taste ist gedrückt (Genie IIs). Das CP/M 2.2X kann nur bei hoher Taktfrequenz gebootet werden - Die Diskette ist falsch eingelegt worden. Wie Sie eine Systemdiskette einlegen, ist im GDOS-Handbuch genau beschrieben. - Die eingelegte Diskette ist keine Systemdiskette. In diesem Fall verdunkelt sich der Bildschirm nicht, son- dern es erscheint eine systemspezifische Meldung Vergewissern Sie sich, ob Sie eine CP/M 2.2X Systemdis- kette eingelegt haben. Dieselbe Meldung erscheint auch, wenn die Diskette nicht einwandfrei im Laufwerk liegt. - Die Diskette ist defekt. Das Genie III bzw. Genie IIs hat den Boot-Sektor nicht einwandfrei indentifiziert und bricht den Bootvorgang ab. Schalten Sie das Gerät für ein paar Sekunden aus und probieren Sie den Boot- vorgang mit einer anderen Systemdiskette. Sollte auch nach Befolgung aller obigen Regeln die Diskette nicht booten, wenden Sie sich bitte an den Autor oder Ihren Händler. Mit dem Erscheinen des Systemprompts 'A>' ist der Bootvorgang abgeschlossen und das Betriebssystem zur Befehlsannahme be- reit. 2.2 Anfertigen einer Sicherungskopie Bevor Sie mit dem CP/M-Betriebssysstem arbeiten, sollten Sie sich mehrere Kopien der Originaldiskette machen. Die Origi- naldiskette verwahren Sie bitte an einem sicheren Ort auf, da Sie diese Diskette zusammen mit der Seriennummer als recht- mäßiger Benutzer des CP/M ausweist. Zur Kopierung der Originaldiskette gehen Sie bitte in folgen- der Reihenfolge vor: 1. Legen Sie eine neue Diskette in das zweite Laufwerk. 2. Geben Sie den Befehl 'FORMAT B' ein. Die Diskette im zweiten Laufwerk wird dadurch formatiert. 3. Nach Wiedererscheinen des Systempropts 'A>' geben Sie den Befehl 'ID B:S80 DSDD' ein. Dadurch wird das Betriebs- system auf die zweite Diskette kopiert. 4. Als letzter Schritt folgt der Befehl 'PIP B:=*.*'. Darauf- hin werden alle Programme und Daten der Originaldiskette auf die zweite Diskette kopiert. Nach Abschluß der Kopie entnehmen Sie bitte die Originaldis- kette dem ersten Laufwerk und legen Sie stattdessen die Kopie in dieses Laufwerk. Drücken Sie nun die beiden mit 'RESET' (Genie III) bzw. 'RS' (Genie IIs) bezeichneten Tasten der Tastatur und lassen sie wieder los. Dadurch wird nun die Kopie gebootet, was gleichzeitig ein Test für einen erfolg- reichen Kopiervorgang ist. Zur Erzeugung weiterer Systemdisketten, wiederholen Sie bitte mit der neuen Kopie die Schritte 1-3, geben aber beim Schritt 4 'SUBMIT SYSCOPY' ein. Dadurch werden die Files in einer ganz bestimmten Reihenfolge kopiert, was den Bootvorgang und das spätere Arbeiten beschleunigt. ZUR BEACHTUNG: Die Originaldiskette und alle Kopien enthalten Ihre Serien- nummer. Neben dem Betriebssystem unterliegen auch alle auf der Originaldiskette befindlichen Programme und Daten dem Urheberrechtsschutz. Jegliche Kopien sind nur für Ihren per- sönlichen Gebrauch bestimmt. Eine Weitergabe der aufgezeich- neten Daten und Programme in jedweder Form ist verboten und wird als Verstoß gegen das Urhebergesetz strafrechtlich ver- folgt. 2.3 Service Dieses Handbuch kann sicherlich nicht alle auftauchenden Fragen oder Probleme restlos klären. Da das CP/M 2.2X von einem unabhängigen Autor erstellt wurde, kannen Ihnen Ihr Händler oder die Fa. Phoenix nur begrenzte Auskunft geben. Falls Sie also spezielle Fragen zum CP/M 2.2X haben, wenden Sie sich bitte schriftlich an: Klaus Kämpf Softwareentwicklung Jakobstr. 236 5100 Aachen Alle Anfragen sollten folgende Daten beinhalten: - Seriennummer - Versionsnummer und - Versionsdatum Ihres Betriebsystems. - Angeschlossene Laufwerke und Peripheriegeräte Versionsnummer und Versionsdatum sind auf der Original- diskette als INFO-Zeile gespeichert. Die Versionsnummer alleine erhalten Sie auch durch Eingabe von M . Das System meldet dann eine 2 (für Genie IIs) oder 3 (für Genie III) und, durch Komma getrennt, die Versions- nummer zurück. 2.4 Zusatzprodukte Zum CP/M 2.2X sind über die oben angegeben Adresse auch noch die folgenden Zusatzprogramme erhältlich: PDRIVE.COM DM 79.- Programm zur Anpassung eines Fremdformates. Durch Eingabe der STAT DSK:-Parameter und des physikalischen Aufzeichnungsformates können Sie sich selbst weitere Formate erstellen. IG.COM GC.COM CG.COM DM 99.- Programmpaket zum Übertragen von Dateien zwischen den Betriebssystemen CP/M und GDOS. GDOS-Disketten können direkt unter CP/M bearbeitet werden. IM.COM MC.COM CM.COM DM 99.- Programmpaket zum Übertragen von Dateien zwischen den Betriebssystemen CP/M und MSDOS (IBM PC) oder TOS (Atari ST). Die verschiedenen Diskettenformate werden auto- matisch erkannt, einfach Fremddiskette ein- legen und los geht's ... 2.5 Benötigte Hardware 2.5.1 Beim Genie III Das CP/M 2.2X ist auf den normalen Genie III (alte oder neue Tastatur und 2 80-Spur Laufwerke) sofort lauffähig. Die Genie III Pluskarte wird nicht unterstützt. 2.5.2 Beim Genie IIs Zum Arbeiten mit CP/M 2.2X muß das Genie IIs mit folgenden Karten bestückt sein: CPU-Karte, entweder 6 oder 8 Mhz VIDEO-Karte I/O-Karte, Lautsprecher optional GRAFIK-Karte, wird für das 80x24 Bildformat benötigt FLOPPY-Karte, mindestens zwei Laufwerke müssen vorhanden sein SIO/PIO-Karte, optional, SIO wird vom CP/M 2.2X unterstützt 192k-Karte, wird z.Zt. noch nicht unterstützt HOST II/IIIs-Karte, wird nicht unterstützt ## Die Tastatur ## 3. Die Tastatur 3.1 Tastaturbedienung 3.1.1 Tastenklick Diese Funktion benutzt den in die Tastatur integrierten (Genie III) bzw. den an die I/O-Karte anschließbaren Lautsprecher (Genie IIs) zur Erzeugung eines kurzen Klicktons bei jeder betätigten Taste. Insbesondere bei Ausnutzung der Type-ahead Möglichkeit (siehe unten), ist diese Tastenquit- tierung sehr nützlich, da man direkt hören kann, ob die Taste erkannt wurde oder nicht. Die automatische Tastenwiederholung gibt ebenfalls für jedes erzeugte Zeichen einen Klickton aus. Bei der Betätigung einer Funktionstaste ertönt nur ein Klickton, auch wenn die Taste mehr als ein Zeichen erzeugt. 3.1.2 Tastenwiederholung Jede Taste wird, nachdem sie eine gewisse Zeit gedrückt gehalten bleibt, automatisch wiederholt. Dadurch kann ein Zeichen sehr leicht mehrfach erzeugt werden. Da die Tastenabfrage und -wiederholung über Software gesteu- ert wird, kann eine gleichbleibende Wiederholungsfrequenz bei verschiedenen Programmen jedoch nicht immer eingehalten wer- den. Dies liegt daran, daß die Wiederholung nicht nach einem bestimmten Zeitrhythmus abläuft, sondern von der Anzahl der Tastaturabfragen bestimmt wird. Bei aktivierten Interrupts ist die Wiederholungsfrequenz jedoch gleichbleibend, da bei jedem Interrupt die Tastatur abgefragt wird und die Inter- ruptfrequenz (40 Interrupts pro Sekunde) ziemlich konstant ist. Bei Zufriff auf die Diskettenlaufwerke werden die Interrupts abgeschaltet. Bei längeren Diskettenzugriffen ist daher die Tastaturabfrage und die Uhranzeige für diese Zeit abgeschal- tet. Um für jede Anwendung eine optimale Wiederholungsfrequenz zu erreichen, ist die Zeit bis zur ersten Wiederholung und die Wiederholungsfrequenz über das CONFIG-Programm frei wählbar (siehe Kapitel 7.1). 3.1.3 Type-ahead Eine Besonderheit des CP/M 2.2X stellt die Type-ahead Mög- lichkeit dar. Diese, etwa mit 'Voraustippen' übersetzbare Bezeichnung, ermöglicht es, Tastatureingaben vorzunehmen, bevor sie vom Programm abgearbeitet werden. Sie können da- durch also Zeichen im Voraus eingeben, die automatisch ge- speichert werden und dem Programm erst zur Verfügung gestellt werden, wenn es diese verarbeiten kann. Der Type-ahead kann aber nur bei aktivierten Interrupts voll genutzt werden, denn nur in diesem Fall wird die Tastatur häufig genug abgefragt. Für den Type-ahead steht ein 64 Zeichen fassender Tastatur- puffer zur Verfügung. Zur Kontrolle, ob eine Taste erkannt wurde, dient in den meisten Fällen der Tastenklick. Bei Überfüllung des Tastaturpuffers wird kein Zeichen mehr gespeichert und bei jedem Tastendruck ein längerer Piepston über den Lautsprecher erzeugt. Falls die eingegebenen Zeichen nicht durch das Anwenderprogramm abgearbeitet werden, muß der gesamte Tastaturpuffer durch gleichzeitiges Drücken der Tas- ten CTRL (Genie III) bzw. P2 (Genie IIs) und CLEAR gelöscht werden (siehe Kapitel 3.3.5). 3.2 Funktionstasten Die auf der Tastatur ausgezeichneten Tasten F1 bis F8 sind im Genie III CP/M 2.2XV3 als Funktionstaste benutzt. Für die, in Verbindung mit der Shift-Taste, 16 möglichen Funktionstasten stehen 256 Bytes als Zeichenspeichern zur Verfügung. Damit kann jede Funktionstaste im Mittel bis zu 16 Zeichen erzeu- gen. Die maximale Länge einer durch eine Funktionstaste er- zeugten Zeichenkette, ist durch den Tastaturpuffer auf 64 Zeichen begrenzt. Für das Genie IIs gilt das gleiche, nur daß die Funktionstasten durch P2-0 (gleichzeitiges Drücken von 'P2' und '0') bis P2-7 dargestellt werden. Die Festlegung der erzeugten Zeichenkette, geschieht mit dem Programm FKEY (Kapitel 10.5). Programmgesteuert oder mit dem CONFIG-Programm kann die Er- zeugung der Zeichenkette unterbunden werden. In diesem Fall wird dann beim Drücken einer Funktionstaste die Funktionstas- tennummer +127 ausgegeben. Dadurch kann die Betätigung einer bestimmten Funktionstaste abgefragt werden, ohne die durch sie erzeugt Zeichenkette zu kennen. 3.3 Spezielle Tasten 3.3.0 Einleitung Auf der Tastatur des Genie III bzw. IIs befinden sich mehrere Tasten, die im CP/M 2.2X spezielle Funktionen haben. Im Hinblick auf gewisse Standardprogramme (z.B. WordStar, Turbo- Pascal) wurden diese Funktionen so gewählt, daß die Tastatur als WordStar-kompatibel zu bezeichnen ist. Da auch viele andere Programme diesen de facto Standard benutzen, hat sich die gewählte Tastenbelegung als sinnvoll erwiesen. 3.3.1 Die SHIFT-Taste Die SHIFT-Taste erzeugt selbst keinen eigenen Wert, sie er- gibt, wie bei einer normalen Schreibmaschinentastatur, erst zusammen mit einer weiteren Taste eine Funktion. Die Alpha- tasten (@,A-Z,Ä,\,Ü,ß) erzeugen normalerweise Kleinbuchsta- ben, wenn sie zusammen mit der Shift-Taste betätigt werden jedoch Großbuchstaben. Auch bei allen doppelt beschrifteten Tasten wird das obere Zeichen erst zusammen mit der Shift-Taste erreicht. 3.3.2 Die CTRL-Taste Die CTRL-Taste (Control-Taste) erzeugt, genauso wie die Shift-Taste, keinen eigenen Wert. Wie der Name schon zeigt, hat diese Taste ebenfalls eine Kontrollfunktion. Zusammen mit den Alphatasten (A- Z,Ä,\,Ü,ß,_) werden die Werte 01H bis 1FH (1 bis 31) erzeugt, die in den meisten Programmen besondere Funktionen haben. Im Genie IIs gibt es keine eigene CTRL-Taste, für diese Funktion wurde die Taste 'P1' gewählt. Innerhalb des Handbuchs wird die Bezeichnung 'CTRL' beibehalten. 3.3.3 Die ENTER-Taste Die ENTER-, RETURN- oder NEWLINE-Taste hat die normale Funktion, das Abschliessen der Eingabezeile. Entsprechend dem CP/M-Standard wird der ASCII-Code 'Carriage Return (0DH, 13) erzeugt. 3.3.4 Die BREAK-Taste Ein gewisser Nachteile im CP/M 2.2 ist, daß ein Disketten- wechsel nicht automatisch erkannt wird, sondern dem System gesondert mitgeteilt werden muß. Vom Entwickler des CP/M wurde dazu die Tastenkombination CTRL-C (Wert: 03H, 3 dez) gewählt, die auch als 'Warmstart' bezeichnet wird. Da viele Programme diesen Wert ebenfalls benutzen, wurde die Break-Taste damit belegt. Auch alle Kombinationen der Kon- trolltasten CTRL und SHIFT zusammen mit BREAK ergeben den Wert 03H. Die Break-Taste wird intern noch für einen zweiten Zweck benutzt: Beim Zugriff auf ein Peripheriegerät, testet das Betriebssys- tem zuerst den Status dieses Gerätes, ob es also zur Übernah- me eines Zeichens bereit ist bzw. ein Zeichen senden kann. Fällt diese Abfrage negativ aus, wartet das Betriebssystem solange bis das Gerät eine 'Klarmeldung' gibt. Wird nun ein nicht vorhandenes Gerät angesprochen, 'hängt' sich das Betriebssystem normalerweise auf. Um diesen System- absturz zu verhindern, kann durch Drücken der Breaktaste eine Klarmeldung erzwungen werden. Die Daten werden zwar in diesem Fall ins Leere geschickt oder es kommen unsinnige Werte, danach kann das System jedoch wieder normal weiterarbeiten. Wichtig dabei ist, daß die Breaktaste in einem solchen Fall gedrückt bleiben muß, bis die Ein- oder Ausgabe beendet ist. 3.3.5 Die CLEAR-Taste Die CLEAR-Taste wird im CP/M 2.2X als Escape-Taste (ESC, 1BH, 27) benutzt, hat aber noch eine weitere Funktion: In normalen CP/M-Systemen führt ein Diskettenfehler meist zum Systemabsturz und es gibt keinen Hinweis auf die genaue Fehlerursache. Im CP/M 2.2X wird nach einem Diskettenfehler in der Status- zeile die exakte Fehlerbeschreibung und der exakte Fehlerort angezeigt (siehe Kapitel 6.2.2 bzw. 6.2.3). Über die CLEAR-Taste kann nun die zuletzt ausgeführte Disket- tenoperation beliebig oft wiederholt werden, ohne daß der Programmablauf gestört wird. SHIFT-CLEAR bricht die fehler- hafte Diskettenoperation ab und meldet den Fehler an das Betriebssystem, daß dann den Programmablauf abbricht. Bei beschädigten Disketten kann es vorkommen, daß ein Fehler auch nach mehreren Wiederholungen des Diskettenzugriffs nicht zu beseitigen ist. Dies ist besonders bei wichtigen Daten ärgerlich, da in den meisten Fällen das gesamte File nicht mehr lesbar ist. Falls also z.B. nur ein Sektor beschädigt, der Rest des Files jedoch einwandfrei lesbar ist, kann dieser Rest noch gerettet werden. Dazu dient die Funktion CTRL-CLEAR (Genie IIs: P1-CLEAR !), die die fehlerhafte Diskettenoperation zwar abbricht, den Fehler jedoch nicht an das Betriebssystem meldet. Damit hat man nun die Möglichkeit auch bei physikalisch beschädigten Disketten einen Großteil der aufgezeichneten Daten zu retten. Die fehlerhaften Sektoren werden jedoch durch diese Funktion nicht repariert, sondern dieser Teil der Daten ist verloren. ACHTUNG: Beim Drücken vom CTRL-CLEAR wird mit den fehlerhaft gelesenen Daten weitergearbeitet. Benutzen Sie diese Funktion also nur bei defekten Disketten, von denen Sie noch Daten retten wollen. 3.3.6 Die LOCK Taste 3.3.6.1 Beim Genie III Die Alpha-Lock Taste hat für die sogenannten Alphazeichen (A- Z,Ä,\,Ü,ß) dieselbe Funktion wie die SHIFT-Taste und wird für diese Zeichen wie eine gedrückte Shifttaste behandelt. Die Alpha-Lock Taste erzeugt selber keinen Wert. 3.3.6.2 Beim Genie IIs Da die Genie IIs Tastatur keine eigene LOCK-Taste hat, wird dort die Tastenkombination P1-SHIFT benutzt. Beim Start des Systems ist die Lock-Funktion ausgeschaltet, jedes gleich- zeitige Drücken von 'P1' und 'SHIFT' schaltet diese Funktion ein und wieder aus. Es gibt leider keine einfache Möglich- keit, den aktuellen Status der Lock-Funktion darzustellen. Der Benutzer muß sich daher immer merken, wie oft er die Funktion umgeschaltet hat. 3.3.7 Die Pfeiltasten 3.3.7.0 Einleitung Alle vier Pfeiltasten wurden im Hinblick auf die Funktionen des Textverarbeitungsprogramms WordStar belegt. Jede Taste hat zwei verschiedene Funktionen. Alle folgenden Erklärungen der Pfeiltasten beziehen sich auf das Programm WordStar. Eine Zusammenfassung aller durch die Pfeiltasten erzeugten Werte und ihre entsprechenden Kombina- tionen der CTRL-Taste mit einer Alpha-Taste ist im Anhang D aufgeführt. 3.3.7.1 Die Hochpfeil-Taste Diese Taste allein erzeugt den Code 05H (5 dez, CTRL-E) und plaziert den Cursor eine Zeile höher. Shift-Hochpfeil erzeugt den Code 12H (18 dez, CTRL-R) und blättert eine Seite zurück. 3.3.7.2 Die Tiefpfeil-Taste Der Tiefpfeil setzt den Cursor eine Zeile tiefer und erzeugt den Code 18H (24 dez, CTRL-X). SHIFT-Tiefpfeil (03H, 3 dez, CTRL-C) blättert eine Seite vor. Damit haben die beiden Tasten Hochpfeil und Tiefpfeil genau entsprechende Funktionen. 3.3.7.3 Die Linkspfeil-Taste Die Linkspfeil-Taste ist die Einzige der Pfeiltasten, die auch in anderen Programmen Verwendung findet. Diese Taste - auch BACKSPACE genannt - erzeugt den Code 08H (8 dez, CTRL-H) der in allen Programmen das zuletzt eingegebene Zei- chen löscht bzw. den Cursor eine Position nach links beför- dert. SHIFT-Linkspfeil setzt im WordStar den Cursor an den Anfang des vorherigen Wortes (01H, 1 dez, CTRL-A). 3.3.7.4 Die Rechtspfeil-Taste Der Rechtspfeil bewegt den Cursor ein Zeichen nach rechts, ohne das dort befindliche Zeichen zu löschen (04H, 4 dez, CTRL-D). SHIFT-Rechtspfeil setzt den Cursor an den Anfang des nächsten Wortes (06H, 6 dez, CTRL-F). Damit haben die beiden Tasten Linkspfeil und Rechtspfeil ebenfalls entsprechende Funktionen. 3.3.8 Die Leertaste Obwohl die Leertaste (auch SPACE oder SPACEBAR genannt) eigentlich zur normalen Schreibmaschinentastatur gehört, wurden ihr zwei Sonderfunktionen zugewiesen. Die Leertaste allein ergibt, wie ihr Name schon sagt, das Leerzeichen oder Space (20H, 32 dez). Über SHIFT-Leertaste wird der TAB-Code (09H, 9 dez, CTRL-I) erzeugt, der den Cursor zur nächsten Tabulatorposition bringt. Im normalen CP/M-Gebrauch bringt dieser Code den Cursor zur nächsten Spaltenposition, die ein Vielfaches von 8 darstellt. In den meisten Textverarbeitungsprogrammen sind diese Tabulatorposi- tionen jedoch frei wählbar. Beim Genie IIs hat die Leertaste noch eine weiter Sonder- funktion, die Umschaltung des Zeichensatzes (siehe unten). 3.3.9 Die 00-Taste (nur Genie III) Die Taste '00' auf dem separaten Zehnerblock der Tastatur erzeugt die Zeichenfolge '00'. 3.4 Besondere Tastaturfunktionen 3.4.1 CTRL-00 (nur Genie III) Mithilfe der Tastenkombination CTRL-00 kann man beim Genie III den aktuellen Bildschirminhalt über den LST-Kanal aus- drucken. Dieser Ausgabekanal gibt normalerweise die Daten auf dem am Centronics-Parallelport angeschlossenen Drucker aus. Über den STAT-Befehl (siehe Kapitel 5.1.5 und 9.2) kann diese Kanal- zuordnung jedoch geändert werden. Die Ausgabe des Bildschirms erfolgt zeilenweise, wobei nach jeder Zeile (80 Zeichen) die beiden Codes CR (0DH, 13 dez) und LF (0AH, 10 dez) eingefügt werden. Diese Codes bewirken, daß der angeschlossene Drucker den Ausdruck auf der nächsten Zeile fortsetzt. Inverse Zeichen werden wie normale Zeichen behandelt, nicht druckbare Zeichen (01H bis 1FH, 1 bis 31 dez) werden als Punkt ('.') ausgegeben. Bei normaler Papiergröße (72 Zeilen pro Seite) passen genau drei Bildschirmseiten auf eine Druckerseite. 3.4.2 P2-Leertaste (nur Genie IIs) Die Tastenkombination P2-Leertaste schaltet beim Genie IIs zwischen den beiden eingebauten Zeichensätzen DEUTSCH und US- ASCII um. Die Umschaltung betrifft die folgenden Zeichen: Deutsch US-Ascii @ @ Ä Ä \ \ Ü Ü ä ä ö ö ü ü ß ß Da die Zeichenausgabe über die Graphikkarte erfolgt, ist die Umschaltung erst bei der nächsten Ausgabe eines dieser Zei- chen wirksam. Zusammen mit der entsprechenden Escape-Sequenz zur Zeichensatzumschaltung (siehe Kapitel 4 und Anhang B), können dadurch aber auch beide Zeichensätze zusammen darge- stellt werden. ## Der Bildschirm ## 4. Der Bildschirm 4.1 Grundlagen Wie bereits in der Einleitung angesprochen, orientiert sich das CP/M bei der Zeichenein- und ausgabe an Terminals. Bei älteren Rechnern ist ein solches Terminal eine eigenständige Einheit, die mit dem eigentlichen Rechner über eine serielle Schnittstelle verbunden ist. Der Datentransport zum Terminal geschieht dabei seriell, Zeichen für Zeichen. Jedes Zeichen hat einen bestimmten Wert, der durch die ASCII-Tabelle fest- gelegt ist (Anhang E.3). Da insgesamt nur 128 verschiedene Werte übertragen werden können, bleiben nach Abzug der dar- stellbaren Zeichen nur 32 Werte für spezielle Kontrollfunk- tionen (Werte 00H bis 1FH, 0 bis 31 dez). Das Terminal ist nun nichts anderes als ein Befehlsempfänger mit einer eigenen 'Programmiersprache', bestehend aus den 128 verschiedenen Zeichen des ASCII-Codes. Jedes empfangene Zei- chen wird auf dem Bildschirm dargestellt und die Position für das nächste Zeichen eine Spalte nach rechts bewegt. Die Stelle, an der das nächste Zeichen ausgegeben wird, ist durch den sogenannten Cursor (Positionszeiger) gekennzeichnet. Für jeden empfangenen Wert zwischen 32 und 127 wird das entsprechende Zeichen der ASCII-Tabelle dargestellt. Beson- dere Funktionen, wie z.B. Cursorbewegungen, können durch die Werte 00H bis 1FH ausgelöst werden. Bei den meisten Anwendun- gen reichen diese 32 Funktionen aus, da sie eine minimale Kontrolle der Ausgabe erlauben. Da diese Werte auch von der Tastatur über die CTRL-Taste erzeugt werden können, bezeich- net man sie meist als Controlcodes. Für weitere Funktionen reichen die 32 Werte aber nicht aus. Daher wurde der Wert 27 (1BH) als Escape ('Ausbruch') defi- niert, der ein Ausbrechen aus den 32 festdefinierten Control- codes erlaubt. Nach dem ESC-Code folgen grundsätzlich noch ein oder mehrere Werte. Aus diesem Grunde bezeichnet man solche Zeichenfolgen auch als Escapesequenzen. Mit Hilfe der Escapesequenzen können nun alle Sonderfunktio- nen, die ein Terminal hat, auf einfache Weise angesteuert werden. Alle CP/M-Programme die eine komfortable Zeichenaus- gabe haben, benutzen solche Escapesequenzen zum Bildaufbau. Insbesondere bei 'Full-Screen'-Operationen wie sie z.B. bei der Textverarbeitung gebraucht werden, kann der Programm- ablauf durch Ausnutzung der über Escapesequenzen ansprech- baren Möglichkeiten eines Terminals beschleunigt werden. Alle besseren CP/M Programme haben daher ein spezielles In- stallationsprogramm mit dessen Hilfe das Programm an das angeschlossene Terminal angepasst werden kann. Zur optimalen Nutzung der Möglichkeiten des Genie III wurde im Genie CP/M 2.2X das Terminal Televideo 950 emuliert. 4.2 Bildschirmformat Die Bildschirmanzeige im Genie III CP/M 2.2X wird aus 25 Zeilen zu je 80 Zeichen gebildet, beim Genie IIs sind es 24 Zeilen zu 80 Zeichen. Zur Zeichenausgabe werden in beiden Geräten die ersten 24 Zeilen herangezogen, die 25. Zeile dient beim Genie III als Sonderzeile zur Darstellung besonderer Informationen. 4.3 Zeichendarstellung Die Zeichendarstellung geschieht auf den beiden Geräten Genie IIs und Genie III vollkommen unterschiedlich. Das Genie III hat einen eigenständigen Bildschirmspeicher von 2kBytes (2048 Bytes) Größe. Da nur 25 * 80 Zeichen darstellbar sind, werden 48 Bytes nicht benutzt. Jedem Zeichen steht also ein Byte zur Verfügung, was die Anzahl der darstellbaren Zeichen auf 256 beschränkt. In jeder der 1920 Bildschirmpositionen steht ein Wert zwischen 0 und 255. Nach der ASCII-Tabelle sind die Werte zwischen 32 und 127 fest definiert. Damit lassen sich alle Buchstaben in Groß- und Kleinschreibung, sowie alle Sonderzeichen darstellen. Die Werte 128 bis 255 entsprechen denen von 0 bis 127 in der inversen Darstellung. Im Genie IIs wird die Bildschirmausgabe über den Graphikspeicher abgewickelt. Dies bedeutet zwar einen erheblich höheren Rechenaufwand, gibt jedoch (fast) unbeschränkte Möglichkeiten bei der Zeichendarstellung. Im Genie IIs wurden daher zwei Zeichensätze eingebaut, zwischen denen man jederzeit durch P2-Leertaste umschalten kann. Der erste Zeichensatz ist der Deutsche mit Umlauten und dem Paragraphenzeichen. Der zweiten Zeichensatz ist US-ASCII mit eckigen und geschwungenen Klammern, insbesondere bei der Programmierung in Pascal und C unentbehrlich. 4.4 Videomodi 4.4.1 Linemodus/Pagemodus (nur Genie III) Die wichtigsten Escapesequenzen zur Gestaltung von Bild- schirmdarstellungen dienen dem Einfügen (Insert) und Löschen (Delete) von Zeilen bzw. Zeichen. Eine derartige Behandlung von Zeilen beeinflusst immer das gesamte Bild. Beim Einfügen einer Zeile werden alle Zeilen unterhalb davon nach unten verschoben. Die Information der letzten Zeile des Bildes geht dabei verloren. Beim Löschen einer Zeile werden alle Zeilen unterhalb davon nach oben verschoben und in der freiwerdenden letzten Bildschirmzeile Leerzeichen eingefügt. Das Einfügen und Löschen von einzelnen Zeichen hat jedoch je nach aktuellem Videomodus unterschiedliche Konsequenzen. Es kann dabei entweder im Zeilen- (Line, kurz L) oder Seiten- (Page, kurz P) modus gearbeitet werden. Im Zeilenmodus wirkt sich ein Löschen oder Einfügen eines Zeichens nur bis zum Ende der betroffenen Zeile aus. Beim Einfügen geht das letzte Zeichen verloren, beim Löschen wird in der letzten Spalte ein Leerzeichen eingesetzt. Die anderen Zeilen des Bildes bleiben unbeeinflusst. Im Gegensatz zum Zeilenmodus, der nur die Zeichen bis zum Ende einer Zeile verschiebt, wirkt sich im Seitenmodus die Behandlung von Zeichen bis zum Ende der Seite aus. Beim Einfügen eines Zeichens im Seitenmodus werden alle Zeichen rechts davon bis zum Ende der Seite nach rechts verschoben. Das letzte Zeichen einer Zeile taucht dabei als erstes Zeichen der nächsten Zeile wieder auf. Das letzte Zeichen der letzten Zeile geht verloren. Genauso auch beim Löschen eines Zeichens im Seitenmodus. Alle Zeichen rechts vom gelöschten Zeichen bis zum Ende der Seite werden eine Position nach links verschoben. Das jeweils erste Zeichen jeder Zeile taucht als letztes Zeichen der vorherigen Zeile wieder auf. Am Ende der Seite wird die freiwerdende Position mit dem Leerzeichen gefüllt. 4.4.2 Editmodus/Insertmodus (nur Genie III) Zwei andere Modi beeinflussen die Ausgabe von Zeichen auf dem Bildschirm. Der sogenannte Editiermodus (Überschreib-Modus, kurz EDT) ist im Normalfall aktiv. Hier wird jedes ankommende Zeichen dargestellt und die Cursorposition eine Spalte nach rechts bewegt. Falls auf der letzten Cursorposition bereits ein Zeichen stand, wird es überschrieben. Der zweite Modus ist der Insertmodus (Einfüge-Modus, kurz INS). Dabei wird jedes darzustellende Zeichen an der Cursor- position eingefügt und das vorher dort befindliche Zeichen nach rechts verschoben. Wie weit sich diese Verschiebung auswirkt, hängt davon ab, ob der Zeilen- oder Seitenmodus aktiviert ist. Welcher Modus der jeweiligen Modipaare eingeschaltet ist, wird in der Statuszeile durch einen der vier verschiedenen Kürzel EDTL, EDTP, INSL oder INSP angezeigt. 4.4.3 Zeilenüberlauf Ein weiterer Modus, der Zeilenüberlauf (Vertical Wrap), be- stimmt das Verhalten der Bildschirmausgabe bei Erreichen der letzten Zeilenposition. Im Normalfall ist der Zeilenüberlauf eingeschaltet und nach der Ausgabe eines Zeichens in der 80. Spalte wird der Cursor automatisch in die erste Spalte der nächsten Zeile gesetzt. Nach Schreiben der letzten Bild- schirmposition wird der gesamte Bildschirminhalt eine Zeile nach oben verschoben und der Cursor an den Anfang der frei werdenden letzten Zeile gesetzt. Da dabei die erste Bild- schirmzeile verloren geht, kann man den Zeilenüberlauf auch abschalten und das 'Hochlaufen' des Bildes unterdrücken. In diesem Fall wird der Cursor nicht mehr in die nächste Zeile verschoben, sondern bleibt in der letzten Spalte stehen. Die erste Spalte der nächsten Zeile wird erst durch Empfang der beiden Codes CR (0DH, 13 dez) und LF (0AH, 10 dez) erreicht. Um eine flüssige Zeichenausgabe zu gewährleisten, muß in diesem Fall die Anzahl der ausgegebenen Zeichen pro Zeile mitgezählt werden und nach dem jeweils 80. Zeichen CR und LF eingeschoben werden. Dies geschieht z.B. im BASIC oder bei dem Datenbankprogramm dBase II. 4.5 Die 25. Zeile (nur Genie III) 4.5.1 Verwendung als Statuszeile In der Statuszeile werden alle für den Benutzer wichtigen Informationen dargestellt, dazu gehören: - das gewählte Diskettenlaufwerk - der gewählte Benutzerbereich - der Videomodus - der Wochentag - das Datum - die Uhrzeit Alle diese Informationen werden in der Reihenfolge, wie sie hier aufgezählt sind, von links nach rechts dargestellt. Die eigentliche Statuszeile wird im Speicher aufgebaut und bei jeder Änderung in die 25. Bildschirmzeile kopiert. Das heißt, daß auch bei anderer Nutzung der 25. Zeile die Status- zeile immer aktualisiert wird. Beim Rückmelden der Statuszeile (vgl. Anhang B, ESC Z 1) werden auch nicht die 80 Zeichen der 25. Bildschirmzeile, sondern die 80 Zeichen der intern verwalteten Statuszeile ausgegeben. 4.5.2 Verwendung als Benutzerzeile Bei manchen Anwendungen kann es sich als nützlich erweisen, auch den Status des ablaufenden Programms dem Benutzer mitzu- teilen. Zu diesem Zweck wurde die Benutzerzeile eingerichtet. Über eine bestimmte Escapesequenz (siehe Anhang B) können bis zu 80 Zeichen als Benutzerzeile gespeichert werden, die An- zeige erfolgt erst über eine weitere Escapesequenz. Dies hat den Vorteil, daß die Benutzerzeile 'im Hintergrund' aufgebaut werden kann und erst nach Eintrag aller Informationen darge- stellt wird. Auch der Inhalt der Benutzerzeile kann an das laufende Programm rückgemeldet werden. 4.5.3 Abschalten der 25. Zeile Die 25. Zeile kann entweder bei der Systemkonfigurierung (Kap. 7) oder über eine Escapesequenz (siehe unten oder Anhang B) abgeschaltet werden. 4.6 Zeichenattribute Im Gegensatz zum emulierten Terminal Televideo 950, wird im Genie III - technisch bedingt - nur ein Attribut unter- stützt, die inverse Darstellung. Im Genie IIs CP/M 2.2X wird zusätzlich das Attribute Unterstrichen verarbeitet. Bei der Installation von CP/M-Programmen auf das Terminal Televideo 950 zeigt sich jedoch, daß diese das Attribut 'halbe Helligkeit' dem Attribut 'Invers' vorziehen. Aus diesem Grund werden auch die Escapesequenzen für die Ein- und Ausschaltung der halben Helligkeit erkannt, aber als Invertierung verarbeitet. Dabei ergibt sich jedoch ein Problem. Das Leerzeichen wird in voller und halber Helligkeit identisch angezeigt und manche Programme verzichten daher bei der Ausgabe von Leerzeichen auf die Rücknahme des Attributes. Aus diesem Grunde wird das Attribut 'halbe Helligkeit' nur bei darstellbaren Zeichen als Invertierung interpretiert, das Leerzeichen jedoch ohne Attribut verarbeitet. Dies ist insbesondere bei der Installation des Programms Multiplan zu beachten ! 4.7 Cursorattribute Das Genie III bietet wegen seines eigenständigen Bildschirm- Controllers, bei der Darstellung des Cursorsymbols verschiedene Möglichkeiten. Aus diesen Darstellungsarten wurden folgende vier gewählt, die auch vom Televideo-Terminal unterstützt werden: - blinkender Block Der Cursor wird als blinkender weisser Block dargestellt. In dieser Art ist er bei invertierter Schrift am besten zu erkennen. - stehender Block Der Cursor wird als ständig sichtbarer weisser Block darge- stellt. - blinkender Strich Der Cursor wird als blinkender Unterstrich dargestellt. - stehender Strich Der Cursor wird als stehender Unterstrich dargestellt. Ein weiteres wählbares Cursorattribut schaltet die Darstel- lung des Cursors ab, der Cursor ist dann nicht sichtbar. Da beim Genie IIs die gesamte Bildschirmausgabe per Software gesteuert wird, ist das Attribut 'blinken' bei der Cursordar- stellung nicht wirksam und wird wie 'stehend' interpretiert. 4.8 Monitormodus (nur Genie III) Normalerweise können nur die Werte zwischen 32 und 127 bzw. 160 und 255 zur Anzeige gebracht werden. Um jedoch den gesam- ten Zeichensatz von 256 Zeichen auszunutzen, ist auch den Werte zwischen 0 und 31 je ein Zeichen zugewiesen. Diese Werte können nur über den sogenannten Monitormodus darge- stellt werden. Jedes der 32 Zeichen stellt ein spezielles Graphikzeichen dar, das gemäß des ASCII-Standards den jeweiligen Controlcode ersetzt. Diese besondere Ausgabeart dient vor allem der Installation von Fremdprogrammen. Bei eingeschaltetem Monitormodus werden die empfangenen Controlcodes und Escapesequenzen nicht mehr als Befehle interpretiert, sondern direkt angezeigt. Der Monitormodus ist über eine Escapesequenz ein- und ausschalt- bar. Eine genaue Übersicht über die verwendeten Kürzel zeigt die Zeichensatztabelle im Anhang E. 4.9 Rückmeldung von Werten Eine Besonderheit der Videoroutine ist die Möglichkeit, auch Werte zurückzumelden. Diese Rückmeldung geschieht über den Tastaturkanal, d.h. daß rückgemeldete Zeichen wie Eingaben von der Tastatur behandelt werden. Neben der aktuellen Cur- sorposition können beim Genie III auch komplette Zeilen auf diese Art übergeben werden. Besonders interessant ist beim Genie III die Rückmeldung bei der Status- und Benutzerzeile. Ein laufendes Programm kann durch Anforderung der Statuszeile z.B. jederzeit das Datum und die Uhrzeit abfragen. Ein entsprechendes Beispielprogramm in BASIC ist am Ende von Anhang B gegeben. Jede Rückmeldung wird mit dem Controlcode CR (0DH, 13 dez) abgeschlossen, um eine Eingabe (z.B. im BASIC über 'INPUT') zu ermöglichen. Da im Basic zwischen je zwei Befehlen die Tastatur abgefragt wird, kommt es zwischen der Ausgabe der Escapesequenz über 'PRINT' und der Übernahme der rückgemelde- ten Werte durch 'INPUT' oder 'INKEY' zum Verlust eines Zei- chens. Aus diesem Grunde gibt es in der Systemkonfiguration (Kapitel 7.1) die Möglichkeit, vor jede Rückmeldung ein Leer- zeichen zu setzen, daß vom Basic dann abgefangen wird. 4.10 Steuersequenzen Auf den nächsten Seiten wird nur eine Kurzübersicht der möglichen Videobefehle in der Form von Controlcodes und Es- capesequenzen gegeben. Für jeden Befehl ist auf der linken Seite der Controlcode bzw. die Escapesequenz, der (die) hexa- dezimale und dezimale Wert(e) sowie die Kurzschreibweise nach dem ASCII-Standard aufgeführt. Auf der rechten Seite befindet sich die Bezeichnung in Englisch und eine deutsche Kurzbe- schreibung. Eine ausführliche Behandlung der Befehle befindet sich im Anhang B. Da sich die CP/M 2.2X Versionen für die Geräte Genie III und Genie IIs in den unterstützten Control- und Escapesequenzen unterscheiden, sind die Sequenzen, die nur auf einem der Geräte wirksam sind, zusätzlich gekennzeichnet. (2) bedeuten 'nur Genie IIs' und (3) 'nur Genie III'. 4.10.1 Cursorbewegungen CTRL-H 08 8 BS Backspace Cursor ein Zeichen nach links CTRL-I 09 9 HT Horizontal Tab Cursor zum nächsten Tab CTRL-J 0A 10 LF Linefeed Cursor eine Zeile nach unten CTRL-K 0B 11 VT Cursor Up Cursor eine Zeile nach oben CTRL-L 0C 12 FF Cursor Forward Cursor ein Zeichen nach rechts CTRL-M 0D 13 CR Carriage Return Cursor zum Anfang der Zeile CTRL-V 16 22 SYN Cursor Down Cursor eine Zeile nach unten CTRL-ß 1E 30 RS Home Cursor in die linke obere Ecke CTRL-_ 1F 31 VS New Line Cursor zum Anfang der nächsten Zeile ESC = 1B 3D 27 61 Cursor Address in Page Neue Cursorposition innerhalb der Seite wählen 4.10.2 Löschbefehle CTRL-Z 1A 26 SUB Clear Screen Seite mit dem Leerzeichen fül- len, Cursor home ESC T 1B 54 27 84 Clear to End of Line Bis zum Zeilenende mit dem Leerzeichen auffüllen (3) ESC t 1B 74 27 106 Clear to End of Line to Null Bis zum Zeilenende löschen ESC Y 1B 59 27 89 Clear to End of Page Bis zum Seitenende mit dem Leerzeichen auffüllen (3) ESC y 1B 79 27 121 Clear to End of Page to Null Bis zum Seitenende löschen ESC * 1B 2A 27 42 Clear All to Null Seite löschen (3) ESC + 1B 2B 27 43 Clear Unprotected Ganze Seite mit dem Leerzeichen auffüllen 4.10.3 Editierbefehle ESC E 1B 45 27 69 Insert Line Zeile einfügen ESC R 1B 52 27 82 Delete Line Zeile löschen (3) ESC Q 1B 51 27 81 Insert Character Zeichen einfügen (3) ESC W 1B 57 27 87 Delete Character Zeichen löschen 4.10.4 Wahl des Videomodus (3) ESC N 1B 4E 27 78 Page Edit Seiteneditierung aktivieren (3) ESC O 1B 4F 27 79 Line Edit Zeileneditierung aktivieren (3) ESC q 1B 71 27 113 Insert Mode On Einfügemodus einschalten (3) ESC r 1B 72 27 114 Insert Mode Off Einfügemodus ausschalten ESC v 1B 76 27 118 Vertical Wrap On Zeilenüberlauf einschalten ESC w 1B 77 27 119 Vertical Wrap Off Zeilenüberlauf ausschalten 4.10.5 Wahl des Attributes ESC ) 1B 29 27 41 Half Intensity On Invertierung (ohne Leerzeichen) einschalten ESC ( 1B 28 27 40 Half Intensity Off Invertierung ausschalten ESC . 1B 2E 27 46 Set Cursor Attribute Cursorsymbol wählen ESC G 1B 47 27 71 Set Video Attribute Zeichenattribut wählen 4.10.6 Status- und Benutzerzeile (3) ESC g 1B 67 27 103 Display User Line Benutzerzeile anzeigen (3) ESC h 1B 68 27 104 Display Status Line Statuszeile anzeigen (3) ESC f 1B 66 27 102 Load User Line Benutzerzeile laden 4.10.7 Monitormodus (3) ESC U 1B 55 27 85 Enter Monitor Mode Monitormodus einschalten (3) ESC X 1B 58 27 88 Exit Monitor Mode Monitormodus ausschalten 4.10.8 Setzen der Systemparameter Nicht Televideo kompatibel ! ESC _ 1B 5F 27 95 Systemparameter setzen 4.10.9 Rückmeldung von Werten (3) ESC 6 1B 36 27 54 Send Line Cursorzeile rückmelden ESC ? 1B 3F 27 63 Read Cursor Address in Page Cursorposition rückmelden ESC M 1B 4D 27 77 Transmit Terminal ID Versionsnummer und Speicher- größe rückmelden (3) ESC Z 1B 5A 27 90 Send User/Status Line Benutzer- oder Statuszeile rückmelden 4.10.10 Sonderfunktionen CTRL-G 07 7 BEL Bell Piepston ausgeben (3) ESC P 1B 50 27 80 Page Print with CR LF Bildschirm ausdrucken (3) ESC e 1B 65 27 101 Load Substitute Leerzeichen ersetzen ## Schnittstellen ## 5. Schnittstellen 5.1 Ein- und Ausgabekanäle Das CP/M Betriebssystem unterstützt insgesamt vier Ein/Ausga- bekanäle. Jeder Datentransport, der auf Zeichenbasis arbeitet wird über diese Kanäle abgewickelt. Diese Hauptkanäle sprechen jedoch nicht direkt eine Schnitt- stelle des Gerätes an, sondern die Zuordnung zu einer physi- kalischen Schnittstelle erfolgt erst durch einen von jeweils vier Unterkanälen. Die Bezeichnung der Haupt- und Unterkanäle ist durch jeweils drei Zeichen gefolgt von einem Doppelpunkt festgelegt. Die aktuelle Kanalzuordnung wird in einem Byte - auch IOBYTE genannt - an der Speicherstelle 3 abgespeichert. Jedem Haupt- kanal sind in diesem Byte je zwei Bits zugeordnet, die eine der vier verschiedenen Unterkanalbelegungen dekodieren. Welcher Unterkanal welchem Hauptkanal zugeordnet ist, wird im Allgemeinen über den STAT-Befehl (siehe Kapitel 9.2) be- stimmt, kann aber auch durch direkte Änderung des IOBYTE erfolgen. (siehe auch Kapitel 7 Systemkonfigurierung und Kaptitel 10.9 IOBYTE.COM). Eine Änderung der Unterkanäle ist i.A. nicht möglich, kann jedoch auf Anfrage verwirklicht werden. 5.1.1 Erster Hauptkanal (CON:, Console, IOBYTE Bits 0,1) Dies ist der einzige Kanal, der sowohl Daten senden als auch empfangen kann. Über den CON:-Kanal laufen alle Ein- und Ausgaben des Betriebssystems. Die vier Unterkanäle des CON:- Kanals sind: - Serielle Schnittstelle (TTY:,0,0) - Tastatur und Bildschirm (CRT:,0,1) - Batchmode (BAT:,1,0) - Tastatur und Drucker (UC1:,1,1) Die Bezeichnung dahinter gibt den Namen des Unterkanals und die Werte der Bits 1 und 0 des IOBYTE an. Im Batchmode wird keine physikalische Schnittstelle direkt angesprochen, sondern die Zeicheneingabe erfolgt über den zweiten Hauptkanal (RDR:) und die Ausgabe über den vierten Hauptkanal (LST:). 5.1.2 Zweiter Hauptkanal (RDR:, Reader, IOBYTE Bits 2,3) Dies ist ein reiner Eingabe-Kanal. Die vier möglichen Unter- kanäle sind: - Serielle Schnittstelle (TTY:,0,0) - NULL oder Serielle Schnittstelle (PTR:,0,1) - Tastatur (UR1:,1,0) - NULL oder Serielle Schnittstelle (UR2:,1,1) NULL ist ein Kanal ohne Funktion, es wird immer der Wert 26, 1AH (CP/M Standardwert für 'Ende der Eingabe') zurückgegeben. 5.1.3 Dritter Hauptkanal (PUN:, Punch, IOBYTE Bits 4,5) Dies ist ein reiner Ausgabe-Kanal mit folgenden Unterkanälen: - Serielle Schnittstelle (TTY:,0,0) - Centronics Schnittstelle (PTP:,0,1) - Bildschirm (UP1:,1,0) - NULL oder Serielle Schnittstelle (UP2:,1,1) NULL ist ein Kanal ohne Funktion, alle Ausgaben auf diesen Kanal werden verworfen. 5.1.4 Vierter Hauptkanal (LST:, List, IOBYTE Bits 6,7) Dieser Kanal dient dem Betriebssystem als Druckerkanal. Alle Ausgaben, die auf einen Drucker laufen sollen (Bildschirmaus- druck über CTRL-00 beim Genie III), werden über diesen Haupt- kanal abgewickelt. Die vier Unterkanäle sind: - Serielle Schnittstelle (TTY:,0,0) - Bildschirm (CRT:,0,1) - Centronics-Parallelschnittstelle (LPT:,1,0) - Centronics-Schnittstelle HexMode (UL1:,1,1) Im HexMode werden die einzelnen Zeichen nicht direkt ausgegeben, sondern in ihre jeweilige Darstellung im Hexa- dezimalformat umgerechnet. Das Zeichen 'A' z.B. wird in diesem Fall als '41' dargestellt. Dieser Modus ist besonders beim Austesten von Programmen (z.B. WordStar Druckerinstallation) äusserst hilfreich. 5.1.5 Zuordnung der Kanäle 5.1.5.1 Beim Genie III Die folgende Tabelle gibt nochmals eine Übersicht über die möglichen Kanalzuordnung. Mit * ist die Zuordnung gekenn- zeichnet, die in der ausgelieferten Genie III CP/M 2.2XV3 Version voreingestellt ist. Device Möglichkeiten Schnittstelle ------------------------------------------------- CON: TTY: V 24 CRT: * Tastatur / Bildschirm BAT: Batchmode UC1: Tastatur / Centronics RDR: TTY: * V 24 PTR: V 24 UR1: Tastatur UR2: NULL ('Niemandsland') PUN: TTY: * V 24 PTP: Centronics UP1: Bildschirm UP2: NULL ('Niemandsland') LST: TTY: V 24 CRT: Bildschirm LPT: * Centronics-Schnittstelle UL1: Centronics-Schnittstelle, HexMode 5.1.5.2 Beim Genie IIs Die folgende Tabelle gibt nochmals eine Übersicht über die möglichen Kanalzuordnung. Mit * ist die Zuordnung gekenn- zeichnet, die in der ausgelieferten Genie IIs CP/M 2.2XV1 Version voreingestellt ist. Device Möglichkeiten Schnittstelle ------------------------------------------------- CON: TTY: SIO Kanal A CRT: * Tastatur / Bildschirm BAT: Batchmode UC1: SIO Kanal B RDR: TTY: * SIO Kanal A PTR: NULL ('Niemandsland') UR1: Tastatur UR2: SIO Kanal B PUN: TTY: * SIO Kanal A PTP: Centronics UP1: Bildschirm UP2: SIO Kanal B LST: TTY: SIO Kanal A CRT: Bildschirm LPT: * Centronics-Schnittstelle UL1: Centronics-Schnittstelle, HexMode Über den Befehl STAT XXX:=YYY: kann dem Hauptkanal XXX: der Unterkanal YYY: zugewiesen werden. Eine Zuweisung der Druk- kerausgabe auf den Bildschirm entspricht also dem Befehl STAT LST:=CRT:. Im Batchmode geht die CON:-Ausgabe zum LST:-Kanal und die CON:-Eingabe kommt vom RDR:-Kanal 5.2 Centronics-Schnittstelle Die Centronics-Parallelschnittstelle ist im allgemeinen für den Anschluß eines Druckers vorgesehen. Wichtig beim Anschluß eines Druckers ist, daß er keinen automatischen Zeilenvor- schub (Auto-Linefeed) machen darf. Dies ist bei den meisten Druckern über einen internen Schalter wählbar. 5.3 Serielle Schnittstelle (V 24 oder SIO) Beim Genie III wird die eingebaute V24 Schnittstelle vom CP/M 2.2XV3 unterstützt. Hinweise für die Konfiguration der Schnittstelle sind im Kapitel 10.13, Programm V24.COM, ge- geben. Im Genie IIs CP/M 2.2XV1 wird eine (die erste) SIO/PIO-Karte unterstützt. Hinweise für die Konfiguration der Schnitt- stelle sind im Kapitel 10.11, Programm SIO.COM, gegeben. Die Belegung des SIO-Anschlusses auf der Karte ist dem Techni- schen Handbuch zum Genie IIs zu entnehmen. ## Massenspeicher ## 6. Massenspeicher 6.1 Einleitung Anders als die in den vorherigen Kapiteln behandelten Ein/ Ausgabekanäle, sind die Massenspeicher nicht zeichen- sondern blockorientiert. Dies bedeutet, daß die Datenübertragung von und zu den Massenspeichern (Disketten) in Blöcken zu je 128 Zeichen (Bytes) erfolgt. Ein Datenblock wird im weiteren als RECORD bezeichnet, da der Begriff Block anderweitig verwendet wird. Das CP/M-Betriebsystem unterstützt bis zu 16 derartige Mas- senspeicher unter den Bezeichnungen A: bis P:, unter CP/M 2.2X können jedoch nur bis zu 4 Laufwerke mit den CP/M- Bezeichnungen A: bis D: angeschlossen werden. 6.2 Diskettenlaufwerke Beim CP/M 2.2X können bis zu vier 5 1/4 Zoll oder 8 Zoll Diskettenlaufwerke angeschlossen werden. Vom CBIOS unter- stützt werden sämtlichen Datenformate von single Density (einfache Dichte), single sided (einseitig) bis double Den- sity (doppelte Dichte), double sided (doppelseitig). Dadurch ist es möglich, beliebige Diskettenformate von ande- ren CP/M-Rechnern zu lesen und zu schreiben. Die Zuweisung eines Datenformats auf ein Diskettenlaufwerk geschieht über den PD-Befehl, der im Kapitel 10.10 beschrieben ist. Anhang C gibt einen Überblick über die zur Zeit möglichen Disketten- formate. 8 Zoll Formate sind jedoch nur am Genie III getestet worden, ein einwandfreies Funktionieren kann jedoch bei beiden Geräten nicht garantiert werden. Aufgrund der höheren Datenrate bei 8 Zoll Laufwerken, ist der störungfrei Betrieb insbesondere vom Diskcontroller und dem verwendeten Laufwerk abhängig. 6.2.1 Diskettenfehler Anders als bei sonst üblichen CP/M Systemen, werden vom CP/M 2.2X sämtliche möglichen Diskettenfehler abgefangen. Bereits bei der Anwahl eines Laufwerks wird getestet, ob sich darin eine Diskette befindet. Ist dies nicht der Fall, wird dies dem Benutzer durch die Fehlermeldung 'BDOS Err on x: Select' mitgeteilt. Dieselbe Meldung erscheint auch, wenn versucht wurde, ein nicht vorhandenes Laufwerk anzuwählen. Dabei steht x: für eine der sechzehn möglichen Laufwerksbezeichnungen. Der Benutzer muß diese Fehlermeldung durch Drücken der ENTER- Taste quittieren. Danach führt das System selbsttätig eine Warmstart aus und wählt das Hauptlaufwerk (siehe Kapitel 7.1) an. Tritt beim Schreiben oder Lesen einer Diskette ein Fehler auf, so kann das System auf zwei Arten reagieren. Bei ausge- schalteter Fehlermeldung (siehe Kapitel 7.1) wird der Fehler nur mit 'BDOS Err on x: Bad Sector' quittiert. Drücken der ENTER-Taste führt zu einer Wiederho- lung der fehlerhaften Diskettenoperation, BREAK bricht den Vorgang ab und führt einen Warmstart aus. 6.2.2 Erweiterte Fehlermeldung beim Genie III Wesentlich komfortabler ist die Fehlerbehandlung bei einge- schalteter Fehlermeldung. Hier wird die Fehlerursache expli- zit in der 25. Bildschirmzeile angegeben. Aufgrund des knappen Speicherplatzes werden die erweiterten Fehlermeldungen nur durch Kürzel dargestellt, die jedoch im folgenden erläutert werden: Als erster erscheint 'R:' (Lesefehler) oder 'W:' (Schreibfehler) und zeigt damit die letzte Diskettenoperation an. Die nächste Meldung bezeichnet die Fehlerart: '2' : Daten verloren Beim Lesen/Schreiben des Sektors lief der Diskettenkontroller aus der Synchronisation. Fehlerursache ist entweder die ge- drückte LSP-Taste oder eine falsche Einstellung des betroffe- nen Diskettenlaufwerks. '3' : Prüfzahlfehler Die beim Lesen errechnete Prüfsumme für diesen Sektor stimmt nicht mit der aufgezeichneten Prüfsumme überein. Fehlerur- sache kann neben schlechtem Diskettenmaterial auch ein unsau- beres Laufwerk sein. In seltenen Fällen kann auch eine elek- trische Störung einen Prüfzahlfehler hervorrufen. '4' : Sektor nicht gefunden Der angegebene Sektor konnte auf der Diskette nicht lokali- siert werden. Ursache ist fast immer eine falsche Formatein- stellung. Bei einer unsauber eingelegten Diskette kann es ebenfalls zu einem solchen Fehler kommen. '5' : Schreibfehler Der angegebene Sektor konnte nicht geschrieben werden. Feh- lerursache ist meist ein defektes Laufwerk. '6' : Schreibgeschützt Die Diskette ist über einen Aufkleber auf der linken Seite schreibgeschützt. Bitte beachten Sie, daß 8 Zoll-Disketten schreibgeschützt sind, wenn der Aufkleber nicht vorhanden ist. Nach der Laufwerksbezeichnung über 'A' bis 'D' wird in der 25. Zeile auch die Position des fehlerhaften Sektors ausge- geben. 'V' steht für die Vorderseite und 'R' für die Rückseite. Für die Spur werden drei Werte ausgegeben. Der erste Wert be- zeichnet die vom Betriebsystem angeforderte Spurnummer. Der zweite Wert ist die physikalsische Spurnummer. Dadurch kann insbesondere bei der Verarbeitung von 40-Spur Disketten auf 80-Spur Laufwerken und bei verschiedenen doppelseitigen Zu- griffsarten die Fehlerursache bestimmt werden. Die dritte Spurnummer ist die Nummer unter der die gesuchte Spur formatiert sein sollte. Manche CP/M Formate addieren einen bestimmten Wert zu der Spurnummer (z.B. Kontron PSI 80) wodurch die Spurnummer z.B. nicht mit 0 sondern mit 3 beginnen und nicht bei 39 bzw. 79 sondern bei 42 bzw. 82 enden. In diesen Fällen ist die Angabe der dritten Spurnummer auch recht hilfreich. Die zuletzt ausgegebene Sektornummer ist die vom CBIOS er- rechnete physikalische Sektornummer, nicht die vom Betriebs- system angeforderte Recordnummer. Nach der Ausgabe der erweiterten Fehlermeldungen, kann über die CLEAR-Taste der weitere Verlauf bestimmt werden: CLEAR: Die zuletzt ausgeführte Diskettenoperation wird wie- derholt. Dies ist besonders bei Prüfzahlfehlern zu empfehlen, da nach mehreren Versuchen der fehlerhafte Sektor meist doch noch zu lesen ist. Auch bei falscher Formateinstellung ('Record not found') kann vor dem Drücken der CLEAR-Taste eine Diskette mit dem richtige Format eingelegt werden. SHIFT-CLEAR: Die Diskettenoperation wird abgebrochen und der Fehler an das Betriebssystem gemeldet. Der weitere Verlauf ist wie bei ausgeschalteter Fehlermeldung. CTRL-CLEAR: Die Diskettenoperation wird abgebrochen, es er- folgt jedoch keine Fehlermeldung an das Betriebssystem. Diese Art der Fehlerbehandlung ist besonders bei der Rettung von Daten von physikalisch beschädigten Disketten zu empfehlen. Dadurch kann, obwohl vielleicht ein oder mehrere Sektoren beschädigt sind, ein Großteil der aufgezeichneten Daten doch noch gerettet werden. Hier ist aber Vorsicht geboten, da mit den fehlerhaft gelesenen Sektoren weitergearbeitet wird. 6.2.3 Erweiterte Fehlermeldung beim Genie IIs Die Fehlermeldung erscheint grundsätzlich am Anfang der aktuellen Cursorzeile und wird mit einem Piepston (ASCII Bell Character) dem Benutzer mitgeteilt. Die Fehlermeldung selber besteht aus 20 Zeichen in folgender Reihenfolge: LFES TTT/KKK/PPP SSS Die einzelnen Zeichen haben folgende Bedeutung: L Das Laufwerk, auf dem der Fehler auftrat L steht für die Laufwerkskennung 'A' .. 'P' F Zuletzt ausgeführte Funktion: Lesen ('R' für READ) oder Schreiben ('W' für WRITE) E Der Fehlercode, eine Zahl zwischen 0 und 7: 0 Funktion war noch nicht beendet 1 Eine Datenanforderung wurde nicht erfüllt 2 Daten verloren (Das System muß mit 5.2 bzw 8 MHz laufen !!) 3 Prüfzahlfehler 4 Sektor nicht gefunden (Immer ein Zeichen für ein falsch gewähltes Format) 5 Schreibfehler (Laufwerk defekt) 6 Schreibgeschützt 7 Laufwerk war nicht bereit S Die Seite, auf die zuletzt zugegriffen wurde S steht für 'V' (Vorderseite) oder 'R' (Rückseite) TTT Die vom CP/M angeforderte Spurnummer, i.a. eine Zahl zwischen 000 und 159 KKK Die vom System nach der aktuellen Formateinstellung berechnete physikalische Spurnummer. Bei 40 Spur Formaten in 80 Track Laufwerken (fast) immer die Hälfte von TTT PPP Die vom System an der physikalischen Spurposition KKK, Seite S erwartete Spurnummer von der Formatierung. SSS Die vom System erwartete physikalische Sektornummer. Die Werte TTT, KKK, PPP und SSS sind im allgemeinen nur für 'Insider' interessant und dienen vornehmlich zum Austesten von Formateinstellungen. Nach einer Fehlermeldung wartet das System auf eine Reaktion des Benutzers in Form eines Tastendrucks: CLEAR falls die fehlerhafte Funktion wiederholt werden soll. Sehr zu empfehlen bei Prüfzahl- fehlern, bei genügend häufiger Wiederholung wird ein fehlerhafter Sektor meist doch noch gelesen. SHIFT-CLEAR falls die fehlerhafte Funktion abgebrochen werden soll. In diesem Fall wird der Fehler an das CP/M weitergegeben, was sich dann mit 'BDOS Error on ...' meldet. P1-CLEAR falls der Fehler übergangen werden soll. Zu empfehlen bei stark beschädigten Disketten, von denen aber noch Daten 'gerettet' werden sollen. Über P1-Clear kann ein Abbruch vom CP/M aus verhindert werden. ## Systemkonfigurierung ## 7. Systemkonfigurierung 7.1 CONFIG Durch den Befehl CONFIG wird das Programm zur Systemkonfi- guration aufgerufen. Dabei muß das zu ändernde Konfigura- tionsfile CONFIG.SYS auf dem aktuellen Laufwerk vorhanden sein. Nach dem Einladen des Files CONFIG.SYS von der gewählten Systemdiskette wird jeder veränderbare Parameter einzeln abgefragt und dabei in Klammern die aktuelle Einstellung ausgegeben. Durch Drücken der ENTER-Taste wird die aktuelle Einstellung beibehalten und der nächste Parameter abgefragt. Soll die Einstellung verändert werden, so ist der neue Wert einzugeben. Eine Übersicht über die so veränderbaren Parameter gibt die folgende Aufstellung, die möglichen Werte sind jeweils in Klammern angegeben: Logo anzeigen (J/N) Als LOGO werden die Meldungen bezeichnet, die beim Bootvor- gang ausgegeben werden. Bei abgeschaltetem LOGO wird diese Ausgabe unterdrückt und das System meldet sich direkt mit dem Prompt A>. Eine Abschaltung des LOGO ist insbesondere bei Ausnutzung der INFO-Zeile (siehe Kapitel 10.8) zu empfehlen. Interrupts aktivieren (J/N) Bei aktivierten Interrupts wird 40 mal pro Sekunde das lau- fende Programm unterbrochen und zur Speicherstelle 56 (0038H) gesprungen (Z80 Interrupt Mode 1). Im Normalfall wird dadurch die Uhranzeige in der Statuszeile aktualisiert und eine Tastaturabfrage durchgeführt. Damit ist es möglich, auch während der Ausführung eines Programms be- reits Zeichen einzutippen, die dann automatisch zwischenge- puffert werden. Diese Art der Tastaturabfrage ist im Kapitel 3.1.3 unter der Bezeichnung 'Type-ahead' beschrieben. Da aber manche Programme diese Speicherstellen für eigene Zwecke benutzen, kann die Erzeugung von Interrupts unterbunden wer- den. Dies ist auch bei zeitkritischen Programmen zu empfeh- len, da die Interruptroutine eine gewisse Zeit benötigt. Beim Bootvorgang werden dann zwar immer noch die genannten Spei- cherstellen initialisiert, jedoch nicht mehr benutzt. Bei abgeschalteten Interrupts ist es erforderlich, die Zeiten der automatischen Tastenwiederholung zu ändern (siehe weiter unten). Alte Tastatur (J/N) Hier kann zwischen der alten und der neue (Siemens-) Tastatur gewählt werden (Nur Genie III). Statuszeile anzeigen (J/N) Dieser Parameter kann ebenfalls durch die Escapesequenz ESC _ verändert werden. Bei abgeschalteter Statuszeile wird die Anzeige der Zeilen auf dem Bildschirm von 25*80 auf 24*80 begrenzt. (Nur Genie III) Automatischer Zeilenvorschub (J/N) Automatischer Zeilenvorschub bedeutet, daß nach dem Erhalt des Videobefehls CR (Cursor zum Anfang der Zeile) automatisch der Befehl LF (Cursor in die nächste Zeile) ausgeführt wird. Diese Funktion wird im Allgemeinen nicht benutzt, da das CP/M 2.2 Betriebssystem und alle unter CP/M laufenden Pro- gramme die Sequenz CR LF selbst erzeugen. Bei Nutzung des CP/M 2.2X als 'Terminalprogramm' für einen anderen Rechner kann diese Funktion jedoch gebraucht werden. Zeilenüberlauf (J/N) Bei aktiviertem Zeilenüberlauf wird der Cursor nach Über- schreiten der 80. Spaltenposition automatisch auf den Beginn der nächsten Zeile gesetzt. Falls vorrangig mit BASIC oder dBase II gearbeitet werden soll, ist der Zeilenüberlauf abzu- schalten. In diesem Fall bleibt der Cursor nach Erreichen der letzten Zeilenposition dort stehen und wird erst durch die beiden Videobefehle CR und LF in die nächste Zeile befördert. Weitere Hinweise dazu stehen im Kapitel 4.4 (Videomodi) und im Anhang B unter ESC v und ESC w. Funktionstasten aktivieren (J/N) Die Funktionstasten F1 bis F8 (Genie III) bzw. P2-0 bis P2-7 (Genie IIs), erzeugen normalerweise mehrere Zeichen, die über das FKEY-Programm gewählt werden können. Zur Nutzung der Funktionstasten für eigenen Programme, können die Tasten F1 bis F8 deaktiviert werden, wodurch sie nur noch ein Zeichen erzeugen. F1 (P2-0) erzeugt 80H (128 dez.), F2 (P2-1) 81H (129 dez.) usw. bis F8 (P2-7) mit 87H (135 dez). Zusammen mit Shift werden um 8 höhere Werte erzeugt (Shift- F1 bzw. Shift P2-0 erzeugt 88H, 136 dez.). Zeilenvorschub zum Drucker senden (J/N) Über diesen Parameter kann die Druckeransteuerung beeinflusst werden. Der Normalfall im CP/M ist J, wobei der angeschlos- sene Drucker auf 'Auto-Linefeed Off' (siehe Druckerhandbuch) eingestellt werden muß. Dadurch ergibt sich bei der Druckerbehandlung eine größere Flexibilität, da z.B. eine Zeile mehrfach gedruckt werden kann. Falls man auch mit dem Betriebssystem GDOS arbeitet, muß der gesonderte Zeilenvorschub an den Drucker unterbunden werden, da das GDOS-Betriebssystem beim Drucker 'Auto-Linefeed On' voraussetzt. Gibt man dann trotzdem einen zusätzlichen Zeilenvorschub an den Drucker, so erhält man einen doppelten Zeilenabstand. Zeichen einfügen (J/N) Über diesen Parameter kann zwischen den Videomodi Edit (Ein- gabe von 'N') und Insert (Eingabe von 'J') gewählt werden. Der hier eingestellte Modus wird nach dem Start des Betrieb- systems angewählt und entsprechend in der Statuszeile ange- zeigt (EDT oder INS). Näheres über diese Videomodi ist im Kapitel 4.4 beschrieben. (Nur Genie III) Seitenmodus (J/N) Über diesen Parameter kann zwischen den Videomodi Line (Ein- gabe von 'N') und Page (Eingabe von 'J') gewählt werden. Der hier eingestellte Modus wird nach dem Start des Betrieb- systems angewählt und entsprechend in der Statuszeile ange- zeigt (L oder P). Näheres über diese Videomodi ist im Ka- pitel 4.4 beschrieben. (Nur Genie III) Rückmeldung mit Leerzeichen (J/N) Wie im Kapitel 4.9 (Rückmeldung von Werten) angesprochen, kann die Videoroutine bestimmte Werte an das Programm über die Tastaturroutine zurückmelden. Bei der Verwendung dieser Möglichkeit innerhalb eines BASIC-Programms wird jedoch in der Regel das erste Zeichen 'verschluckt'. Um dennoch alle Werte zu erhalten kann durch das Voranstellen eines Leerzei- chens vor die Rückmeldung dieser Datenverlust umgangen wer- den. (Nur Genie III) Tastenklick einschalten (J/N) Bei eingeschaltetem Tastenklick wird bei jedem erkannten Tastendruck ein kurzes Klickgeräusch über den Lautsprecher ausgegeben. Tastenwiederholung einschalten (J/N) Falls eine Taste eine bestimmte Zeit lang gedrückt bleibt, wird der Tastencode wiederholt. Die Funktionstasten F1 bis F8 sind von dieser Funktion ausgeschlossen. Die Zeit, wielange eine Taste bis zur ersten Wiederholung gedrückt bleiben muß und die anschliessende Wiederholungsfre- quenz lässt sich getrennt einstellen (s.u.). Fehlermeldung einschalten (J/N) Wie bereits in Kapitel 6.2.1 angesprochen, werden im CP/M 2.2X Diskettenfehler ausführlicher mitgeteilt als bei nor- malen CP/M Systemen. Bei ausgeschalteter Fehlermeldung ver- hält sich das CP/M 2.2X wie ein normales CP/M System und meldet Diskettenfehler nur mit 'Bad Sector'. Die genaue Beschreibung der verschiedenen Fehlermeldungen ist in Kapitel 6.2.2 bzw. 6.2.3 gegeben. Pufferanzeige einschalten (J/N) Zur besseren Kontrolle kann der Inhalt des in Kapitel 3.1.3 angesprochenen Type-ahead Puffers in der 25. Bildschirmzeile sichtbar gemacht werden. Dies ist insbesondere bei 'ver- schluckten' Tasten zur Lokalisierung des Problems sehr hilf- reich. (Nur Genie III) Monitormodus einschalten (J/N) Mit diesem Parameter kann der im Kapitel 4.8 beschriebene Monitormodus direkt nach dem Kaltstart aktiviert werden. (Nur Genie III) Uhrzeit anzeigen (J/N) Die Uhrzeit wird bei jedem Tastendruck und jedem Interrupt neu angezeigt. Bei zeitkritischen Anwendungen, kann dies zur Verlangsamung der Verarbeitungsgeschwindigkeit führen. Aus diesem Grund kann die Anzeige der Uhrzeit mit diesem Parameter unterbunden werden. (Nur Genie III) Lautsprecher einschalten (J/N) Dieser Parameter wirkt nicht auf den Lautsprecher direkt, sondern nur auf den ASCII-Code Control-G (BELL, 07H), der normalerweise einen kurzen Piepton erzeugt. Beim Arbeiten mit DFÜ kann diese Tonausgabe, die über Software realisiert ist, zum Verlust von Zeichen führen. In diesem Fall sollte der BELL-Code mit diesem Parameter ausgeschaltet werden. ASCII Zeichensatz aktivieren (J/N) Damit kann der nach dem Bootvorgang (Kaltstart) aktivierte Zeichensatz gewählt werden. Die Eingabe von 'J' wählt den US- ASCII Zeichensatz mit eckigen und geschwungenen Klammern, 'N' den deutschen Zeichensatz mit Umlauten. (Nur Genie IIs) Anzahl der Schreib/Leseversuche (1 bis 255) Der eingegebene Wert bestimmt die Anzahl der Schreib- und Leseversuche auf einer Diskette bis zur Fehlermeldung. Nach jedem Diskettenfehler wird dieser Zähler um eins erniedrigt und beim Erreichen des Wertes 0 der Fehler an den Benutzer gemeldet. Wird bei der erweiterten Fehlermeldung durch Drük- ken der CLEAR-Taste eine Wiederholung des Zugriffs gefordert, so wird die hier gewählte Anzahl von Versuchen neu gestartet. IOBYTE (0 bis 255) Das IOBYTE bestimmt die in Kapitel 5.1.5 angesprochene Zu- weisung von logischen zu physikalischen Kanälen. Normaler- weise wird das IOBYTE über den STAT-Befehl geändert, der aber nach jedem Kaltstart neu eingegeben werden muß. Im CP/M 2.2X kann die Belegung des IOBYTEs vorgewählt werden, so daß die Kanalzuweisung direkt aktiv ist. Die aktuelle Belegung des IOBYTE kann mit dem Programm IOBYTE.COM festgestellt werden. Wollen Sie eine bestimmte Kanalzuordnung fest abspeichern, so stellen Sie diese mit STAT ein und rufen dann IOBYTE auf, das Ihnen den neuen IOBYTE-Wert dann mitteilt. Cursor Type (0 bis 255) Hier kann das nach dem Kaltstart zu aktivierende Cursor- Attribut gewählt werden. Bei diesem Parameter gibt es einen wichtigen Unterschied zwischen Genie IIs und Genie III. Beim Genie III wird der hier gewählte Wert, direkt zur Programmierung des Bildschirm-Controllers benutzt. Daher sind zwar alle Werte zwischen 0 und 255 möglich, jedoch nicht unbedingt sinnvoll. Genauere Hinweise können dem Datenblatt des Controllers entnommen werden. Sinnvolle Werte beim Genie III sind: 43 Cursor aus (unsichtbar) 96 Cursor blinkender Block 0 Cursor stehender Block 107 Cursor blinkender Strich 11 Cursor stehender Strich Beim Genie IIs wird der gewählte Wert als Parameter für die Escape-Sequenz 'ESC . x' (Cursor-Attribut setzen) benutzt. Sinnvolle Werte sind daher nur die Zahlen zwischen 0 und 4, alle anderen Werte schalten den Cursor ab. Sinnvolle Werte beim Genie IIs sind: 0 Cursor aus (unsichtbar) 1 Cursor stehender Block 2 Cursor stehender Block 3 Cursor stehender Strich 4 Cursor stehender Strich Hauptlaufwerk (A bis D) Normalerweise ist das Laufwerk A: allgemeines Bezugslaufwerk im CP/M 2.2. Bei manchen Anwendungen ist das aber nicht immer gewünscht oder sinnvoll. Mit Hilfe dieses Parameters kann ein beliebiges Laufwerk als Hauptlaufwerk deklariert werden. Zeit bis zur ersten Wiederholung (1 bis 9999) Dieser Wert gibt die Anzahl der Tastaturabfragen bis zum Beginn der automatischen Tastenwiederholung an. Da die Tasta- tur per Software abgefragt wird, ist die Zeitspanne vom Drücken der Taste bis zum Beginn der Wiederholung nicht immer konstant. Je nach laufendem Programm können sich größere Unterschiede ergeben. Bei aktivierten Interrupts ist dieser Zeitunterschied nicht allzu groß, da die Tastatur konstant alle 25 msec (40 mal pro Sekunde) abgefragt wird. Durch Wahl dieses Wertes kann die Tastenwiederholung optimal an die jeweilige Anwendung ange- passt werden. In der Regel liegt dieser Wert zwischen 100 und 400. Zeit bis zur nächsten Wiederholung (1 bis 9999) Analog zum vorherigen Parameter wird hier die Anzahl der Tastaturabfragen bis zur nächsten Wiederholung, also die Wiederholfrequenz, bestimmt. Auch hier ist bei aktiviertem Interrupt etwa die Verdoppelung des Wertes notwendig. Die in der ausgelieferten Version voreingestellten Werte sind nur etwaige Anhaltspunkte, die durch etwas Ausprobieren opti- miert werden sollten. In bisherigen Versuchen haben sich Werte zwischen 10 und 50 als gut herausgestellt. Entprellzeit 1 (1 bis 9999) Die Tastaturroutine ist so ausgelegt, daß sie eine Taste immer zweimal überprüft um damit Tastenprellen zu erkennen. Entprellzeit 1 gibt die Zeit an, die zwischen den beiden Tastenabfragen liegt. Sollte es zu Tastenprellen kommen, so muß dieser Wert erhöht werden. Entprellzeit 2 (1 bis 9999) Nach einem erkannten Tastendruck wartet die Tastaturroutine eine gewisse Zeitspanne, bis der Tastencode zurückgemeldet wird. Dies trägt zum Entprellen der Tastatur bei, kann aber bei zu schnellem Tippen auch zum Verlust von Zeichen führen. In diesem Fall muß die Entprellzeit 2 verringert werden. Anzahl der Spuren (40/80 für 5 1/4 Zoll, 77 für 8 Zoll) Über diese Frage wird die Anzahl der physikalischen Spuren der jeweils vier möglichen 5 1/4 und 8 Zoll Laufwerke be- stimmt. Diese Angabe ist sehr wichtig, da daraus die Lauf- werksansteuerung bei der Bearbeitung von 40 Spur Formaten in den eingebauten 80 Spur Laufwerken abgeleitet wird. Kopfzugriffszeit (0 bis 3) Mit diesem Parameter wird für jedes Diskettenlaufwerk die Zeit bestimmt, in der der Schreib/Lesekopf dieses Laufwerks von Spur zu Spur bewegt wird. Für 5 1/4 Zoll Laufwerke gelten folgende Werte: 0 : 5 msec 1 : 10 msec 2 : 20 msec 3 : 40 msec Die eingebauten Laufwerke arbeiten mit der schnellsten Zu- griffszeit und das System ist auch entsprechend voreinge- stellt. Für 8 Zoll Laufwerke gelten die folgenden Zeiten: 0 : 3 msec 1 : 5 msec 2 : 10 msec 3 : 20 msec Im Allgemeinen ist auch hier der schnellste Wert sinnvoll, ältere Laufwerke können aber evtl. auch nur 5-10 msec ver- kraften. Die nächsten Parameter werden nur beim Genie III CP/M 2.2X abgefragt und dienen der Einstellung des Bildschrimformates. Sie entsprechen genau den Registern 0 - 7 des Bildschirm- Controllers CRTC 6845. Hier sollten die mit GDOS 2.4 (VIDEO.BAS) ermittelten Werte eingegeben werden. Weitere Informationen über den CRTC 6845 können dem entsprechenden Datenblatt entnommen werden. Horizontal Total Register (80 - 255) Horizontal Displayed Register (80) Horizontal Sync Position Register (80 - 255) Sync Width Register (0 - 255) Vertical Total Register (25 - 255) Vertical Total Adjust Register (0 - 255) Vertical Displayed Register (24 - 25) Vertical Sync Position Register (24 - 255) ## CP/M Systembefehle ## 8. CP/M Systembefehle 8.0 Einleitung Die folgenden Befehle sind fest im CP/M integriert und daher jederzeit auf Systemebene erreichbar. Sie erlauben eine mini- male Kontrolle des Systems und der auf Diskette gespeicherten Daten. Für darüber hinausgehende Operationen stehen die CP/M- Standardprogramme zur Verfügung, die jedoch als Datei auf einer Diskette erreichbar sein müssen. Im weiteren werden die folgenden Bezeichnungen verwendet: lw Laufwerksbezeichnung zwischen A und P efn Einfachname (Filename ohne ? oder *) mfn Mehrfachname (efn oder Filename mit ? und/oder *) 8.1 DIR Syntax: DIR oder DIR lw: oder DIR lw:mfn Anwendung: Ausgabe des Inhaltsverzeichnisses (Directory) des aktuellen oder angewählten Laufwerks. Bemerkung: DIR gibt keinen Aufschluß den Filestatus und die Größe der Files. Diese Werte können nur über den STAT-Befehl abgefragt werden. Die Ausgabe der Directory wird beim Drücken einer Taste sofort abgebrochen. CTRL-S stoppt die Ausgabe, die Betätigung einer beliebigen Taste führt die Ausgabe fort. 8.2 ERA Syntax: ERA mfn oder ERA lw:mfn Anwendung: Löschen eines oder mehrerer Dateien aus dem In- haltsverzeichnis. Bemerkung: ERA löscht die angegebene(n) Datei(en) nur im Inhaltsverzeichnis und gibt die durch sie besetz- ten Blöcke auf der Diskette wieder frei. Über spezielle Programme kann diese Löschung wieder rückgängig gemacht werden. Soll eine bestimmte Datei komplett gelöscht werden, so müssen die von ihr belegten Diskettenblöcke mit neuen Daten über- spielt werden. Über ERA lw:*.* können sämtliche Dateien des gewählten Laufwerks gelöscht werden. Zur Absicherung fragt das CP/M nocheinmal durch 'ALL (Y/N)?' nach, ob auch wirklich alle Dateien gelöscht werden sollen. 8.3 REN Syntax: REN efn=efn Anwendung: Änderung eines Dateinamens Bemerkung: Der erste der beiden Namen steht für die neue Dateibezeichnung, der zweite für den alten Datei- namen. Falls bereits eine andere Datei unter dem neuen Namen existiert, so bricht das CP/M den Befehl mit der Fehlermeldung 'FILE EXISTS' (Datei existiert) ab. 8.4 TYPE Syntax: TYPE efn oder TYPE lw:efn Anwendung: Auslisten einer Datei auf dem Bildschirm Bemerkung: TYPE dient vornehmlich zur Kontrolle von Textda- teien auf dem Bildschirm. Dieser Befehl gibt alle Zeichen der angegebenen Datei bis zum Erreichen des CTRL-Z Codes (1AH, 26 dez) aus. Dabei findet keine Kontrolle bezüglich der Zeichen statt, d.h. es werden auch Controlcodes ausgegeben. Dies kann bei Nicht-Textdateien zu merkwürdigen Ausgaben führen. Wie bei DIR kann die Zeichenausgabe durch CTRL-S gestoppt und über einen beliebigen Tasten- druck wieder fortgeführt werden. 8.5 USER Syntax: USER n Anwendung: Wahl eines neuen Benutzerbereichs zwischen 0 und 15 Bemerkung: Durch den Benutzerbereich kann die Directory einer Diskette in bis zu 16 Teile aufgeteilt werden. Dies ist insbesondere bei großen Laufwerksgrößen (Winchester) nützlich, um die gespeicherten Datei- en in verschiedene Gruppen zusammenzufassen. Der gewählte Benutzerbereich gilt für alle Laufwerke und läßt nur den Zugriff auf Dateien im gleichen Bereich zu. 8.6 SAVE Syntax: SAVE n efn oder SAVE n lw:efn Anwendung: Abspeichern eines Speicherblocks Bemerkung: n bezeichnet die Länge des zu sichernden Speicher- bereichs in 256-Byte Blöcken. Die Abspeicherung beginnt immer an der Adresse 0100H. ## CP/M Standardprogramme ## 9. CP/M Standardprogramme 9.0 Einleitung Als Standardprogramme sind alle die Programme bezeichnet, die zum festen Bestandteil des CP/M gehören. Diese Programme beziehen sich nur auf das CP/M 2.2-Betriebssystem und laufen ohne Änderung auch auf anderen CP/M-Rechnern. 9.1 PIP.COM Das Programm PIP.COM dient zum Kopieren von Dateien, zum Aneinanderreihen/Zusammenfassen von mehreren Dateien zu einer neuen Datei sowie dem Transport von Dateiinhalten zu Periphe- riegeräten. Der prinzipielle Syntax ist immer: PIP Ziel:=Quelle,Quelle,Quelle (Option, Option) usw. allgemein ausgedrückt PIP Laufwerk:=Laufwerk: Dateiname(n) Wenn man mehrere unterschiedliche Kopier/Transferbefehle geben muß, ist es zweckmäßig, nur einfach PIP ohne Parameter aufzurufen. PIP meldet sich dann mit einem Prompt; man braucht dann nur noch die jeweiligen Kopierbefehle einzuge- ben; das kann etwa so aussehen: PIP (meldet sich mit dem "*" Promptzeichen, hier weggelas- sen) B:=C: *.* A:=b: *.com lst:=drucker.dat usw. Am einfachsten zu Erklären ist die Handhabung des Programms mit Beispielen: gegeben sei eine Programmdiskette in A und eine formatierte Diskette in B, außerdem ein betriebsbereiter Drucker und eine Datenquelle (Akustikkoppler, anderer Rechner etc. mit richtig eingestellten Übertragungsparametern) an der SIO A. Im Beispiel seien auf DISK A unter anderem die Dateien - DRUCKER.DAT, die eine Initialisierung für den Drucker ent- hält - FORMAT.COM, Formatierprogramm für neue Disketten - FOX.DAT, beliebige Datei - FRON.COM, beliebiges Programm - F.PRN, beliebige Datei - LOTAT.COM, beliebiges Programm abgespeichert, außerdem kann von der SIO A noch das Programm M.COM eingelesen werden. Mit STAT sei die Voreinstellung SIO A ist PUN: beim zum Senden und RDR: zum Empfangen eingestellt (siehe Kap. 9.2). Das Lesen der M.COM von der SIO soll durch Ausgabe der Datei F.PRN an die SIO gestartet werden. Die mögliche Praxis mit PIP: 1. PIP b:=a: *.* Es werden alle Dateien von A nach B kopiert. 2. PIP b:=a: F*.* Es werden die Dateien von A nach B kopiert, die mit dem Buchstaben "F" beginnen, also im Beispiel FORMAT.COM, FRON.COM, FOX.DAT und F.PRN 3. PIP b:zusamm.prn=a:f.prn,fox.dat,drucker.dat Hier wird auf Laufwerk B eine Datei ZUSAMM.PRN eröffnet und in diese Datei die Dateiinhalte von F.PRN, FOX.DAT und DRUCKER.DAT zusammenhängend einkopiert. Dies ist ein Bei- spiel für die Zusammenfassung von Dateien. 4. PIP LST:=DRUCKER.DAT Der Inhalt der Datei wird zum LST - Kanal (meist der Drucker) übertragen, z.B. um den Drucker zu initialisieren (Schriftarten, Seitenlänge etc. setzen). Die Datei wird in diesem Falle bis zu einem in der Datei befindlichen Datei- endezeichen (CONTROL-Z ist gleich 1A hex) an den Drucker ausgegeben, also nicht unbedingt komplett übertragen. Man kann damit natürlich auch ASCII-Dateien ausdrucken, wird aber mit dem Ergebnis wegen der fehlenden Formatierung des Textes nicht zufrieden sein. 5. PIP PUN:=NUL:,F.Prn,NUL: In unserem Beispiel würde so die Datei F.PRN über die serielle Schnittstelle SIO A ausgegeben, zum Beispiel an einen anderen Rechner, einen seriellen Drucker oder ein Modem/Akkustikkoppler. Vor der Ausgabe würden 40 Null- Bytes übertragen, ebenso nach der Ausgabe (zum Einsynchro- nisieren des Empfängers beispielsweise). 6. PIP a:MNEU.COM=RDR: In diesem Beispiel werden die von der SIO gelesenen Daten (z.B. ein von einem anderen Rechner gesendetes Programm M.COM) automatisch in der Datei MNEU.COM gespeichert. Dies Beispiel ist in der Praxis so nicht ohne weiteres durch- führbar, da man sich auf Übertragungsprotokolle (Steuer- und Endzeichen) u.a. einigen müßte. Die Haupt- und Unterkanäle von PIP entsprechen denen von STAT, also z. B. CON, LST, PUN, RDR, sowie TTY, CRT, PTR, PTP, LPT usw. Zusätzlich stehen noch folgende Unterkanäle zur Verfügung: PRN: Ist wie LST zu betrachten (also Drucker), setzt jedoch in jeder 8. Spalte einen Tabulator, numeriert die Zei- len und tätigt alle 60 Zeilen einen Papiervorschub (FF, 0CH, 12 dez) auf die neue Seite. NUL: Erzeugt 40 Nullzeichen (nur Lesen möglich) EOF: Erzeugt den Wert 1AH (26 dez) zur Kennung des Textendes (nur Lesen möglich) INP: und OUT: Diese beiden Kanäle sprechen bestimmte Adressen inner- halb des PIP-Programms an, in die mit DDT spezielle Ein/Ausgaberoutinen geschrieben werden können. Als letzte Parameter können im PIP-Befehl noch die folgenden Optionen gesetzt werden. Diese Optionen müssen durch die öffnende eckige Klammer (Ä im deutschen Zeichensatz) vom Befehlsanfang getrennt sein. ^=CONTROL, also ^Z bedeutet CONTROL-Z eingeben In Klammern () sind frei wählbare Parameter angegeben, die Eingabe erfolgt ohne Klammern B Blockweise Übertragung. PIP speichert alle Zeichen bis zum Empfang von CTRL-S (DC3, 13H, 19 dez) zwi- schen. Diese Übertragungsform ist z.B. bei der se- riellen Schnittstelle möglich. D Lösche alle Zeichen nach der Spalte n (nur sinnvoll bei Textdateien). E Die Übertragung der Zeichen wird auch auf dem Bild- schirm dargestellt (Echo-Modus) F entfernt Seitenvorschubzeichen (0C hex) beim Über- tragen G Nimmt die Datei vom Benutzerbereich n H Teste, ob die Datei im Intel-Hex Format geschrieben ist I wie H, ignoriert werden aber die :00 Datensätze L übersetze Großbuchstaben in Kleinbuchstaben N Numeriere die Ausgabezeilen beginnen bei 1, Schritt- weite 1 O Objektcodedatei kopieren. Anders als bei Textdateien ist das Dateiende nicht durch 1AH (26 dez) gekenn- zeichnet. P Setze die Seitenlänge auf n (Voreinstellung: 60), Nach n Zeilen wird ein Seitenvorschub (FF, 0CH, 12 dez) eingefügt. Q^Z Beende das Kopieren aus der Quelldatei, wenn die Zeichenkette XXX angetroffen wird R Lies auch Dateien, die mit dem Systemattribut ver- sehen wurden (Siehe STAT Beschreibung) S^Z Wie Q, nur Beginn statt Kopierende wenn XXX auftritt T Expandiere Tabulatorzeichen (09 hex) in der Datei zu n Leerzeichen U Konvertiere Kleinbuchstaben zu Großbuchstaben V Prüfe, ob die Daten korrekt übertragen wurden. Nach dem Schreiben wird die Datei vom Ziellaufwerk noch- mals gelesen um eine einwandfreie Übertragung sicherzustellen W Überschreibe Dateien, die mit Schreibschutzattribut versehen sind (siehe STAT) Z Lösche das Paritätsbit, d. h. Zeichen über der Num- mer 127 (7F hex) in der ASCII Tabelle werden bei der Übertragung mit ihrer Zeichennummer - 128 versehen, z.B. wird dabei aus dem Wert 176 (B0 hex) der Wert 48 (30 hex). 9.2 STAT.COM STAT dient zur Einstellung und Kontrolle aller CP/M-internen Systemparameter. Hauptfunktion von STAT ist die Belegungskon- trolle einer eingelegten Diskette. Die Möglichkeiten und der Syntax des STAT-Befehls sind zum Teil äußerst umfangreich und sollen hier nur kurz angesprochen werden. Benutzte Abkürzun- gen: lw Laufwerksname zwischen A und P efn Einfachname, eindeutige Dateibezeichnung mfn Mehrfachnamen, efn oder mehrdeutige Dateibezeichnung (mit * und/oder ?) hk Hauptkanal uk Unterkanal STAT Für jedes seit dem letzten Warmstart ausgeru- fene (eingeloggte) Laufwerk wird der Disket- tenstatus und die Anzahl der freien Bytes (in kbyte) ausgegeben. STAT lw: Nur die freien Bytes des angewählten Lauf- werks werden angezeigt. STAT mfn Die Dateigröße und der Dateistatus des (der) angegebenen Dateien werden ausgegeben. STAT lw:mfn wie STAT mfn STAT lw:$attr Dem angewählten Laufwerk wird ein Attribut zugewiesen. Mögliche Laufwerksatrribute sind R/O für Read Only (nur Lesen erlaubt) oder R/W für Read Write (Lesen und Schreiben er- laubt). Durch STAT C:$R/O können jegliche Schreibzu- griffe auf das Laufwerk C bereits auf der Systemebene unterbunden werden. Die sicherste Möglichkeit ist jedoch grundsätzlich, die Schreibkerbe am Diskettenrand zuzukleben. Dieses Attribut wird nur im Speicher vermerkt und nicht auf die Diskette geschrieben (!). Bei einem Warmstart werden alle Laufwerke wieder auf R/W gesetzt. STAT mfn:$attr Der gewählten Datei wird ein Attribut zuge- wiesen. Dieses Attribut wird in der Directory vermerkt und abgespeichert (!). Folgende Attribute sind möglich: R/W Read Write: Schreiben und Lesen der Datei erlaubt. R/O Read Only: Nur Lesen der Datei erlaubt. SYS SYStem: Datei ist ein Systemfile und wird beim DIR-Befehl nicht mit angezeigt. DIR DIRectory: Datei wird beim DIR-Befehl normal behandelt. STAT lw:DSK: Diese STAT-Funktion gibt die logischen Para- meter des angegeben Laufwerks aus. Diese Parameter werden durch den PD-Befehl (siehe Kapitel 11.3) verschiedenen Diskettenformaten angepasst. Falls diese Parameter eines Fremd- formates bekannt sind, kann über das getrennt erhältlich PDRIVE-Programm ein entsprechender Eintrag im Datenfile PDRIVE.SYS gemacht wer- den. STAT hk:=uk: Dadurch wird die im Kapitel 5.1.5 angeführte Zuordnung der Haupt- und Unter-kanäle verän- dert. STAT USR: Ausgabe des zur Zeit gewählten Benutzer- bereichs und der auf dem aktuellen Laufwerk belegten Benutzerbereiche. Dies ist die ein- zige Möglichkeit, schnell die verwendeten Benutzerbereiche zu ermitteln. STAT DEV: Ausgabe der zur Zeit aktuellen Zuordnungen der Haupt- und Unterkanäle. STAT VAL: Dieser Parameter gibt eine kurze Zusammenfas- sung der Möglichkeiten des STAT-Befehls aus. 9.3 DDT.COM Das Programm DDT.COM ist ein Hilfsmittel bei der Erstellung und dem Austesten von Maschinenspracheprogrammen. Daraus folgt auch, daß es ein ideales Werkzeug zum "Patchen" (= Verändern) von Programmen bzw. Dateien allgemein ist. DDT eignet sich jedoch auch hervorragend zum ERSTELLEN von KURZEN Assemblerroutinen sowie z. B. für Drucker-Einstell- dateien (siehe Beispiel unten). Im Einzelnen kann man unter anderem - Disassemblieren, d. h. aus hexadezimalem Objektcode die für Menschen leichter lesbaren 8080-Assemblermnemonics machen. - Assemblieren, das ist der umgekehrte Weg: aus Mnemonics => Objektcode übersetzen, der für den Prozessor verarbeitbar ist. - Speicherstellen listen, verändern und ggf. ausdrucken. - Füllen der Speicherstellen mit konstanten Werten. - Setzen von Unterbrechungspunkten zum Austesten eines Pro- gramms. - Starten eines im Speicher befindlichen Programms zwecks Test. - TRACE, d. h. Verfolgen des Programmablaufs in Einzelschrit- ten mit Anzeige der Registerinhalte nach jedem Programm- schritt. - Ansehen und Ändern der CPU-Register. - Laden von *.HEX und *.COM Dateien. Wenn man ein wenig mit DDT umgehen kann, ist es ein sehr mächtiges Programm und ein gutes Hilfsmittel bei Änderungen und Neuerstellungen von *.COM Programmen. Nach dem Aufruf (bei dem auch direkt eine Datei angegeben werden kann) meldet sich DDT mit der Versionsnummer und dem DDT Prompt, einem Bindestrich. DDT erwartet dann einen der folgenden Befehle mit den jeweiligen Parametern. Die Grundform ist Befehl,Parameter,Parameter,Parameter Als Parameter kommen außer bei I nur Hexadezimalzahlen in Frage. Die Befehle im einzelnen A Eingabe von Assemblermnemonics mit Operanden => Assem- blierung z.B. A0100 => nachfolgende Mnemonics werden über- setzt und ab Speicherstelle 0100 als Objektcode abge- legt. D steht für DUMP, Speicherstellen in hexadezimal auflis- ten, hierbei sind immer 16 Bytes in einer Reihe angeor- dnet, rechts von ihnen befindet sich noch ein Feld, das evtl. ASCII Texte leicht erkennen läßt. Wenn kein von/bis angegeben wird, werden immer 12 Zeilen (a' 16 Bytes = 192 Bytes) ab 0100 hex gelistet und dann ein neuer Befehl erwartet. Wird dann nur D eingegeben, werden die nächsten 12 Zeilen a' 16 Bytes in aufstei- gender Reihenfolge angezeigt. Der Syntax bei D kann aber auch z. B. sein D0200,18FA. Hier würden die Speicherstellen von 0200hex bis 18FA hex ohne Pause gelistet, die Ausgabe läßt sich dann mit CTRL-S unter- brechen und fortführen. F damit kann man den Speicher mit einem konstanten Wert füllen. SYNTAX: FBeginn,ENDE,Füllbyte z.B. F0300,04FF,F0 füllt den Speicher von 0300 hex bis 04FF hex mit dem Byte F0 hex. Alle Speicherstellen zwischen Beginn und Ende incl. haben nach diesem Befehl den den gleichen Inhalt wie das angegebene Füllbyte. G dient zum Starten eines im Speicher befindlichen Pro- gramms zwecks Testlauf. Es können zwei Unterbrech- ungspunkte (BREAKPOINTS) gesetzt werden, bei deren Erreichen die Kontrolle an DDT zurückgegeben wird. Es genügt auch die Angabe von G, dann wird das Programm an der Speicherstelle gestartet, auf die das Register PC des Prozessors (mit Befehl X anzusehen) zeigt. SYNTAX: GStartpunkt des Programms,Unterbrechungsadres- se,Unterbrechungsadresse z.B. G0200,0300,0400 startet ein Programm im Speicher bei 0200 hex, der Programmablauf wird bei 0300 hex und bei 0400 hex unterbrochen und DDT meldet sich. Durch Eingabe von G kann dann die Programmausführung jeweis fortgesetzt werden. H dient zum Rechnen im Hexadezimalformat. SYNTAX: Hzahl1,zahl2 Die vierstellige Summe und Differenz der beiden Zahlen wird berechnet und in hexadezimaler Form ausgegeben. I dient zur Eingabe eines Dateinamens zum späteren Ein- lesen in den Speicher durch DDT. SYNTAX: IDateiname.EXT z.B. IFormat.com R dient dann zum Einlesen der mit I eingestellten Datei von Diskette. Zu R kann noch eine 2Byte Hexzahl angege- ben werden, die als positiver OFFSET dient. Man kann damit ein Programm an eine höhere als die normale Ladeadresse umleiten. SYNTAX: R bzw. ROffset z.B. R0300 lädt das mit I spezifizierte Programm 300 Bytes (hex!) höher als standardmäßig durchgeführt in den Speicher. Bei allen DDT Ladeoperationen er- scheint nach erfolgreichen Abschluß die Angabe NEXT und PC mit je einer Hexadezimalzahl. Die Zahl unter Next gibt die nächste nicht vom geladenen Programm belegte Speicherzelle an (von unten nach oben!) und PC zeigt die Startadresse dieses Programmes im Speicher an, z.B. für G. L dient zum Dissassemblieren des Speicherinhaltes (siehe oben) SYNTAX: L bzw. Lvon bzw. Lvon,bis z.B. L0200,0300 übersetzt die Inhalte der Speicherzel- len von Adresse 0200 hex bis 0300 hex in Mnemonics und zeigt diese an, ähnlich wie der D Befehl M steht für Move und man kann damit Inhalte von Speicher- bereichen auf eine andere Adresse im Speicher verschie- ben/kopieren. SYNTAX: Mvon,bis,wohin z.B. M0100,0200,0300 verschiebt/kopiert die Inhalte der Adressen 0100 hex bis 0200 hex nach 0300 hex. Der Inhalt von 0100 hex findet sich in 0300 hex wieder, der Inhalt von 0200 hex bei 0400 hex, entsprechend zwischen den Adressen. S steht für Set und erlaubt das Verändern der Inhalte einzener Speicherzellen durch Eingabe von Hexadezimal- zahlen. Die ursprünglichen Inhalte können mit ENTER übernommen werden, der S Modus kann durch Eingabe eines Punktes anstelle eines HEX-Wertes verlassen werden. SYNTAX: Sadresse z.B. S0100 fragt die Adressen ab 0100 hex nach Neuein- gaben ab. Die alten Werte und die Adresse wird dabei in tabellarischer Form angezeigt: 0100 1F _ T gestattet das Verfolgen eines Programm(Probe)ablaufes, und zwar 1 bis 65535 Programmschritte. SYNTAX: T oder TAnzahl der Schritte z.B. T100 im ersten Fall wird nur 1 Befehl bearbeitet, im zweiten Fall 256 Befehle (100H = 256 dez). Bei Beginn und Ende der T-Aktion wird der aktuelle Regis- terstand der CPU angezeigt. U wie der T-Befehl, nur wird hier kein CPU-Registerstand ausgegeben. Dies ist nützlich, wenn vom Testprogramm erstellte Bildschirminhalte zur Überprüfung erhalten werden sollen. X läßt die Betrachtung und Veränderung der CPU-Register zu. SYNTAX: X bzw. Xr z.B. bei XH kann man den Inhalt des HL-Registers durch Eingabe eines Hexwertes verändern. Als Beispiel für die Benutzung von DDT soll hier die Erstel- lung einer Datei für die Druckerinitialisierung dienen. Gegeben sei, daß der Drucker folgende Steuerzeichen benötigt, um gewisse druckerspezifische Parameter zu initialisieren: 1B 40 1B 6C 0A 1B 4D (alles hexadezimal) Durchführung: DDT aufrufen, S0100 eingeben, anschließend die obigen Bytes, nach jedem Byte ENTER drücken, um zur nächsten Speicherzelle zu gelangen. Nach dem Byte 4D darf man das CTRL-Z nicht vergessen, da PIP z.B. sonst das Dateiende nicht erkennt. Das Byte 1A hex ist der Wert von CTRL-Z und deshalb das einzige Byte, das bei solchen Aktionen NICHT vor dem Ende vorkommen darf!! Nach Eingabe von D0100 müßte jetzt u.a. folgendes zu sehen sein: 0100 1B 40 1B 6C 0A 1B 4D 1A usw. Wenn dies so ist, ist der Hauptteil bereits getan. Leider kann man die Datei von DDT aus nicht abspeichern. Man muß DDT verlassen, und zwar geht das immer mit CTRL-C oder BREAK, woraufhin sich das bekannte CP/M mit dem Systemprompt meldet. Als nächste Eingabe muß unbedingt der Speicherbefehl erfol- gen, da bei anderen Eingaben unsere erstellte Arbeit, die sich ja nur im Speicher befindet und zudem noch an einer Stelle, die von jedem Programm bei Aufruf überschrieben wird (auch bei erneutem DDT.COM Aufruf!!!). Also den eingebauten CP/M Befehl SAVE benutzen, und zwar SAVE 1 DRUCKER.DAT. Bei Änderungen in Programmen mit DDT müssen diese in der gleichen Art nach der Änderung gespeichert werden, sinnvol- lerweise zunächst unter einem anderem Namen, bis die Änderung getestet ist! Nützlich ist hierbei der Hinweis NEXT bei Laden eines Programms von DDT, da man aus dieser HEX-Zahl leicht die Anzahl der bei SAVE anzugebenden Blöcke errechnen kann (höchstwertiges Byte in Dezimal = Anzahl der Blöcke). Die Datei DRUCKER.DAT kann nun mit PIP LST:=Drucker.dat zum Drucker übertragen werden. Wenn dabei das Dateiendezeichen für PIP, das 1A hex (=CTRL-Z) bei der Dateierstellung nicht am Ende eingegeben wurde, wird von PIP auch noch die restli- chen Bytes des 256 Byte Blocks als druckbare Zeichen senden. 9.4 SUBMIT.COM Das Standardprogramm SUBMIT.COM erlaubt die Abarbeitung soge- nannter Batchfiles. Diese Dateien stellen eine Aneinander- reihung von normalen Eingaben von der Tastatur dar (die Datei "ersetzt" sozusagen den Bediener!) und lassen sich z. B. mit WORDSTAR oder dem Editor ED.COM komfortabel und schnell er- stellen. Ein praktisches Beispiel: Auf Laufwerk B soll eine fabrikneue Diskette formatiert und mit dem CP/M Betriebssystem versehen werden. Außerdem sollen auf die neue Diskette alle direkt aufrufbaren Programme von A kopiert werden (COM-Files). Der "normale" Arbeitsvorgang: Format b: .... Warten ID b:S80 DSDD .... Warten PIP b:=a: *.com .... Warten man kann schlecht eine andere Arbeit anfangen, da zwischen- durch immmer wieder Tastatureingaben notwendig werden. Der "Komfortweg", insbesondere, wenn man obigen Vorgang oft durchführen muß: mit ED durchgeführt ED Copy.sub ED meldet sich mit *: I eingeben, dann format b: id b:s80 dsdd pip b:=a: *.com dir b: ED kommt wieder mit *: E eingeben, dann meldet sich CP/M mit dem Systemprompt zurück. submit copy (auf der Diskette vorhanden ist) nur dieser Befehl. Dies war ein einfaches Beispiel, um sehr schnell die Funktion von SUBMIT zu verdeutlichen. Der prinzipielle Ablauf ist jedoch immer der gleiche: Be- fehlsdatei erstellen, mit der Endung .SUB abspeichern und Submit Dateiname aufrufen. Bei der Erstellung der .SUB Datei gibt es eine Hauptfußangel: Das letzte Zeichen muß immer ein CONTROL-Z sein (1AH, 26 dez), ist dies nicht der Fall, so kommt es zu einer Fehler- meldung und das Programm steigt aus. Der Ablauf von SUBMIT ist folgender: Nach dem Aufruf mit der Parameterübergabe (xxxx.SUB Datei) liest SUBMIT die angegebene Datei vom ENDE her und legt eine Datei $$$.SUB an. Der erste Befehl in der *.SUB Datei ist also der letze Befehl in der $$$.SUB Datei. Danach erfolgt ein Warmstart (CONTROL- C), nachdem der CCP des CP/M immer nach einer Datei $$$.SUB sucht und diese dann ausführt (und zwar die letzte Zeile zuerst). Wenn alle Befehle abgearbeitet sind, meldet sich das CP/M mit dem Systemprompt zurück. Mit Submit läßt sich noch einiges mehr anfangen. Der grund- sätzliche Syntax lautet nämlich SUBMIT Datein.SUB param#1,param#2....... In der *.SUB Datei können nämlich Platzhalter in der Form $1 $2, allgemein "Dollar Zahl" benützt werden. Diese Platzhalter werden dann beim Aufruf der Datei durch die entsprechend mit eingegebene Parameter#1, Parameter#2 etc. ersetzt. Die Anzahl der Parameter muß allerdings immer mit der Anzahl der Platzhalter in der Datei übereinstimmen, sonst bricht Submit ab. Mit dieser Technik kann man mit einer *.SUB Datei z. B. mit mehreren Dateinamen arbeiten. Außerdem läßt sich generell von einer *.SUB als letztes Kommando eine weitere *.SUB Datei aufrufen, womit sich entsprechende Möglichkeiten ergeben. Bitte beachten Sie, daß SUBMIT die *.SUB Datei grundsätzlich auf dem Laufwerk mit der Bezeichnung A: erwartet. 9.5 XSUB.COM XSUB kann nur innerhalb einer SUBMIT-Befehlsdatei aufgerufen werden. Normalerweise wirken die Befehle einer SUBMIT-Datei nur auf Betriebssystemeben, d.h. daß über SUBMIT keine Pro- grammeingaben gemacht werden können. Ruft man als erstes Programm einer SUBMIT-Befehlsdatei XSUB auf, so wird der SUBMIT Ablauf dahingehend geändert, daß die Zeichen der Befehlsdatei immer die Tastatureingabe ersetzten. Dadurch ist es möglich, einen kompletten Programmstart mit allen Eingaben, die das Programm anfordert, automatisch ab- laufen zu lassen. Die Funktionsfähigkeit des XSUB-Programms wird allerdings nicht in allen Fällen garantiert. Es sollte daher immer ein kurzer Probelauf stattfinden, der die XSUB-Verwendung austes- tet. ## CP/M Dienstprogramme ## 10. CP/M Dienstprogramme 10.0 Einleitung Nachfolgend sind alle mitgelieferten Dienstprogramme aufge- führt. Diese Dienstprogramme sind speziell auf das Genie III/IIs CP/M 2.2X zugeschnitten und nur dort lauffähig. Am Anfang jeder Beschreibung steht die Syntax, mit der das entsprechende Programm aufgerufen werden kann. Mögliche Parameter sind in eckigen Klammern ('<' und '>') und in Kleinschrift angegeben. bezeichnet dabei einen Lauf- werksnamen im Bereich A bis D (mit oder ohne nachfolgenden Doppelpunkt). Die eckigen Klammern dürfen nicht mit eingegeben werden. 10.1 AUTO.COM Syntax: AUTO oder AUTO Anwendung: Ausführung eines bestimmtes Programms oder Befehls nach dem Kaltstart, ohne Einwirkung durch den Benutzer. Wirkung: Der als Parameter aufgeführte wird beim nächsten Bootvorgang der Systemdiskette automatisch ausgeführt. Ist kein Parameter ange- geben, so wird beim nächsten Booten kein Befehl ausgeführt und das System meldet sich sofort mit dem Prompt A>. Bemerkung: Das AUTO-Programm ändert immer den Autobefehl des gefundenen Konfigurationsfile CONFIG.SYS Der als Parameter eingegebene Befehl darf maximal 31 Zeichen umfassen. Sollen mehere Befehle nach- einander ausgeführt werden, so ist dies nur mit Programm SUBMIT und einer entsprechenden Befehls- datei (.SUB als Extension) möglich. Der AUTO- Befehl muss dann AUTO SUBMIT filename.SUB lauten. Beispiele: AUTO DIR B: Nach dem nächsten Booten der Systemdiskette wird automatisch das Inhaltsverzeichnis der Diskette im Laufwerk B angezeigt. AUTO DATUM Nach dem Booten wird sofort das aktuelle Datum angezeigt. AUTO SUBMIT START Nach dem Booten wird automatisch der Befehl SUBMIT START ausgeführt. Dadurch kann über den AUTO- Befehl auch die Ausführung mehrerer Befehle er- reicht werden. Im File START.SUB müssen die ge- wünschten Befehle stehen. AUTO Nach dem Booten wird kein Befehl ausgeführt, das System meldet sich direkt mit dem Prompt A>. 10.2 BOOT.COM Syntax: BOOT Anwendung: Kaltstart (Booten) des Betriebssystems Wirkung: Die im eingebauten EPROM vorhanden Boot-Routine wird aufgerufen. Das Verhalten des Gerätes ist somit wie nach dem Einschalten. Bemerkung: Dieses Programm soll nur zum softwaremäßig ge- steuerten Bootvorgang dienen. Im der Regel erfolgt ein Kaltstart des Systems durch Drücken der beiden RESET-Tasten. 10.3 CONFIG.COM Syntax: CONFIG Anwendung: Änderung oder Anzeige des Konfigurationsfiles CONFIG.SYS der Systemdiskette. Wirkung: Die Systemtabelle des Konfigurationsfiles wird eingelesen und die veränderbaren Parameter einzeln abgefragt. Durch Drücken der ENTER-Taste kann die Einstellung des gezeigten Parameters unverändert gelassen werden. Am Ende der Konfiguration wird die Systemtabelle wieder abgespeichert. Bemerkung: Die neue Konfiguration wird nicht in den Speicher übernommen, sondern wird erst nach dem Booten der geänderten Systemdiskette wirksam. Genauere Hin- weise auf dieses Programm und die einzelnen Para- meter befinden sich im Kapitel 7. 10.4 DATUM.COM (nur Genie III) Syntax: DATUM oder DATUM .. Anwendung: Programmierung oder Anzeige von Wochentag und Datum in die eingebaute Hardwareuhr. Wirkung: DATUM zeigt den aktuellen Wochentag und das Datum in der Form 'Heute ist Montag, der 1. Januar 1985' an. Anders als in der Statuszeile werden hier also Wochentag und Monat ausgeschrieben. Durch die Angabe eines neuen Wochentags und Datums kann die vorhandene Einstellung verändert werden. Der Parameter bestimmt den Wochentag im Be- reich 1 (für Montag) bis 7 (für Sonntag). Das Datum folgt durch ein Leerzeichen vom Wochentag getrennt. Tag, Monat und Jahr bestehen jeweils aus zwei Ziffern im Bereich jeweils 01 bis 31, 01 bis 12 und 00 bis 99. Bemerkung: Durch die Batteriepufferung der Hardwareuhr wird das Datum automatisch beim Übergang von 23:59:59 auf 00:00:00 weitergezählt. Eine selbsttätige Erkennung von Schaltjahren findet nicht statt. 10.5 FKEY.COM Syntax: FKEY Anwendung: Änderung der bestehenden Funktionstastenbelegung. Wirkung: FKEY lädt die Funktionstastentabelle (FKYTAB) des Konfigurationsfiles CONFIG.SYS und zeigt die Belegung der Funktionstasten an. Nach dem Programmstart und dem Einlesen der FKYTAB werden die 16 Funktionstastenbelegungen angezeigt. Das Ende jeden Textes ist durch einen weissen Block markiert, Controlcodes werden als invertierte Buchstaben entsprechend der ASCII- Tabelle dargestellt. z.B., ASCII-Carriage Return, entspricht der Tastenkombination CTRL-M und wird als invertiertes 'M' angezeigt. Durch die beiden Pfeiltasten Hochpfeil und Tief- pfeil kann eine der 16 Belegungen zur Änderung ausgewählt werden. Das Zeichen '>' zeigt dabei die Funktionstaste an, die durch Drücken der ENTER- Taste zur Änderung herangezogen wird. BREAK spei- chert die aktuelle Belegung auf dem gewählten Laufwerk, CLEAR bricht das Programm ohne Übernahme der Änderungen ab. Nachdem eine Funktionstaste ausgewählt wurde, befindet sich das Programm im Änderungsmodus. Der blinkende Cursor zeigt auf das erste Zeichen des Funktionstastentexts. In der untersten Zeile ist die Anzahl der noch freien Zeichen angegeben. Der dargestellte Text kann nun überschrieben werden, oder neue Zeichen nach Aktivierung des Einfügemo- dus eingefügt werden. Durch die Pfeiltasten Links- pfeil und Rechtspfeil wird der Cursor innerhalb des Textes bewegt. Tiefpfeil löscht das Zeichen an der Cursorposition, CLEAR den gesamten Text. Um auch die Eingabe von Controlcodes zu erlauben, erfolgt eine spezielle Tastaturabfrage. Dadurch ist es möglich, alle Controlcodes, insbesondere den ENTER-Code CR, mit in den Funktionstastentext zu integrieren. Der Änderungsmodus wird durch die BREAK-Taste beendet und man befindet sich danach wieder im Auswahlmodus. Bemerkung: FKEY arbeitet immer nur mit der auf der Systemdiskette befindlichen Konfigurationsfile CONFIG.SYS und speichert die neue Funktionstastenbelegung nach der Änderung auch wieder dort ab. Die Aktivierung der neuen Belegung wird am Ende des Programms explizit abgefragt. Im Auswahlmodus werden die Pfeiltasten nach ca. 1- 2 Sekunden automatisch wiederholt. SHIFT-Hochpfeil verschiebt die Markierung zum ersten und SHIFT- Tiefpfeil zum letzten Text. 10.6 FORMAT.COM Syntax: FORMAT oder FORMAT Anwendung: Das Programm FORMAT dient zur Formatierung einer Diskette. Wirkung: Bei der Formatierung wird die Diskette in Spuren und Sektoren eingeteilt, die dem Betriebssystem die Orientierung auf der Diskette bei Schreib- und Leseoperationen ermöglicht. FORMAT formatiert die Diskette im Laufwerk . Ist kein Laufwerk angegeben, so wird der Lauf- werksname gesondert abgefragt. Die Formatierung erfolgt immer in dem für dieses Laufwerk gewählten Format. Bemerkung: Mit Hilfe des Formatprogramms können alle vom CP/M 2.2X unterstützten Formate bearbeitet werden. Das FORMAT-Programm beginnt bei der Formatierung einer Diskette immer auf der Spur 0. Während der Formatierung wird die bearbeitete Spurnummer und Diskettenseite angezeigt. Im Normalfall wird die Formatierung nicht nochmals überprüft, da dies einen ziemlichen Zeitverlust bedeutet. Über den Parameter '/V' kann jedoch eine Überprüfung erzwungen werden. Wird dabei ein Fehler erkannt, so erfolgt die Ausgabe eines kurzen Pieptons und die Formatierung der fehlerhaften Spur wird wie- derholt. Durch Drücken der BREAK-Taste ist jederzeit der Abbruch einer begonnen Formatierung möglich. Über den Parameter '/W' wird explizit auf die zu formatierende Diskette gewartet, ohne diesen Parameter beginnt die Formatierung sofort. Ist das aktuelle und das zur Formatierung gewählte Laufwerk identisch, so wird der Parameter '/W' automatisch gesetzt und die Diskette getrennt angefordert. Beispiele: FORMAT Das FORMAT-Programm wird gestartet und fragt nach dem Laufwerk, das formatiert werden soll. An die- ser Stelle ist durch Drücken der BREAK-Taste oder CTRL-C ein sofortiger Programmabbruch möglich. Nach der Eingabe einer korrekten Laufwerksbezeich- nung wird sofort mit der Formatierung begonnen. FORMAT B Die Diskette im Laufwerk B wird in dem durch PD für dieses Laufwerk gewählten Format formatiert. Der Beginn der Formatierung erfolgt sofort, ohne zusätzliche Bestätigung. Ein Abbruch ist nur über die BREAK-Taste möglich. FORMAT B/V Die Diskette im Laufwerk B wird formatiert und jede Spur einzeln auf eine korrekte Formatierung hin überprüft. FORMAT B/W Das Format-Programm wartet mit der Formatierung bis die gewünschte Diskette ins Laufwerk B eingelegt wurde. 10.7 ID.COM Syntax: ID : Anwendung: Aufbringen eines Boot-Laders mit der der Formatkennung auf die im Laufwerk eingelegte Diskette. Wirkung: ID formatiert die Spur 0, Vorderseite und Rückseite, der gewählten Diskette mit je 10 Sektoren a 256 Bytes (Single Density) und bringt den Bootsektor (SYSBOOT.SYS), den CPM-Loader (LOADER.SYS) und die Formatkennung (benötigt PDRIVE.SYS) auf. Die Spur 1 (Vorder- und Rückseite) wird mit je 10 Sektoren a 512 Bytes (Double Density) formatiert und das CP/M 2.2 Betriebsystem (CPM22X.SYS) darauf kopiert. Bootfähig wird eine Diskette jedoch erst, wenn die beiden Systemfiles CONFIG.SYS und BIOS22X.SYS auf die Diskette kopiert werden. Bemerkung: Der Syntax des ID-Befehls entspricht genau dem des PD-Befehls. Der ID-Befehl beeinflusst jedoch nicht die den Laufwerken zugewiesenen Formate, sondern legt nur auf der Diskette des gewählten Laufwerks zwei Systemspuren an. Hat das gewählte Format weniger als zwei reservierte Systemspuren, wie z.B. das D80 DSDD Format, so ist eine Kennung nicht möglich. Genauso wie der PD-Befehl, prüft auch das ID- Programm die Verträglichkeit zwischen Laufwerk und Format bezüglich 5 1/4 oder 8 Zoll. Soll eine bootfähige Diskette erstellt werden, so muß die Kennung mit einem Laufwerk gleichen Typs wie das Bootlaufwerk erfolgen. Ist z.B. die Kennung mit einem als 40-Spur gekennzeichneten Laufwerk erfolgt, so kann diese Diskette nicht in einem 80- Spur Laufwerk gebootet werden. ACHTUNG: Fremde Systemdisketten können nach der Anwendung des ID-Befehls nicht mehr auf dem fremden System gebootet, wohl aber bearbeitet werden. Der Benutzer ist für die korrekte Formatzuweisung auf die entsprechende Diskette verantwortlich. Die Bearbeitung einer Diskette mit einer fehlerhaften Formatkennung kann zu unvorhersehbaren Reaktionen und im Extremfall zu Datenverlust auf dieser Diskette führen. Überprüfen Sie daher vor der Formatzuweisung, ob die Diskette tatsächlich das entsprechende Format hat. Beispiele: ID B:S80 DSDD Die im Laufwerk B: befindliche Diskette erhält die Formatkennung S80 DSDD 10.8 INFO.COM Syntax: INFO Anwendung: Angabe eines Informationstextes zur schnelleren Identifizierung der gebooteten Systemdiskette. Insbesondere bei für verschiedene Anwendungen konfigurierten Systemen ist diese Informations- zeile äußerst nützlich. Wirkung: Nach Aufruf, fragt das Programm nach einer Text- zeile, die bis zu 80 Zeichen umfassen kann. Diese Informationszeile wird beim nächsten Bootvorgang nach dem LOGO ausgegeben. Bemerkung: Wie auch beim AUTO-Programm wird die Änderung der Informationszeile nur in dem gefundenen Konfigu- rationsfile CONFIG.SYS ausgeführt. Wird bei der Konfiguration der entsprechenden Systemdiskette die Anzeige des LOGOs unterbunden, so wird beim Booten nur die Informationszeile ausgegeben. Dies kann insbesondere für Benutzer die nicht mit dem System vertraut sind, eine große Hilfe bedeuten. 10.9 IOBYTE.COM Syntax: IOBYTE Anwendung: Anzeige des aktuellen IOBYTE-Wertes. Wirkung: Der Wert der Speicherstelle 0003H (=CP/M IOBYTE) wird dezimal ausgegeben. Bemerkung: Dieses Programm dient zur Festlegung des Para- meters IOBYTE bei der Systemkonfiguration mithilfe von CONFIG.COM. Das IOBYTE steuert die Schnitt- stellenzuordnung der verschiedenen CP/M-Haupt- kanäle CON,PUN,RDR und LST. Diese Zuordnung ist normalerweise festgelegt (siehe Kapitel *.*), kann aber mit dem STAT-Programm verändert werden. Soll eine neugewählte Einstellung auch nach dem nächs- ten Kaltstart noch gültig sein, so muß der neue IOBYTE-Wert bei der Systemkonfiguration eingegeben werden. 10.10 PD.COM Syntax: PD oder PD : oder PD S : Anwendung: Auswahl eines Diskettenformats zum Lesen, Schrei- ben und Formatieren von Disketten in Fremdforma- ten. Welche Formate möglich sind, ist in der Tab- elle im Anhang C angegeben. Wirkung: PD zeigt die aktuellen Formateinstellungen der acht möglichen Diskettenlaufwerke an. PD : weist dem Diskettenlaufwerk das Format mit dem Namen zu, speichert die neue Belegung jedoch nicht in CONFIG.SYS ab. PD S : weist dem Diskettenlaufwerk das Format mit dem Namen zu und speichert die neue Belegung jedoch in CONFIG.SYS ab. Damit steht die gewählte Belegung nach dem nächsten Kaltstart wieder zur Verfügung. Bemerkung: PD benutzt zur Verwaltung der verschiedenen Forma- te das Datenfile PDRIVE.SYS. Wird dieses File nicht auf dem aktuellen Laufwerk gefunden, so wird automatisch das Laufwerk A: angewählt und die Datei dort gesucht. Ist PDRIVE.SYS nicht erreichbar, so erfolgt eine entsprechende Fehlermeldung. PD prüft bei der Formatzuweisung ab, ob dieses Format mit dem gewählten Laufwerk verträglich ist. So ist z.B. nicht möglich, einem 5 1/4 Zoll Laufwerk ein 8 Zoll Format oder einem 40 Spur Laufwerk ein 80 Spur Format zuzuweisen. Beispiele: PD B:D80 DSDD Alle weiteren Diskettenoperationen mit dem Lauf- werk B: erfolgen im Format 'D80 DSDD' PD Die zur Zeit aktuellen Formate der vier möglichen Diskettenlaufwerke werden angezeigt. 10.11 SIO.COM (nur Genie IIs) Syntax: SIO oder SIO ,,,, ,,,, , Anwendung: Initialisierung der seriellen Schnittstellen auf neue Parameter oder Anzeige der derzeit gültigen Parameter beider SIO-Schnittstellen. Wirkung: Ohne Paramter, zeigt SIO die aktuellen Einstel- lungen der beiden seriellen Kanäle, durch die unten aufgeführten Parameter. Eine Änderung der Einstellung kann die Eingabe der möglichen Parameter in beliebiger Reihenfolge und beliebig oft erfolgen. : A oder B A: Alles weitere bezieht sich auf SIO Kanal A (Default, falls weder A noch B angegeben sind) B: Alles weitere bezieht sich auf SIO Kanal B : 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200, 9600 oder 19200 Die Baudrate bestimmt die Übertra- gungsgeschwindigkeit in Bits pro Se- kunde (Baud). Die eingestellt Baud- rate wird sowohl beim Empfang als auch beim Senden von Zeichen benutzt. : EVEN, ODD oder NO Die Parität bestimmt die Erzeugung des Paritätsbits. Dieses Bit wird bei der seriellen Übertragung zur Fehler- prüfung benutzt. Eine einwandfreie Übertragung ist nur gewährleistet, wenn beide kommunizierenden Schnitt- stellen mit der gleichen Parität arbeiten. : 5, 6, 7 oder 8 Die Wortlänge bestimmt die Anzahl der gültigen Bits pro übertragenem Zei- chen. Für Textübertragung sind 7 oder 8 Bit. : 1, 1.5 oder 2 Die Anzahl der Stopbits bestimmt die Zahl der Bits die nach einem Zeichen zu Synchronisationszwecken gesendet werden. Wie auch bei der Parität ist eine gleiche Einstellung der Stopbits bei beiden kommunizierenden Schnitt- stellen erforderlich. 1.5 Stopbits werden nur bei einer Wortlänge von 5 Bits erzeugt. : IN: oder OUT: (Der Doppelpunkt ist notwendig !) IN: Die nächste Protokollangabe ist für das Protokoll bei der Eingabe. (damit wird also das sendende Gerät gesteuert; z.b. angehalten, falls das CP/M keine weiteren Daten entgegen- nehmen kann) OUT: Die nächste Protokollangabe ist für das Protokoll bei der Ausgabe (damit zeigt das empfangende Gerät z.b. Drucker an, ob es weitere Daten übernehmen kann) : NONE, RTS, DTR oder XON Das eingestellte Protokoll steuert den Datenaustausch über die serielle Schnittstelle, um Zeichenverluste zu verhindern. Diese spezielle Übertra- gungssteuerung wird auch als 'Hand- shaking' bezeichnet, da sich die beiden kommunizierenden Schnittstel- len über das eingestellte Protokoll über die Zeichenübertragung verstän- digen. XON: Aktivierung des Software-Proto- kolls durch die ASCII-Zeichen XON und XOFF: XON (ASCII DC1, 11H) = Datenfreigabe XOFF (ASCII DC3, 13H) = Datensperrung Bei OUT: XON, wartet das CP/M nach EMPFANG eines XOFF mit der weiteren Datenausgabe solange, bis ein XON empfangen wird. Damit ist eine Druckeransteuerung möglich. Beachten Sie, daß beim XON-Protokoll der Datenein- und ausgabekanal der SIO benutzt wird. Die RS-232 Steuerlei- tungen DTR und RTS werden auf aktiv gehalten, CTS und DCD werden nicht abgefragt. RTS: Die Steuerung erfolgt über die RTS-Leitung (bei IN: RTS) bzw. CTS- Leitung (bei OUT: RTS). Über die RTS- Leitung wird dem sendenden Gerät mit- geteilt, ob das CP/M weitere Daten übernehmen, das sendende Gerät also weiter senden kann. Durch Abfrag der CTS-Leitung wird festgestellt, ob das empfangende Gerät weitere Daten an- nehmen, das CP/M also weiter senden kann. Die Leitung DTR wird aktiv gehalten, DCD wird nicht abgefragt. RTS: Die Steuerung erfolgt über die DTR-Leitung (bei IN: DTR) bzw. DCD- Leitung (bei OUT: DTR). Über die DTR- Leitung wird dem sendenden Gerät mitgeteilt, ob das CP/M weitere Daten übernehmen, das sendende Gerät also weiter senden kann. Durch Abfrag der DCD-Leitung wird festgestellt, ob das empfangende Gerät weitere Daten an- nehmen, das CP/M also weiter senden kann. Die Leitung RTS wird aktiv gehalten, CTS wird nicht abgefragt. NONE: Kein Protokoll. Die RS-232 (V24) Steuerleitungen DTR und RTS werden auf aktiv gehalten, CTS und DCD werden nicht abgefragt. : WAIT oder NOWAIT Bei WAIT wird das nächste Zeichen erst dann an den Schnittstellen- controller gegeben, wenn das vor- herige Zeichen vollständig ausge- sendet ist. Bei NOWAIT kann bereits während ein Zeichen gesendet wird, das nächste Zeichen an den Controller übergeben werden. : BTX oder NOBTX BTX: Aktivierung des BTX-Modus (ge- trennte Baudraten für Senden und Empfangen auf Kanal A). Bei BTX gilt die Baudrate von Kanal A für den Empfang und die Baudrate von Kanal B für das Senden. Kanal B hat in dieser Einstellung die Baudrate von Kanal B für Empfang und Senden. NOBTX: Aufhebung des BTX-Modus. Die Baudrate des Kanal A gilt wieder für Empfangen und Senden auf diesem Kanal. : SAVE Die neue Einstellung wird im CONFIG.SYS-File gespeichert. Nor- malerweise greift das SIO-Programm nur lesend auf die CONFIG.SYS-Datei zur Anzeige aller Parameter zu. Die neue Einstellung wird zwar aktiviert, jedoch nicht gespeichert. Spätestens nach dem nächsten SIO-Aufruf oder Kaltstart, wird die in der CONFIG.SYS-Datei gespeicherte Ein- stellung wieder übernommen. Der Para- meter SAVE speichert die neue Ein- stellung im CONFIG.SYS-File ab, so daß diese auch nach dem nächsten Kaltstart wieder zur Verfügung steht. 10.12 UHR.COM (nur Genie III) Syntax: UHR Anwendung: Ausgabe von Wochentag, Datum und Uhrzeit Wirkung: Dieses kleine Programm liest aus den letzten 23 Stellen der Statuszeile den Wochentag, das Datum und die Uhrzeit aus und gibt diese aus. Bemerkung: Dieses Programm ist vornehmlich zur Markierung von Druckerprotokollen gedacht. Bei Directory-Ausdruk- ken oder ähnlich über CTRL-P kann durch vorherigen Aufruf von UHR, der Ausdruck mit Datum und Uhrzeit versehen werden. 10.13 V24.COM (nur Genie III) Syntax: V24 oder V24 ,,,, , Anwendung: Initialisierung der seriellen Schnittstelle auf neue Parameter oder Anzeige der derzeit gültigen Schnittstellenparameter. Wirkung: V24 zeigt die aktuelle Einstellung der seriellen Schnittstelle durch die unten aufgeführten Parameter. Die Änderung der Einstellung kann die Eingabe der möglichen Parameter in beliebiger Reihenfolge und beliebig oft erfolgen. : 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200, 9600, 19200 oder 38400 Die Baudrate bestimmt die Übertra- gungsgeschwindigkeit in Bits pro Se- kunde (Baud). Die eingestellt Baud- rate wird sowohl beim Empfang als auch beim Senden von Zeichen benutzt. : EVEN, ODD oder NO Die Parität bestimmt die Erzeugung des Paritätsbits. Dieses Bit wird bei der seriellen Übertragung zur Fehler- prüfung benutzt. Eine einwandfreie Übertragung ist nur gewährleistet, wenn beide kommunizierenden Schnitt- stellen mit der gleichen Parität arbeiten. : 5, 6, 7 oder 8 Die Wortlänge bestimmt die Anzahl der gültigen Bits pro übertragenem Zei- chen. Für Textübertragung sind 7 oder 8 Bit. : 1, 1.5 oder 2 Die Anzahl der Stopbits bestimmt die Zahl der Bits die nach einem Zeichen zu Synchronisationszwecken gesendet werden. Wie auch bei der Parität ist eine gleiche Einstellung der Stopbits bei beiden kommunizierenden Schnitt- stellen erforderlich. 1.5 Stopbits werden nur bei einer Wortlänge von 5 Bits erzeugt. : NONE, RTS, DTR oder XON Das eingestellte Protokoll steuert den Datenaustausch über die serielle Schnittstelle, um Zeichenverluste zu verhindern. Diese spezielle Übertra- gungssteuerung wird auch als 'Hand- shaking' bezeichnet, da sich die beiden kommunizierenden Schnittstel- len über das eingestellte Protokoll über die Zeichenübertragung verstän- digen. NONE unterstützt kein Protokoll und setzt die V24-Steuerleitungen DTR und RTS auf 'high'. DTR benutzt den DTR- bzw. DSR-An- schluß der Schnittstelle für die Steuerung. Dies ist beim Anschluß eines Druckers üblich. RTS benutzt den RTS- bzw. CTS-An- schluß für die Steuerung. Dies ist beim Datenaustausch mit anderen Rech- nern üblich. XON ist das bei der Übertragung über Akustikkoppler (Telefon) übliche Protokoll, wird jedoch nur beim Senden erkannt. Wurde ein XOFF empfangen, so wird das nächste Zeichen erst nach einem XON gesendet. Dadurch kann die 'Gegenstelle' das Senden von Zeichen steuern. : WAIT oder NOWAIT Bei WAIT wird das nächste Zeichen erst dann an den Schnittstellen- controller gegeben, wenn das vor- herige Zeichen vollständig ausge- sendet ist. Bei NOWAIT kann bereits während ein Zeichen gesendet wird, das nächste Zeichen an den Controller übergeben werden. 10.14 ZEIT.COM (nur Genie III) Syntax: ZEIT oder ZEIT : Anwendung: Einstellung oder Anzeige der aktuellen Uhrzeit. Wirkung: ZEIT gibt die aktuelle Uhrzeit in Stunden, Minuten und Sekunden aus. Zum Setzen der Uhrzeit muß die gewünschte Stunde und Minute als jeweils zweistellige Zahl als Parameter angegeben werden. Da die Uhr beim Programmieren einer neuen Uhrzeit die Sekunden automatisch auf 00 setzt, wird die eingegebene Zeit erst nach Drücken der ENTER-Taste gesetzt. Die Zeiteinstellung ist im allgemeinen nur einmal notwendig, da die Hardwareuhr eine eigene Batterie besitzt und auch bei ausgeschaltetem Gerät weiter- läuft. Bei einer fehlerhaften Justage der Uhr kann es jedoch zu Gleichlaufproblemen kommen, die bis zu einer Minute pro Monat ausmachen können. In diesen Fällen muß die Programmierung der Uhr in regelmäßige Abständen wiederholt werden. ## Systeminterne Informationen ## A. Systeminterne Informationen A.1 Speicheraufteilung unter CP/M 2.2 Adresse Nutzung ------------------------------------------------------------- 0000H-0002H Sprung zur Warmstart-Routine im BIOS 0003H IOBYTE 0004H Nummer des aktuellen Laufwerks (00H = A bis 0FH = P) 0005H-0007H Sprung nach BDOS+6H (Software-Schnittstelle zum CP/M für Anwenderprogramme) 0008H-0037H frei 0038H-003AH RST 38H, Interruptadresse. Bei aktivierten Interrupts, löst jeder Interrupt einen Sprung- befehl zu dieser Adresse aus. Unbenutzt bei abgeschalteten Interrupts. 003BH-005BH frei 005CH-007FH File Control Block für Anwenderprogramme 0080H-00FFH Arbeitspuffer für den CCP Die weitere Speicheraufteilung ist bei den verschiedenen Geräten unterschiedlich. Auch kann keiner der im folgenden angegebenen Werte für weiter Versionen garantiert werden. Gültig für die Größe der TPA ist immer der Start des BDOS, dessen Adresse in den Speicherstellen 0006H, 0007H steht. A.1.1 Speicheraufteilung beim CP/M 2.2XV3 (Genie III) Adresse Nutzung ------------------------------------------------------------- 0100H-CEFFH Freier Anwenderspeicher (TPA) CF00H-D6FFH CCP D700H-E4FFH BDOS E500H-FFFFH BIOS (konstanter Teil) A.1.2 Speicheraufteilung beim CP/M 2.2XV1 (Genie IIs) Adresse Nutzung ------------------------------------------------------------- 0100H-CDFFH Freier Anwenderspeicher (TPA) CE00H-D5FFH CCP D600H-E3FFH BDOS E400H-FFFFH BIOS (konstanter Teil) A.2 Aufteilung der Systemdiskette Auf jeder Systemdiskette sind die ersten beiden Spuren (Spur Nummer 0 und 1) als Systemspuren genutzt. Daher kann auch nur von einem solchen Format gebootet werden, daß mindestens 2 Reserved Tracks hat. Spur 0 ist beidseitig mit je 10 Sektoren a 256 Bytes (ein- fache Dichte) formatiert. Beim Bootvorgang (Kaltstart) wird der Sektor 0 der Spur 0 vom eingebauten Urlader-EPROM auf die Adressen 4200H bis 42FFH geladen und die weitere Programmaus- führung dorthin übergeben. Dieser Bootsektor liest dann 16 weitere Sektoren (9 von der Vorderseite, 7 von der Rückseite) in den Speicher ab 0D300H (Genie III) bzw. 0D200H (Genie IIs). Der so geladene Programmteil ist der LOADER, auf der Diskette als LOADER.SYS verfügbar. Dieser LOADER liest die beiden Files CONFIG.SYS und BIOS22X.SYS, konfiguriert das System und startet das CP/M. Spur 1 ist beiseitig mit je 10 Sektoren a 512 Bytes in dop- pelter Dichte formatiert. Auf dieser Spur steht das CP/M 2.2 Betriebssystem in den beiden Teilen CCP und BDOS. Diese Teile werden bei jedem Warmstart von dieser Spur in den Speicher unterhalb des BIOS gebracht. Die Aufteilung aller weiteren Spuren ist abhängig vom jeweils benutzten Format. Die Aufteilung der ersten beiden Spuren sieht folgendermaßen aus (Adressangaben für Genie III, beim Genie IIs 0100H ab- ziehen) Spur Sektor Seite Adresse Nutzung 0 0 V 4200H Bootsektor 0 1 V D300H LOADER 0 2 V D400H LOADER 0 3 V D500H LOADER 0 4 V D600H LOADER 0 5 V D700H LOADER 0 6 V D800H LOADER 0 7 V D900H LOADER 0 8 V DA00H LOADER 0 9 V DB00H LOADER 0 0 R DC00H LOADER 0 1 R DD00H LOADER 0 2 R DE00H LOADER 0 3 R DF00H LOADER 0 4 R E000H LOADER 0 5 R E100H LOADER 0 6 R E200H LOADER 0 7 R unbenutzt 0 8 R unbenutzt 0 9 R unbenutzt 1 0 V CF00H CCP 1 1 V D100H CCP 1 2 V D300H CCP 1 3 V D500H CCP 1 4 V D700H BDOS 1 5 V D900H BDOS 1 6 V DB00H BDOS 1 7 V DD00H BDOS 1 8 V DF00H BDOS 1 9 V E100H BDOS 1 0 R E300H BDOS 1 1 R unbenutzt 1 2 R unbenutzt 1 3 R unbenutzt 1 4 R unbenutzt 1 5 R unbenutzt 1 6 R unbenutzt 1 7 R unbenutzt 1 8 R unbenutzt 1 9 R unbenutzt ## Videokommandos ## B. Videokommandos Die CP/M 2.2X Versionen für die Geräte Genie IIs (Speed- master) und Genie III unterscheiden sich vor allem in der Anzahl der unterstützten Videokommandos. Daher sind die im folgenden aufgeführten Control- und Escapesequenzen mit (2) für Genie IIs und (3) für Genie III gekennzeichnet. Videokommandos ohne zusätzliche Kennung sind auf beiden Geräten gültig. B.1 Controlsequenzen Als Controlsequenzen werden die Videobefehle bezeichnet, die nur ein Byte benötigen. Jeder Befehl ist durch die Controlse- quenz, den hexadezimalen Wert, den dezimalen Wert und die Abkürzung gemäß dem ASCII-Standard. CTRL-G 07 7 BEL Bell Piepston ausgeben. CTRL-H 08 8 BS Backspace Backspace, Cusor ein Zeichen nach links ohne das Zeichen zu löschen. Um das Zeichen an der Cursorposition zu löschen, müssen die drei Codes Backspace,Space,Backspace benutzt werden. CTRL-I 09 9 HT Horizontal Tab TAB, Cursor zur nächsten Tabulatorposition. CTRL-J 0A 10 LF Linefeed Cursor eine Zeile nach unten. Nach Erreichen der unters- ten Zeile, wird der Bildschirminhalt eine Zeile nach oben verschoben. (vgl. SYN) CTRL-K 0B 11 VT Cursor Up Cursor eine Zeile nach oben. Nach Erreichen der obersten Zeile, wird dieser Code ignoriert. CTRL-L 0C 12 FF Cursor Forward Cursor ein Zeichen nach rechts. Nach Erreichen der letz- ten Bildschirmposition, wird dieser Code ignoriert. CTRL-M 0D 13 CR Carriage Return Cursor zum Anfang der aktuellen Zeile. Um den Cursor an den Anfang der nächsten Zeile zu positionieren, müssen die beiden Codes CR und LF ausgegeben werden. CTRL-V 16 22 SYN Cursor Down Cursor eine Zeile nach unten. Nach Erreichen der unters- ten nicht geschützten Zeile, wird dieser Code ingno- riert. (vgl. LF) CTRL-Z 1A 26 SUB Clear Screen Bildschirm löschen und Cursor in die linke obere Ecke. Dieser Code wirkt nur auf die ungeschützten Zeilen. CTRL-Ä 1B 27 ESC Escape ESC hat keine eigene Funktion, sondern dient zur Ein- leitung der im Abschnitt B.2 beschriebenen Escape- Sequenzen. CTRL-ß 1E 30 RS Home Cursor in die linke obere Ecke. CTRL-_ 1F 31 VS New Line Entspricht der Sequenz CR und LF. B.2 Escapesequenzen Als Escapesequenzen werden alle Terminalkommandos bezeichnet, die ein 'darstellbares' Zeichen beinhalten. Als Unterschei- dung zu den darstellbaren Zeichen wird der Escape-Code (ESC, 1B hex, 27 dezimal) vorangestellt. Neben der Escapesequenz gemäß dem ASCII-Standard sind auch die entsprechenden hexadezimalen und dezimalen Werte aufge- führt. ESC ) 1B 29 27 41 Half Intensity On Inverse Schrift ein. Leerzeichen werden nicht inver- tiert. ESC ( 1B 28 27 40 Half Intensity Off Inverse Schrift aus. (entspricht ESC G0) ESC M 1B 4D 27 77 Transmit Terminal ID Gerätebezeichnung und BIOS-Versionsnummer zurückmelden. Die Rückmeldung besteht aus 5 Zeichen, der Gerätebe- zeichnung ('2' für Genie IIIs und Speedmaster, '3' für Genie III), einem Komma, der Versionshauptnummer, einem Punkt und der Versionsunternummer. Eine typische Rück- meldung auf dem Genie III wäre die folgende Zeichen- kette: '3,1.0' (Genie III, BIOS-Version 1.0) ESC P 1B 50 27 80 Page Print with CR LF (3) Bildschirm ausdrucken. Dieser Befehl druckt den gesamten Bildschirminhalt über den aktuellen LST:-Kanal aus. ESC N 1B 4E 27 78 Page Edit (3) Seiteneditierung einschalten. Der 'Bereich' der Editier- befehle wird bis zum Ende der Bildschirmseite ausge- dehnt. In der Statuszeile wird INSP oder EDTP angezeigt. ESC O 1B 4F 27 79 Line Edit (3) Zeileneditierung einschalten. Der 'Bereich' der Editier- befehle wird durch das Ende der Cursorzeile begrenzt. In der Statuszeile wird INSL oder EDTL angezeigt. ESC E 1B 45 27 69 Insert Line Zeile einfügen. Die aktuelle Zeile und alle tieferen Zeilen werden nach unten verschoben. Die letzte Bild- schirmzeile fällt weg und die aktuelle Zeile durch Leer- zeichen ersetzt. ESC R 1B 52 27 82 Delete Line Zeile löschen. Die aktuelle Zeile wird gelöscht und alle tieferen Zeilen nach oben verschoben. Die letzte Bild- schirmzeile wird durch Leerzeichen ersetzt. ESC Q 1B 51 27 81 Insert Character (3) Zeichen einfügen. Das Zeichen an der Cursorposition und alle Zeichen rechts davon werden eine Spalte nach rechts verschoben. Je nach aktuellem Editierbereich (siehe ESC N und ESC O) geht das letzte Zeichen der Zeile bzw. Seite verloren. An der Cursorposition wird ein Leer- zeichen eingesetzt. ESC W 1B 57 27 87 Delete Character (3) Zeichen löschen. Das Zeichen an der Cursorposition wird gelöscht und alle Zeichen rechts davon eine Spalte nach links verschoben. Je nach aktuellem Editierbereich (siehe ESC N und ESC O) wird am Zeilen- bzw. Seitenende ein Leerzeichen eingesetzt. ESC T 1B 54 27 84 Clear End of Line Löschen bis zum Zeilenende. Alle Zeichen rechts von der Cursorposition bis zum Zeilenende werden mit dem durch ESC e gewählten Zeichen (Genie III) bzw. dem Leerzeichen (Genie IIs und Speedmaster) ersetzt. ESC t 1B 74 27 106 Clear to End of Line to Null (3) Löschen bis zum Zeilenende. Alle Zeichen rechts von der Cursorposition bis zum Zeilenende werden mit dem Null- code ersetzt. ESC Y 1B 59 27 89 Clear to End of Page Löschen bis zum Seitenende. Alle Zeichen rechts von der Cursorposition bis zum Seitenende werden mit dem durch ESC e gewählten Zeichen (Genie III) bzw. dem Leerzeichen (Genie IIs und Speedmaster) ersetzt. ESC y 1B 79 27 121 Clear to End of Page to Null (3) Löschen bis zum Seitenende. Alle Zeichen rechts von der Cursorposition bis zum Seitenende werden mit dem Null- code ersetzt. ESC * 1B 2A 27 42 Clear All to Null Seite löschen. Die gesamte Bildschirmseite wird durch den Nullcode (Leerzeichen beim Genie IIs) ersetzt und der Cursor in die Homeposition (linke obere Ecke) ge- bracht. ESC + 1B 2B 27 43 Clear Unprotected (3) Seite löschen. Die gesamte Bildschirmseite wird mit dem durch ESC e gewählten Zeichen bzw. dem Leerzeichen er- setzt und der Cursor in die Homeposition (linke obere Ecke) gebracht. ESC e x 1B 65 27 101 Load Substitute for Space (3) Leerzeichen durch x ersetzen. Das an der Stelle x einge- setzte Zeichen ersetzt in allen folgenden Befehlen das Leerzeichen. ESC . x 1B 2E 27 46 Set Cursor Attribute Cursorzeichen wählen. Der Parameter x bestimmt das Cur- sorsymbol nach folgender Tabelle: ASCII Dez. Hex. Cursorzeichen 0 48 30 Cursor aus 1 49 31 Blinkender Block (3) 2 50 32 Stehender Block 3 51 33 Blinkender Strich (3) 4 52 34 Stehender Strich Beim Genie IIs wird die Funktion 'Blinken' nicht unter- stützt. D.h. die Einstellung 'blinkend' wird als 'steh- end' ausgewertet. ESC = z s 1B 3D 27 61 Cursor Address in Page Der Cursor wird zu der durch die Parameter z und s bestimmten Zeilen- und Spaltenposition gebracht. Falls einer der Parameter die Seitengrenzen überschreitet, wird er durch den maximal erlaubten Wert ersetzt. Der jedem Parameter entsprechende Zeilen- bzw. Spaltenwert ist in der ASCII-Tabelle im Anhang E aufgeführt. ESC ? 1B 3F 27 63 Read Cursor Address in Page Die aktuelle Cursorposition wird als Zeilen- und Spal- tenwert zurückgemeldet. Der Zusammenhang zwischen rück- gemeldeten ASCII-Werten und dem entsprechenden Zeilen- bzw. Spaltenwert ist in der ASCII-Tabelle im Anhang E aufgeführt. ESC G x 1B 47 27 71 Set Video Attribute Zeichenattribut wählen. Für den Parameter x werden fol- gende Werte erkannt: ASCII Dez. Hex. Attribut 0 48 30 Keines, normale Zeichendarstellung 4 52 34 Invers, invertierte Zeichendarstel- lung 8 56 38 Underline, Zeichen werden unter- strichen ausgegeben (2) < 60 3C Underline und Invers zusammen. (2) ESC Z x 1B 5A 27 90 Transmit User/Status Line (3) Benutzer- oder Statuszeile zurückmelden. Je nach Parame- ter x werden die 80 Zeichen der Benutzer- oder der Statuszeile zurückgemeldet. Für x gilt: ASCII Dez. Hex. Zurückgemeldete Zeile 0 48 30 Benutzerzeile 1 49 31 Statuszeile ESC f 1B 66 27 102 Load User Line (3) Benutzerzeile laden. Alle folgenden Zeichen bis zum Endezeichen CR (13 dez, 0D hex) werden in die Benutzer- zeile übernommen. Falls mehr als 80 Zeichen geladen werden, so wird das 80. Zeichen mit dem zuletzt gelade- nen Zeichen ersetzt. Eine Darstellung der Benutzerzeile in der 25. Bild- schirmzeile erfolgt erst nach dem ESC g Code. ESC g 1B 67 27 103 Display User Line (3) Benutzerzeile anzeigen. Die durch ESC f geladenen Zei- chen werden in der 25. Bildschirmzeile angezeigt. ESC h 1B 68 27 104 Display Status Line (3) Statuszeile anzeigen. In der 25. Bildschirmzeile wird die Statuszeile angezeigt. ESC U 1B 55 27 85 Enter Monitor Mode (3) Monitormodus aktivieren. Alle Befehlssequenzen werden bis zum Empfang des ESC u bzw. ESC X Codes nicht als Befehle, sondern als Zeichen interpretiert. Die Befehls- codes 00 bis 31 (dez) werden dabei als Kürzel darge- stellt. (siehe ASCII-Tabelle) ESC X 1B 58 27 88 Exit Monitor Mode (3) Monitormodus ausschalten. Alle Befehlssequenzen werden als Befehle interpretiert. ESC q 1B 71 27 113 Insert Mode On (3) Einfügemodus einschalten. Alle folgenden Zeichen über- schreiben nicht das an der Cursorposition befindliche Zeichen, sondern werden dort eingefügt. Alle Zeichen rechts von der Cursorposition bis zum Ende der Zeile bzw. Spalte werden ein Zeichen nach rechts verschoben. In der Statuszeile erscheint INSL oder INSP. ESC r 1B 72 27 114 Insert Mode Off (3) Einfügemodus ausschalten. Alle folgenden Zeichen über- schreiben das an der Cursorposition befindliche Zeichen (Normalfall). In der Statuszeile erscheint EDTL oder EDTP. ESC v 1B 76 27 118 Vertical Wrap On Vertikalen Überlauf einschalten. Beim Überschreiten des Zeilenendes, wird die Zeichenausgabe in der nächsten Bildschirmzeile fortgesetzt. ESC w 1B 77 27 119 Vertical Wrap Off Vertikalen Überlauf ausschalten. Beim Erreichen der letzten Zeilenposition (80. Spalte) bleibt der Cursor dort stehen und alle folgenden Zeichen werden auf dieser Position dargestellt. Der Anfang der nächsten Zeile wird erst über die beiden Befehlscodes CR und LF erreicht. ESC 6 1B 36 27 54 Send Line (3) Zeile zurückmelden. Die aktuelle Cursorzeile wird zu- rückgemeldet. ESC _ x 1B 5F 27 95 * Systemparameter setzen. Über diese nicht Televideo- kompatible Escapesequenz werden verschiedene Systemein- stellungen verändert werden. Zur Zeit werden für den Parameter x folgenden Werte erkannt: ASCII Dez. Hex. Ausgeführte Aktion 0 48 30 25. Bildschirmzeile einschalten. (3) 1 49 31 25. Bildschirmzeile ausschalten. (3) 2 50 32 Deutscher Zeichensatz (2) 3 51 33 US-ASCII Zeichensatz (2) 4 52 34 Funktionstasten aktivieren. 5 53 35 Funktionstasten ausschalten. Bei aus- geschalteten Funktionstasten wird nicht der über FKEY gewählte Text ausgegeben, sondern der im TASTEN- Programm eingestellte Wert erzeugt. 6 54 36 Uhranzeige in der Statuszeile ein- schalten. (3) 7 55 37 Uhranzeige in der Statuszeile aus- schalten. (3) B.3 Beispiel Beispielprogramm für das Genie III zum Einlesen von Datum und Zeit in ein BASIC-Programm: 10 PRINT CHR$(27)"Z0"; : REM Statuszeile rückmelden 20 A$ = INPUT$(80) : REM 80 Zeichen von Tastatur einlesen 30 TIME$ = RIGHT$(A$,8) 40 DATE$ = LEFT$( RIGHT$(A$,22), 12) 50 PRINT TIME$ : REM Ausgabe der Uhrzeit 60 PRINT DATE$ : REM Ausgabe des Datums ## Fremdformate ## C. Fremdformate C.1 Unterstützte Fremdformate Die nachfolgende Liste ist eine alphabetische Aufstellung der in der ausgelieferten CP/M 2.2X Version unterstützten For- mate. Sie erhebt keinen Anspruch auf Richtigkeit oder Voll- ständigkeit. Die mit (*n*) gekennzeichneten Formate sind nicht direkt lesbar und benötigen ein spezielles Zusatzprogramm. n steht für eine Ziffer und kennzeichnet damit eines der folgenden Programme: 1 AP3TOCPM und CPMTOAP3 2 Programmpaket GDOS <=> CP/M 3 Programmpaket MSDOS <=> CP/M Es wurde versucht, bereits durch die Namensgebung das Format soweit als möglich zu charakterisieren. Zur genaueren Beschreibung werden zusätzlich die folgenden Kürzel benutzt: SS Single Sided, einseitig DS Double Sided, doppelseitig SD Single Density, einfache Dichte DD Double Density, doppelte Dichte 80 80 Spuren 40 40 Spuren (meist am Ende des Namens) V Voderseite, es wird nur diese Seite benutzt R Rückseite, es wird nur diese Seite benutzt F Front, wie V B Back, wie R Name Genauere Bezeichnung ------------------------------------------------------------- ALPHATRONIC P2UV Alphatronic P2, Vorderseite ALPHATRONIC P2UR Alphatronic P2, Rückseite ALPHATRONIC P3 Alphatronic P3 (*1*) ALPHATRONIC PC Alphatronic PC ALTOS 80 DSDD Altos BASF ADPS BASF CP/M System BBZHI unbekannt CMP240 CMP 40 Spur (nicht näher bekannt) CMP280 CMP 80 Spur ( " " " ) CPC VORTEX DD 40 Schneider CPC, Format der Fa. Vortex 40 Spur, einseitig, doppelte Dichte CPC VORTEX DSDD Schneider CPC, Format der Fa.Vortex 80 Spur, doppelseitig, doppelte Dichte CT PROF Prof-80 Standardformat (CP/M System der Zeitschrift C't) CT PROF KURZ Prof-80, verbessertes Format D80 DSDD 80 Spur Datenformat (doppelseitig) DEC RAINBOW 100 DEC Rainbow 100 (8/16Bit System) DETEWE COBOS 100 DeTeWe COBOS 100 ECG MEGADISK Megadisk Format für Osborne ECMA 70 V ECMA-Standardformat, 80 Spur Nur Vorderseite ECMA 70 R ECMA-Standardformat, 80 Spur Nur Rückseite ELZET 80 DSDD Elzet-80 Standardformat EPSON QX-10 40 EPSON QX-10, 40 Spur FIBU unbekannt FRANZIS DD 40 Franzisverlag, Standardformat FREEDOM SSDD Freedom CP/M, einseitig, doppelte Dichte 80 Spur FREEDOM SSDD 40 Freedom CP/M, einseitig, doppelte Dichte 40 Spur FUJITSU 8/16 Fujitsu 8/16 Bit Microcomputer GDOS 80DSDD GDOS 80 Spur, doppelte Dichte, doppel- seitig (*2*) GENIE I 80 DSDD Genie I, 64K CP/M, 80 Spur, doppelseitig doppelte Dichte GENIE I DD 40 Genie I, 64K CP/M, doppelte Dichte 40 Spur GENIE III A DD Genie III CP/M 2.2A, einseitig, doppelte Dichte GENIE III A DSDD Genie III CP/M 2.2A, doppelseitig, doppelte Dichte GENIE III B 2K Genie III CP/M 2.2B, 2k Blockgröße GENIE III B 4K Genie III CP/M 2.2B, 4k Blockgröße GENIE III B 4KDS Genie III CP/M 2.2B, 4k Blockgröße, doppelseitig GENIE III C Genie III CP/M 2.2C, Standardformat GENIE III S80 Genie III, Systemformat des alten CP/M 2.2X IBM 3740 8" CP/M Standardformat IBM CP/M-86 IBM PC, CP/M-86 Standardformat IMS 8000 8"TDOS IMS-8000, 8 Zoll-Format, Betriebs- system TDOS IMS 8000 CPM 1 IMS-8000, 8 Zoll-Format, Betriebs- system CP/M IMS 8000 CPM 2 IMS-8000, 8 Zoll-Format, Betriebs- system CP/M ITT 3030 ITT 3030 J&K ZDOS 80 DSDD Janich&Klass CP/M-Plus, 80 Spur, doppel- seitig, doppelte Dichte KAYPRO 4/10 40 Kaypro IV und Kaypro 10, Standardformat KAYPRO II Kaypro II, Standardformat KD 3000 KD 3000, Steuerungsrechner LNW80 DD 40 LNW-80, (TRS-80 kompatibel) 64k CP/M MC 68K DSDD Standardformat des MC-68k Rechners (Franzis-Verlag) MEGABYTE 8 8" High-Capacity (kein best. System) MICRO K 64 DSDD CP/M-Format des Micro-K 64 MICRODECISION 40 Microdecision Standardformat, 40 Spur MONTEZUMA 40 Tandy Model III Montezuma CP/M, 40 Spur MORROW 40 Morrow Design, Standardformat, 40 Spur MSDOS IBM PC, MS-DOS, 40 Spur (*3*) MZ 3500 EOS 40 Sharp MZ 3500, EOS System MZ 80B 40 Sharp MZ 80B NASCOM C XDOS Nascom C, XDOS, 80 Spur NCR DMV DS NCR Decision Mate V, doppelseitig, 80 Spur NCR DMV DS 40 NCR Decision Mate V, doppelseitig, 40 Spur NCR DMV SS NCR Decision Mate V, einseitig, 80 Spur NCR DMV SS 40 NCR Decision Mate V, einseitig, 40 Spur NIXDORF 8810/30 Nixdorf 8810/30 OLIVETTI 40 Olivetti, 40 Spur OMIKRON 40 Tandy Model I Omikron CP/M 1.4, 40 Spur OMIKRON Tandy Model I Omikron CP/M 1.4, 80 Spur OMIKRON B Tandy Model I Omikron CP/M 1.4, 80 Spur Nur Rückseite OMIKRON F Tandy Model I Omikron CP/M 1.4, 80 Spur Nur Vorderseite OSBORNE 1 40 Osborne I, einfache Dichte, 40 Spur OSBORNE DD 40 Osborne I, doppelte Dichte, 40 Spur PHILIPS P3800 Philips P3800 PHILIPS P2012 Philips P2012 RAIR DSDD 40 Rair, doppelseitig, doppelte Dichte, 40 Spur ROSE Standardformat der Fa. Kersting/Rose S40 DD 40 Spur Standard-Systemformat (einseitig) S80 DSDD 80 Spur Standard-Systemformat (doppelseitig) SORD M23 Sord M23, Standardformat SP 40 DD Speedmaster, altes CP/M SP 40 DD 256 Speedmaster, altes CP/M SP 40 DSDD Speedmaster, altes CP/M SP 40 DSDD 256 Speedmaster, altes CP/M SP 80 DD Speedmaster, altes CP/M SPECTRA 328 DSDD Spectra-Video 328, doppelseitig, doppelte Dichte SPECTRA 328 SSDD Spectra-Video 328, einseitig, doppelte Dichte TANDY II/12 HDEN Tandy Model II oder 12, 8 Zoll High Density TAYLORIX 8 Taylorix, 8 Zoll Standardformat TELEVIDEO DS 40 Televideo, 40 Spur, doppelte Dichte TELEVIDEO SS 80 Televideo, 80 Spur, einfache Dichte TOS Atari ST, TOS, 80 Spur (*3*) TURBODOS DS Turbosdos, doppelseitig WAVE-MATE 8"DSDD Wavemate Bullet, 8 Zoll Standardformat WAVEMATE BULLET Wavemate Bullet, Standardformat C.2 Weitere Formate Die Installation weiterer Fremdformate kann auf zwei ver- schiedenen Wegen geschehen. Entweder durch das getrennt er- hältliche Programm PDRIVE.COM, mit dem beliebige CP/M-Formate eingestellt werden können oder über den Autor. Falls Sie ein weiteres Fremdformat an Ihr CP/M 2.2X System angepasst haben möchten, gehen Sie bitte folgendermaßen vor: Beschreiben Sie die Fremddiskette mit möglichst vielen und langen Textdateien. Die Diskette muß über 50 % belegt sein. Fügen Sie einen Ausdruck des Inhaltsverzeichnisses und der STAT DSK:-Parameter dieser Diskette bei. Schicken Sie diese Diskette zusammen mit einer im Format S80 DSDD formatierten Diskette an folgende Adresse: Klaus Kämpf Softwareentwicklung Jakobstr. 236 5100 Aachen Die Kosten pro Anpassung liegen zur Zeit bei DM 30.- pro Fremddiskette. Die Rücksendung erfolgt als Brief. Falls Sie die Rücksendung als Einschreiben oder Wertbrief erhalten wollen, fügen Sie bitte entsprechend Rückporto bei. (Einschreiben 2.- DM, Wert- brief 4.- DM) Sie erhalten dann auf der zweiten Diskette ein neues File PDRIVE.SYS, daß Sie einfach auf Ihre Systemdiskette kopieren. C.3 Systembedingte Grenzen der Formate Das CP/M 2.2 Betriebssystem legt sich bei jedem Diskettenzu- griff eine Tabelle an, die Aufschluß über den Füllungsgrad der Diskette geben. Da das CP/M die Diskette blockweise verwaltet, ist die Länge dieser Tabelle abhängig von der Anzahl der Blöcke auf der Diskette. Um einen möglichst großen Benutzerspeicher zu erhalten, wurde die Länge dieser Tabellen begrenzt. Damit ergeben sich für die Unterstützung von Fremd- formaten folgende Grenzen: Maximal 512 Blöcke pro Diskette. Bei der maximalen Blockläge von 16384 Bytes pro Block (16k) ergibt sich damit eine maxi- male Laufwerkskapazität von 8 Megabyte. Maximal 256 'Checked Directory Entries'. Damit ist jeder Block durch einen Directory-Eintrag zu erreichen. Maximal 52 physikalische Sektoren pro Spur. Aufgrund des verwendeten Diskettencontrollers können die CP/M Disketten der folgenden Geräte nicht direkt gelesen werden: Apple (und kompatible) Victor/Sirius (CP/M-86) C.4 Aufbau des PDRIVE.SYS Das Datenfile PDRIVE.SYS beinhaltet alle Informationen der verschiedenen Fremdformate. Für jedes der 128 möglichen Fremdformate stehen 16 Zeichen für die Formatbezeichnung zur Verfügung. Die eigentliche Information über das Fremdformat gliedert sich in vier Teile: 1. Der Disk Parameter Block (DPB) 2. Das Pdrive-Byte 3. Formatierungsparameter 4. Die Sektortabelle Die 32 Bytes, die in der Speicheraufteilung als DPB für Diskettenlaufwerke ausgewiesen werden, sind wie folgt belegt: Relative Anzahl der Nutzung Bytenummer Bytes ------------------------------------------------------------- 00h - 10h (17 Bytes) DPB nach CP/M-Plus 11h ( 1 Byte ) PD-Byte (s.u.) 12h ( 1 Byte ) Anzahl der Sektoren pro Spur pro Seite 13h ( 1 Byte ) Anzahl der Spuren pro Seite (40/80) 14h ( 1 Byte ) Size 0=5 1/4,1=8,2=3,3= 8 auf 5 1/4 15h ( 1 Byte ) Offset für Spurnummer 16h ( 1 Byte ) 00 = vom CP/M lesbar FF = benötigt spezielles Programm 17h ( 1 Byte ) Nummer des ersten Sektors auf der Vorderseite (0 oder 1) FF = Vorderseite unbenutzt 18h ( 1 Byte ) Nummer des ersten Sektors auf der Rückseite (0 oder 1) FF = Rückseite unbenutzt 19h ( 1 Byte ) Skew-Faktor für Formatierung 1Ah - 1Ch ( 3 Bytes) reserviert 1Dh ( 1 Byte ) Anzahl der Spuren des Laufwerks 1Eh ( 1 Byte ) Nummer des Eintrags (0-127,für PD) 1Fh ( 1 Byte ) reserviert 20h - 5Fh (64 Bytes) Sektorversatz- (Skew-) Tabelle 60h - 6Fh (16 Bytes) frei 70h - 7Fh (16 Bytes) Name des Formates ---------- 128 Bytes ========== Der Disk Parameter Block beinhaltet alle Daten über den logischen Aufbau des Formats. Dazu gehören z.B. Blockgröße, Anzahl der Blöcke, Anzahl der Directory-Einträge etc. Nähere Informationen dazu entnehmen Sie bitte der entsprechenden Literatur (siehe Anhang F). Das Pdrive-Byte kennzeichnet das physikalsiche Diskettenfor- mat und ist folgendermaßen aufgebaut: Bit Nr: Information ------------------------------------------------------------ 0 Aufzeichnungsdichte 0=single Density, 1=double Density 1 Aufzeichnungsart 0=normale Aufzeichnung, 1=invertierte Aufzeichnung 2 Anzahl der benutzten Laufwerksseiten 0=einseitig, 1=doppelseitig 3,4,5 Art des doppelseitigen Zugriffs 000= Zugriff nach Sektortabelle (Die Vorder- und Rückseite bilden eine logi- sche Spur) 001= Ungerade Spurnummern auf der Rückseite 010= Vorderseite Spur 0 bis Spur 79 Rückseite Spur 0 bis Spur 79 011= Sektor-Offset auf der Rückseite (Die Sektornummern werden durchgezählt aber die Rückseite als getrennte logische Spur verwaltet) 100= Vorderseite Spur 0 bis 79 Rückseite Spur 79 bis 0 101= Gerade Spurnummern auf der Rückseite 110= reserviert 111= reserviert 6 Nummer der Spurkennung auf der Diskette 0 = Die Spurnummer ist gleich der physikalischen Kopfposition 1 = Die Spurnummer ist gleich der logischen (vom CP/M angeforderten) Nummer 7 unbenutzt, reserviert Die Sektortabelle dient dem logischen Versatz beim Zugriff auf die Sektoren. Dadurch kann der Diskettenzugriff erheblich beschleunigt werden. Die Sektortabelle umfasst 64 Bytes für maximal 64 Sektornummern. Im Gegensatz zu normalen CP/M 2.2 Systemen, sind beim CP/M 2.2X in der Sektortabelle die physi- kalischen Sektornummern aufgeführt. D. Tastaturtabellen D.1 Nummern und Belegungen der einzelnen Tasten Die folgende Tabelle gibt Aufschluß über die Nummer jeder Taste und ihre Belegung. Die Codes 01H bis 7FH (1 bis 127 dez) werden unverändert übergeben. 00H bedeutet die Sperrung der betroffenen Taste(n- kombination). 80H bis 8FH (128 bis 143 dez) stehen für die 16 Funktionstasten. Tasten- Tasten- Werte beim Tastendruck nummer beschriftung Taste SHIFT CTRL SHIFT&CTRL ----------------------------------------------------------- 00H, 0 '@' 60H 40H 00H 00H 01H, 1 'A' 61H 41H 01H 01H 02H, 2 'B' 62H 42H 02H 02H 03H, 3 'C' 63H 43H 03H 03H 04H, 4 'D' 64H 44H 04H 04H 05H, 5 'E' 65H 45H 05H 05H 06H, 6 'F' 66H 46H 06H 06H 07H, 7 'G' 67H 47H 07H 07H 08H, 8 'H' 68H 48H 08H 08H 09H, 9 'I' 69H 49H 09H 09H 0AH, 10 'J' 6AH 4AH 0AH 0AH 0BH, 11 'K' 6BH 4BH 0BH 0BH 0CH, 12 'L' 6CH 4CH 0CH 0CH 0DH, 13 'M' 6DH 4DH 0DH 0DH 0EH, 14 'N' 6EH 4EH 0EH 0EH 0FH, 15 'O' 6FH 4FH 0FH 0FH 10H, 16 'P' 70H 50H 10H 10H 11H, 17 'Q' 71H 51H 11H 11H 12H, 18 'R' 72H 52H 12H 12H 13H, 19 'S' 73H 53H 13H 13H 14H, 20 'T' 74H 54H 14H 14H 15H, 21 'U' 75H 55H 15H 15H 16H, 22 'V' 76H 56H 16H 16H 17H, 23 'W' 77H 57H 17H 17H 18H, 24 'X' 78H 58H 18H 18H 19H, 25 'Y' 79H 59H 19H 19H 1AH, 26 'Z' 7AH 5AH 1AH 1AH 1BH, 27 'Ä' 7BH 5BH 1BH 1BH 1CH, 28 '\' 7CH 5CH 1CH 1CH 1DH, 29 'Ü' 7DH 5DH 1DH 1DH 1EH, 30 'ß' 7EH 5EH 1EH 1EH 1FH, 31 '^' 7FH 5FH 1FH 1FH Tasten- Tasten- Werte beim Tastendruck nummer beschriftung Taste SHIFT CTRL SHIFT&CTRL ----------------------------------------------------------- 20H, 32 '0/ ' 30H 20H 30H 30H 21H, 33 '1/!' 31H 21H 31H 31H 22H, 34 '2/"' 32H 22H 32H 32H 23H, 35 '3/#' 33H 23H 33H 33H 24H, 36 '4/$' 34H 24H 34H 34H 25H, 37 '5/%' 35H 25H 35H 35H 26H, 38 '6/&' 36H 26H 36H 36H 27H, 39 '7/'' 37H 27H 37H 37H 28H, 40 '8/(' 38H 28H 38H 38H 29H, 41 '9/)' 39H 29H 39H 39H 2AH, 42 ':/*' 3AH 2AH 3AH 3AH 2BH, 43 ';/+' 3BH 2BH 3BH 3BH 2CH, 44 ',/<' 2CH 3CH 3CH 3CH 2DH, 45 '-/=' 2DH 3DH 3DH 3DH 2EH, 46 './>' 2EH 3EH 3EH 3EH 2FH, 47 '//?' 2FH 3FH 3FH 3FH 30H, 48 'ENTER' 0DH 0DH 0DH 0DH 31H, 49 'CLEAR' 1BH 00H 00H 00H 32H, 50 'BREAK' 03H 03H 03H 03H 33H, 51 HOCHPFEIL 05H 12H 17H 00H 34H, 52 TIEFPFEIL 18H 03H 1AH 00H 35H, 53 LINKSPFEIL 08H 01H 7FH 00H 36H, 54 RECHTSPFEIL 04H 06H 07H 00H 37H, 55 LEERTASTE 20H 09H F6H 00H 38H, 56 'SHIFT' 00H 00H 00H 00H 39H, 57 'CTRL' 00H 00H 00H 00H 3EH, 62 'P2' 00H 00H 00H 00H 3FH, 63 'P1' 00H 00H 00H 00H 40H, 64 'F1' 80H 88H 80H 88H 41H, 65 'F2' 81H 89H 81H 89H 42H, 66 'F3' 82H 8AH 82H 8AH 43H, 67 'F4' 83H 8BH 83H 8BH 44H, 68 'F5' 84H 8CH 84H 8CH 45H, 69 'F6' 85H 8DH 85H 8DH 46H, 70 'F7' 86H 8EH 86H 8EH 47H, 71 'F8' 87H 8FH 87H 8FH D.2 Belegung des separaten Zehnerblocks Die folgenden Tasten liegen im separaten Zehnerblock: (Nur Genie III) Tasten- Tasten- Werte beim Tastendruck nummer beschriftung Taste SHIFT CTRL SHIFT&CTRL ----------------------------------------------------------- 48H, 72 '0' 30H 30H 00H 00H 49H, 73 '1' 31H 31H 00H 00H 4AH, 74 '2' 32H 32H 00H 00H 4BH, 75 '3' 33H 33H 00H 00H 4CH, 76 '4' 34H 34H 00H 00H 4DH, 77 '5' 35H 35H 00H 00H 4EH, 78 '6' 36H 36H 00H 00H 4FH, 79 '7' 37H 37H 00H 00H 50H, 80 '8' 38H 38H 00H 00H 51H, 81 '9' 39H 39H 00H 00H 52H, 82 '00' 30H 30H 30H 30H 53H, 83 'ALPHA LOCK' 00H 00H 00H 00H 54H, 84 ',' 2CH 2CH 00H 00H 55H, 85 '-' 2DH 2DH 00H 00H 56H, 86 '.' 2EH 2EH 00H 00H D.3 Belegung der Sondertasten Die folgende Tabelle gibt nochmals eine kurze Übersicht über die Spezialtasten und ihre Funktion. Zusätzlich ist noch die entsprechende CTRL-Sequenz aufgeführt. Tastenkombination Wert Funktion entspricht ------------------------------------------------------------ BREAK 03H Warmstart CTRL-C SHIFT -BREAK 03H dito CLEAR 1BH Escape CTRL-Ä SHIFT -CLEAR 1BH dito ENTER 0DH Carriage Return CTRL-M SHIFT -ENTER 0DH dito LEERTASTE 20H Leerzeichen SHIFT-0 SHIFT -LEERTASTE 09H Tabulator CTRL-I HOCHPFEIL 05H Eine Zeile höher CTRL-E SHIFT -HOCHPFEIL 17H Eine Seite zurück CTRL-W TIEFPFEIL 18H Eine Zeile tiefer CTRL-X SHIFT -TIEFPFEIL 03H Eine Seite vor CTRL-C LINKSPFEIL 08H Ein Zeichen nach links CTRL-H SHIFT -LINKSPFEIL 01H Ein Wort nach links CTRL-A RECHTSPFEIL 04H Ein Zeichen nach rechts CTRL-D SHIFT -RECHTSPFEIL 06H Ein Wort nach rechts CTRL-F E. Zeichensätze Die beiden folgenden Tabellen geben Aufschluß über den Zei- chensatz bei den Geräten Genie III und Genie IIs. Für die Werte 20H bis 6FH (32 bis 111) ist auch der entsprechende Zeilen- bzw. Spaltenwert für die Escapesequenz zur Cursor- positionierung angegeben. Die Zeichen mit Werten zwischen A0H und FFH werden invers dargestellt. E.1 Zeichensatz des Genie III E.2 Zeichensatz des Genie IIs E.3 ASCII-Tabelle +-----------------------------------------------------------+ ! Höherwertiges Digit ! ! 0 1 2 3 4 5 6 7 ! +-----------------------------------------------------------+ ! 0 ! NUL DLE SPC 0 @ P ` p ! 1 ! SOH DC1 ! 1 A Q a q ! 2 ! STX DC2 " 2 B R b r ! 3 ! ETX DC3 # 3 C S c s ! 4 ! EOT DC4 $ 4 D T d t ! 5 ! ENG NAK % 5 E U e u ! 6 ! ACK SYN & 6 F V f v ! 7 ! BEL ETB ' 7 G W g w ! 8 ! BS CAN ( 8 H X h x ! 9 ! HT EM ) 9 I Y i y ! A ! LF SUB * : J Z j z ! B ! VT ESC + ; K Ä k ä ! C ! FF FS , < L \ l ö ! D ! CR GS - = M Ü m ü ! E ! SO RS . > N ^ n ß ! F ! SI VS / ? O _ o DEL +---+ F. Literaturhinweise F.1 Literatur zum CP/M 2.2 - Vom Umgang mit CP/M (2.2), Bernd Pol, IWT Verlag - CP/M mit MP/M, Rodney Zaks, Sybex Verlag - *** originalhandbuch cp/m 2.2 dri/m&t - *** cp/m 2.2 sourcelisting, röckrath F.2 Literatur zum Genie III und Genie IIs - Technisches Handbuch zum Genie IIs, Phoenix GmbH - Schaltpläne zum Genie III, Phoenix GmbH - Genie III User's Manual & Utilities, EACA Ltd. - Programmierung des Z80, Rodney Zaks, Sybex Verlag - Datenblätter Z80-CPU, -SIO, -PIO, Zilog - Datenblatt HD46505, 6845 CRTC, Hitachi oder Motorola ################################################################ # # # Zusammengefügt aus dem Gitlab Repository von Klaus Kämpf # # # # # # https://gitlab.com/kkaempf/cpm22x/-/tree/genie3/doc # # # # License: # # # # https://gitlab.com/kkaempf/cpm22x/-/blob/genie3/doc/LICENSE # # # ################################################################