G E N I E - I I I - C P / M V e r s i o n 3 a Autor: Thomas Holte Thomas Holte Nachdruck, auch Sommerstr.16 auszugsweise, verboten! 8504 Stein Tel. 0911 / 68 50 13 I N H A L T S V E R Z E I C H N I S ___________________________________ Kapitel Seite 1 Einleitung 1 2 Mini Disk Operation 2 2.1 Funktionsweise 2 2.1.1 Funktionsweise der Diskette 3 2.1.2 Einführen der Diskette in das Laufwerk 4 2.1.3 Einschalten des Ger{tes 4 2.2 Pflege der Disketten 5 2.2.1 Sie haben Probleme ... 6 2.3 Technische Daten 7 2.4 Anfertigen einer Sicherungskopie 7 3 Genie-III-CP/M-Dienstprogramme 10 3.1 FORMAT 10 3.2 FTASTEN 11 3.3 KONFIG 11 3.4 KOPIER 17 4 Technische Informationen 19 4.1 Speicheraufteilung 19 4.2 Gerätezuordnung 20 4.3 Tastatur 20 4.3.1 WordStar Tastatur 23 4.4 Bildschirm 25 4.5 Serielle Schnittstelle 27 4.5.1 Übertragung digitaler Daten 27 4.5.2 Signalpegel 29 4.5.3 Anschlußbezeichnungen und 30 Signalbeschreibungen 4.5.4 Anschlußbelegung 32 4.6 Acht-Zoll-Laufwerke 34 5 EPROM-Treiberroutinen 35 6 Genieplus Karte 42 6.1 KONFIG 42 6.2 Tastatur 42 6.3 Speicheraufteilung 43 6.4 Gerätezuordnung 43 6.5 Treiberroutinen 44 7 Festplatte 46 7.1 Generieren eines Festplattensystems 46 7.2 Das Dienstprogramm BACKUP 47 8 Inkompatibilit{ten zu CP/M Version 2.2 48 9 Sonstiges 50 Anlage A: SYSTAB Anlage B: Diskettenformate 1 Eigenschaften von Genie III CP/M Version 3a Gegenüber den CP/M Versionen 2.2a - c für Genie III Rechner bietet Genie III CP/M 3a folgende Vorzüge: - Neu implementierter Tastaturtreiber mit der Möglichkeit, sämtliche Tastencodes frei zu definieren. Die zeitliche Be- lastung der CPU durch das "Abscannen" der Tastatur konnte um ein Vielfaches verringert werden. ("Autorepeat" in WordStar ist jetzt möglich.) - Sämtliche Funktionstasten können ohne Einschränkung übriger Funktionen mit Strings von bis zu 80 Zeichen Länge belegt werden. - Einschalten einer speziellen WordStar Tastatur mit ergonomi- scher Belegung aller Kursor- und Funktionstasten möglich. - Neu implementierter Bildschirmtreiber mit frei definierbaren Steuerzeichen und der Möglichkeit, "windows" zu kreieren. - Neu implementierter Floppy Disk Treiber. Mit den Original- laufwerken des Genie III jetzt Steprate von drei Millisekun- den. Weiterhin wird die Stepzeit bei der Motoranlaufzeit an- gerechnet, dadurch noch schnellere Zugriffszeit. - Datum und Uhrzeit im ASCII Format abrufbar. - Optional Unterstützung der von der HJS Computersysteme lie- ferbaren Genieplus Karte. - Optional Unterstützung aller Winchester Subsysteme, die mit der Genieplus Karte betrieben werden. - Gegenüber der CP/M Version 2.2d wurde die Einstellmöglichkeit alternativer Diskettenformate nochmals erheblich erweitert. Disketten fast aller auf dem Markt befindlichen CP/M Rechner sind jetzt lesbar. 2 Mini Disk Operation CP/M erfordert wenigstens ein Diskettenlaufwerk und kann bis zu vier Laufwerke ansteuern (A - D). Das CP/M-System, welches Sie erhalten haben, ist für die Steuerung zweier doppelseiti- ger 5-Zoll-Minidisklaufwerke mit jeweils 80 Spuren konfigu- riert. Diese Laufwerke sind normalerweise in Ihrem Genie III eingebaut. Möchten Sie ein bis zwei weitere Laufwerke (5" oder 8") an Ihren Genie anschließen, können Sie gegen eine Unkostenpauschale von DM 100,- ein speziell konfiguriertes System erhalten. Bitte wenden Sie sich an nachstehende Adres- se: Thomas Holte Sommerstr.16 8504 Stein Systemkundige können mit Hilfe der mitgelieferten BIOS-Quell- programme selbst ein entsprechendes System konfigurieren, wenn Sie im Besitz des Assemblers MACRO-80 von Microsoft sind. Wenn der Rechner eine Urladeoperation beim Einschalten bzw. "Reset" durchführt, versucht er automatisch, das Betriebs- system von Laufwerk 0 zu laden. Deshalb muß sich eine CP/M Systemdiskette beim Einschalten bzw. "Reset" des Rechners im Laufwerk (0 bzw. A) befinden. 2.1 Funktionsweise Bevor Sie den Rechner einschalten, sollten Sie einige Fakten über die Funktionsweise Ihrer Diskettenlaufwerke kennenler- nen. Das Laufwerk rotiert nicht ununterbrochen, während es ein- geschaltet ist, sondern nur, wenn ein "MOTOR ON"-Signal vom Rechner gesendet wird. Wenn mehr als ein Laufwerk an den Rechner angeschlossen ist, schaltet das "MOTOR ON"-Signal alle Motoren ein bzw. aus, auch wenn der Rechner nur auf ein Laufwerk zugreift. Dieses Signal wird zirka eine Sekun- de, bevor der Rechner auf ein Laufwerk zugreift, gesendet, damit die Laufwerke die notwendige Umdrehungsgeschwindig- keit erreichen können. Während der Rechner auf ein Laufwerk zugreift, leuchtet die rote Diode (LED) auf der Frontseite des jeweiligen Lauf- werks. Achtung: Öffnen Sie nicht die Laufwerksklappe, während die Diode leuchtet. 2.1.1 Funktionsweise der Diskette Eine Diskette ist eine einfache Plastikscheibe, deren Ober- fläche ferromagnetisch beschichtet und poliert ist. [hnlich einer Single-Schallplatte besitzt sie ein großes Spindel- loch, um sich der Laufwerksnabe anzupassen, und ein kleines Indexloch, das vom Laufwerk registriert wird, wenn die Dis- kette rotiert. Ein leere Diskette (neu oder magnetisch gelöscht) enthält keine Information. Auf Ihrer CP/M-Systemdiskette befindet sich deshalb ein spezielles Dienstprogramm (FORMAT), das eine Diskette in "Spuren" und "Sektoren" einteilt. (Weitere Informationen siehe Kap. 3.1, Dienstprogramme, FORMAT). Jede Diskette befindet sich andauernd in einer Hülle, wel- che ihre Oberfläche vor Verkratzen oder Berühren schützt. Die Diskette rotiert im Laufwerk in ihrer Schutzhülle. Die Hülle besteht innen aus einem speziellen Material, welches die Diskette während der Rotation reinigt. Beachten Sie den kleinen Aufkleber am oberen Rand Ihrer Systemdiskette (oberhalb des Labels). Dieser Aufkleber be- deckt die Schreibschutzkerbe der Diskette. Damit ist die Diskette physisch vor einem Beschreiben geschützt. (Unter einer "Schreiboperation" versteht man jedes [ndern der auf der Diskette gespeicherten Daten. Im Gegensatz dazu verän- dert eine "Leseoperation" diese Daten nicht - es wird le- diglich auf sie zugegriffen). Entfernen Sie also diesen Aufkleber, wenn Sie eine Diskette beschreiben möchten; bringen Sie ihn an, wenn Sie eine zufällige Schreibopera- tion verhindern wollen. 2.1.2 Einführen der Diskette in das Laufwerk a) Achten Sie darauf, daß die rote Diode auf der Frontseite des Laufwerks nicht leuchtet, wenn Sie eine Diskette in das Laufwerk einführen bzw. ihm entnehmen. b) Öffnen Sie die Laufwerksklappe. Führen Sie die Diskette mit der Schreibschutzkerbe nach oben und dem Label nach rechts senkrecht vorsichtig in das Laufwerk ein. Schließen Sie die Klappe nicht, bevor die Diskette ganz eingeführt ist, sonst könnte die Diskette beschädigt werden. c) Schließen Sie die Klappe. Damit erfaßt die Nabe des Laufwerks die Diskette im Spindelloch. Läßt sich die Klappe nicht leicht schließen, wenden Sie keine Gewalt an. Nehmen Sie die Diskette heraus und probieren Sie es noch einmal. 2.1.3 Einschalten des Gerätes Gehen Sie beim Einschalten des Gerätes nur in nachstehender Reihenfolge vor: a) Führen Sie vorsichtig eine Diskette, auf der sich das CP/M-System befindet, in das Laufwerk 0 oder A ein, ohne die Klappe zu schließen. b) Schalten Sie den Rechner ein. Auf dem Bildschirm muß nun die Meldung "Insert system disk into drive 0 and press " erscheinen. c) Schließen Sie die Laufwerksklappe. Das Betriebssystem wird num vom Rechner geladen. 2.2 Pflege der Disketten a) Lassen Sie Disketten in der mitgelieferten Papiertasche, solange sie nicht in einem der Laufwerke stecken. Lassen Sie nicht unnötigerweise Disketten in den Laufwerken, z.B. wenn das System abgeschaltet ist. b) Halten Sie Disketten entfernt von magnetischen Feldern (Transformatoren, Wechselstrommotoren, Magnete usw.). Starke magnetische Felder zerstören die auf der Diskette gespeicherte Information. c) Nehmen Sie Disketten nur mit ihrer Hülle - berühren Sie keine ihrer offenliegenden Oberflächen. Versuchen Sie nicht, die Diskettenoberfläche zu reinigen; Sie könnten sie verkratzen und zerstören. d) Halten Sie Disketten entfernt von Hitze und direkter Sonneneinstrahlung (siehe Kap. 2.3, Technische Daten, Lagertemperatur). e) Vermeiden Sie eine Berührung der Disketten mit Zigaret- tenasche, Staub oder anderen Partikeln. f) Beschriften Sie das Diskettenlabel nicht mit einem Ku- gelschreiber, da dies die Diskettenoberfläche beschädi- gen könnte. Benutzen Sie ausschließlich Filzstift. g) Vergewissern Sie sich, daß die Diode (LED) auf der Frontseite des Laufwerks nicht leuchtet, wenn Sie eine Diskette einführen. h) Lagern Sie Disketten senkrecht (ähnlich Schallplatten), damit sie vor seitlichem Druck geschützt werden. 2.2.1 Sie haben Probleme ... Wiederholt auftretende Schreib-/Lesefehler während des Dis- kettenzugriffs des Rechners können durch beschädigte Dis- ketten, Laufwerke oder andere Hardware verursacht werden. Versuchen Sie, den Fehler zu isolieren, indem Sie Laufwerke und Disketten wechseln. Haben Sie wiederholt Probleme mit einer bestimmten Disket- te, versuchen Sie, die auf ihr gespeicherten Dateien auf eine andere Diskette zu kopieren. Versuchen Sie dann, die fehlerhafte Diskette neu zu formatieren. Scheint das Laufwerk fehlerhaft zu sein (wiederholt auftre- tende Fehler während des Zugriffs auf Disketten unter- schiedlicher Herkunft), wenden Sie sich bitte an Ihren Händler. 2.3 Technische Daten Laufwerk: Speicherkapazität : 800 KBytes formatiert 784 KBytes für den Benutzer verfügbar Speichereinteilung: 2 Oberflächen 80 Spuren pro Oberfläche 10 Sektoren pro Spur 512 Bytes pro Sektor Datentransferrate : 25 KBytes pro Sekunde Durchschnittliche Zugriffszeit : 250 Millisekunden Motorstartzeit : 1 Sekunde Diskette: Lebensdauer : 2.5 Millionen Umdrehungen pro Spur (110 Stunden), entspricht ca. fünf Jahre bei normalem Gebrauch Lebensdauer der gesp. Daten : 20 Jahre Lagertemperatur: 10 - 50 Grad Celsius Abmessungen : 13.3 x 13.3 x 0.08 cm 2.4 Anfertigen einer Sicherungskopie Bevor Sie irgendetwas anderes mit Ihrer CP/M-Systemdiskette machen, befolgen Sie diese Anweisungen, um mindestens zwei Sicherungskopien Ihrer Originalsystemdiskette zu machen. Wür- den Sie sich nicht daran halten, wären Sie "aus dem Rennen", wenn Ihrer Originaldiskette etwas geschieht und Sie auf eine neue warten. Schalten Sie Ihren Rechner wie in Kap. 2.1.3 beschrieben ein. Entfernen Sie nicht den Schreibschutzaufkleber! Führen Sie eine neue Diskette in das rechte Laufwerk ein. Geben Sie FORMAT B ein. Das System wird dann anzeigen: Möchten Sie wirklich die Diskette in Laufwerk B formatieren ? Antworten Sie mit "J". Ihre Diskette wird nun formatiert. Nach Beendigung des Formatiervorgangs zeigt das System "Programm beendet" an. Wiederholen Sie diesen Vorgang für die zweite Diskette. Nun geben Sie KOPIER {V} ein. Die eckigen Klammern werden im deutschen Zeichensatz durch "Ä" und "Ü" dargestellt. Das Kopierprogramm beginnt nun einen Dialog mit Ihnen, bei dem Sie folgende Antworten geben müssen (Antworten fettge- druckt): Kopier Ver 3.0 Modus Funktion ALLES Kopieren der ganzen Diskette SYSTEM Kopieren der Systemspuren DATEN Kopieren der Datenspuren ENDE Programmende Modus: ALLES Quellaufwerk: A Ziellaufwerk: B (^C Für Programmabbruch) Drücken Sie , um ALLES von A nach B zu kopieren Nach dem Kopieren der ersten Diskette meldet sich das Pro- gramm mit der Frage Möchten Sie das Kopieren wiederholen ? Antworten Sie mit "J". Die zweite Sicherungskopie wird nun angefertigt. Bewahren Sie das Original und mindestens eine Sicherungskopie an einem sicheren Ort auf. Arbeiten Sie nur mit einer Kopie Ihres Originalsystems. Achtung: Das Dienstprogramm KOPIER dient aus urheberrechtli- chen Gründen nur zu Ihrem persönlichen Gebrauch, da- mit Sie Sicherungskopien Ihres CP/M-Systems und Ih- rer Datendisketten anfertigen können. 3 Genie-III-CP/M-Dienstprogramme Dieses Kapitel setzt voraus, daß Sie das CP/M-Betriebssystem bereits kennen oder sich mit dem "CP/M Plus User's Guide" von Digital Research vertraut gemacht haben. Weiterhin ist darauf hinzuweisen, daß es sich bei nachstehend aufgeführten Dienst- programmen um rechnerspezifische Programme handelt, d.h. diese Programme sind nur auf Ihrem Genie III System ablauffä- hig. 3.1 FORMAT: Aufruf: FORMAT Laufwerk Für "Laufwerk" müssen Sie den Namen des logischen CP/M-Lauf- werks, auf dem Sie eine Diskette formatieren wollen, angeben. Mit diesem Dienstprogramm können Sie neue Disketten formatie- ren bzw. alte Disketten neu formatieren, d.h. in Spuren und Sektoren einteilen. Beispiel: FORMAT B Möchten Sie wirklich die Diskette in Laufwerk B formatieren ? J Mit diesem Kommando wird die im rechten Laufwerk Ihres Genie III befindliche Diskette formatiert. 3.2 FTASTEN: Aufruf: FTASTEN Achtung: Bevor Sie FTASTEN aufrufen, müssen Sie den Schreib- schutzaufkleber Ihrer Systemdiskette entfernen. Mit diesem Dienstprogramm können Sie die dreizehn Funktions- tasten Ihres Genie III programmieren, d.h. mit einem aus ma- ximal 69 Zeichen bestehenden "String" belegen. Steuerzeichen werden mit einem Zirkumflex und dem zugehörigen Buchstaben eingegeben, z.B. "^C" für CONTROL-C oder "^M" für . Leerzeichen müssen mit einer Unterlänge eingegeben werden, z.B. DIR_B. FTASTEN läuft menügesteuert ab und kann mit unterbrochen werden. 3.3 KONFIG: Aufruf: KONFIG Achtung: Bevor Sie KONFIG aufrufen, müssen Sie den Schreib- schutzaufkleber Ihrer Systemdiskette entfernen. Mit diesem Dienstprogramm können Sie das CP/M-Betriebssystem Ihres Genie III innerhalb gewisser Grenzen Ihren persönlichen Wünschen bzw. den vorhandenen Peripheriegeräten anpassen. KONFIG läuft menügesteuert ab und kann mit unterbro- chen werden. Achtung: Um die geänderten Parameter auch benutzen zu können, müssen Sie drücken. Anmerkung zum Einstellen der Systemparameter: Geben Sie nur die Anzahl der wirklich angeschlossenen Lauf- werke an. Anmerkungen zum Einstellen der Laufwerksparameter: Die Einstellmöglichkeiten der Laufwerksparameter versetzen Sie in die Lage, Disketten fast aller auf dem Markt befindli- chen CP/M-Rechner zu lesen bzw. zu beschreiben. Sie müssen nur das physische Format der fremden Disketten kennen, um die entsprechenden Einstellungen vornehmen zu können. Damit das Genie III CP/M Format beim Umstellen der Laufwerksparameter nicht verlorengeht, wird ein logisches Laufwerk P konfigu- riert, welches jedem vorhandenen physischen Laufwerk außer A überlagert werden kann. Beispiele: a) Format der Genie III CP/M Systeme 2.2a und b: - doppelseitig - doppelte Dichte - einfache Dichte der ersten Spur - 79 nutzbare Spuren - 36 Sektoren pro Spur - 256 Bytes Sektorlänge - Nummer des ersten Sektors: 0 - Fortsetzung der Sektornumerierung auf der Rückseite - 4 KBytes Blockgröße - 4 KBytes "Directory"-Größe - Übersetzungsfaktor: 1 - 2 Systemspuren Die Begriffe Blockgröße, "Directory"-Größe und Systemspu- ren sind im "CP/M Plus System Guide" von Digital Research erläutert. b) Format des Genie III CP/M Systems 2.2d: - doppelseitig - doppelte Dichte - doppelte Dichte der ersten Spur - 80 nutzbare Spuren - 20 Sektoren pro Spur - 512 Bytes Sektorlänge - Nummer des ersten Sektors: 0 - Keine Fortsetzung der Sektornumerierung auf der Rückseite - 2 KBytes Blockgröße - 6 KBytes "Directory"-Größe - Übersetzungsfaktor: 1 - 2 Systemspuren c) Einstellen des Standard CP/M Formates (IBM 3740): Diese Einstellung ist nur möglich, wenn Sie ein 8-Zoll- Laufwerk an Ihren Genie III angeschlossen haben. Für das überlagerte Laufwerk C bzw. D ist anzugeben: - 8-Zoll Diskettengröße - einseitig - einfache Dichte - 77 nutzbare Spuren - 26 Sektoren pro Spur - 128 Bytes Sektorlänge - Nummer des ersten Sektors: 1 - "Interleaving"-Faktor: 1 - 1 KByte Blockgröße - 2 KBytes "Directory"-Größe - Übersetzungsfaktor: 6 - 2 Systemspuren d) Das Standardformat Ihres neuen CP/M-Systems, auf das auch Laufwerk A eingestellt ist: - doppelseitig - doppelte Dichte - doppelte Dichte der ersten Spur - 80 nutzbare Spuren - 20 Sektoren pro Spur - 512 Bytes Sektorlänge - Nummer des ersten Sektors: 0 - Keine Fortsetzung der Sektornumerierung auf der Rückseite - "Interleaving"-Faktor: 2 - 2 KBytes Blockgröße - 6 KBytes "Directory"-Größe - Übersetzungsfaktor: 1 - 1 Systemspur Unter "Interleaving"-Faktor versteht man den Abstand zweier aufeinanderfolgender physischer Sektoren in Sektoren. Da beim IBM 3740-Format zwei logisch aufeinanderfolgende Sektoren physisch ebenfalls direkt hintereinander liegen ("Inter- leaving"-Faktor 1), verwendet das CP/M-Betriebssystem ein ei- genes sogenanntes "Soft-Interleaving", um die Zugriffszeiten zu optimieren. Ohne dieses "Interleaving" wären 26 Umdrehun- gen nötig, um nur eine Spur einer Diskette dieses Formats zu lesen. Dieses "Soft-Interleaving" wird beim Menüpunkt "Über- setzungsfaktor" eingegeben. Damit wird das BIOS so einge- stellt, daß die logische Sektornummer vor dem Diskzugriff noch in eine physische Sektornummer umgerechnet wird (BIOS- Aufruf SECTRAN). Bei 5-Zoll-Disketten ist dieses "Soft-Interleaving" nicht üblich. Hier werden die Sektornummern gleich beim Formatieren entsprechend verschränkt ("Hard-Interleaving"). Dieses "Hard- Interleaving" können Sie mit KONFIG durch Angabe eines ent- sprechenden Faktors beeinflussen. Der "Interleaving"-Faktor sollte so gewählt werden, daß sich beim Diskettenzugriff op- timale Schreib-/Lesezeiten ergeben. Im CP/M Vers. 3a erstreckt sich eine Spur bei doppelseitigen Disketten immer über beide Oberflächen, wobei auf der Rück- seite wieder bei Null mit der Sektornumerierung begonnen wird. Der "Interleaving"-Faktor muß nur dann angegeben werden, wenn Sie Disketten mit den neu eingestellten Parametern formatie- ren wollen. Achten Sie darauf, daß bei Einstellung auf das Standardformat Ihres neuen Systems auf jeden Fall der "Inter- leaving"-Faktor 2 gewählt wird, denn nur so sind optimale Zugriffszeiten gewährleistet. Nachstehende Sektorenanzahlen pro Spur und Oberfläche sind maximal möglich: Sektorlänge ! einfache ! einfache ! doppelte in Bytes ! Dichte 8-Zoll ! Dichte 5-Zoll ! Dichte 5-Zoll ============!===============!===============!================ 128 ! 26 ! 16 ! --- ------------+---------------+---------------+---------------- 256 ! 17 ! 10 ! 18 ------------+---------------+---------------+---------------- 512 ! 9 ! 5 ! 10 ------------+---------------+---------------+---------------- 1024 ! --- ! --- ! 5 FORMAT kann die erste Spur von Disketten doppelter Dichte, deren erste Spur auf einfache Dichte eingestellt ist, nicht formatieren. Laufwerk A kann nicht überlagert werden, um ein "Aufhängen" des Systems bei falschem Einstellen zu verhindern. Sollte es nicht möglich sein, mit KONFIG das Diskettenformat eines Fremdrechners mit CP/M-Betriebssystem einzustellen, können Sie gegen eine Unkostenpauschale von DM 100,- ein spe- ziell konfiguriertes System erhalten, mit dem Sie Disketten dieses Formats lesen können. Senden Sie hierzu eine neue, formatierte Diskette des Fremdrechners, die möglichst viele Daten enthält, an nachstehende Adresse: Thomas Holte Sommerstr.16 8504 Stein Bitte notieren Sie auf dem Aufkleber neben Ihrer Anschrift den genauen Rechnertyp und alle verfügbaren Informationen (Speicherkapazität, ...). 3.4 KOPIER: Aufruf: KOPIER (Modus) (Quellaufwerk) (Ziellaufwerk) ({Optionen}) Für "Modus" kann angegeben werden: ALLES = Kopieren der ganzen Diskette SYSTEM = Kopieren der Systemspuren DATEN = Kopieren der Datenspuren Für "Quell-" bzw. "Ziellaufwerk" müssen Sie die Namen der betreffenden logischen "CP/M"-Laufwerke angeben. Folgende Op- tionen sind möglich: A = Keine vorherige Sicherheitsabfrage (um KOPIER beispiels- weise in SUBMIT-Files einzusetzen) V = Verifizieren jeder kopierten Spur Bis auf die Optionen werden alle nicht angegebenen Parameter von KOPIER abgefragt. Die für Quell- und Ziellaufwerk mit KONFIG eingestellten Parameter müssen übereinstimmen. Verwen- den Sie ansonsten das CP/M-Programm PIP! Achtung: KOPIER kopiert nur die belegten Spuren einer Dis- kette! Beispiel: KOPIER DATEN A B {V} Alle Datenspuren der Diskette A werden auf die Diskette B kopiert und verifiziert. 4 Technische Informationen 4.1 Speicheraufteilung Ihr Genie-III-CP/M benutzt unten aufgeführte Speicherauftei- lung: !--------! FFFF ! ! Tabelle aller Systemkonstanten, die vom ! SYSTAB ! Treiber-EPROM benutzt werden F800 ! ! +--------+ F7FF ! ! ! BIOS ! E200 ! ! +--------+ E1FF ! ! ! BDOS ! C300 ! ! +--------+ C2FF ! ! ! TPA ! 48.5 KBytes Benutzerbereich 0100 ! ! +--------+ 00FF ! ! ! PAGE 0 ! 0000 ! ! !--------! 4.2 Gerätezuordnung Nachstehende CP/M-Geräte werden von der Hardware unterstützt: CRT = Bildschirm und Tastatur LPT = Parallelschnittstelle (Drucker) TTY = serielle Schnittstelle 4.3 Tastatur Code-Tabelle der Sondertasten: Taste ! Bezeichnung ! Hex ! Dez ! ! Code ! Code ====================+===========================+======+===== Hochpfeil ! Vertical Tab ! 0B ! 011 --------------------+---------------------------+------+----- SHIFT + Hochpfeil ! Device Control 2 ! 12 ! 018 --------------------+---------------------------+------+----- CTRL + Hochpfeil ! End of Transmission Block ! 17 ! 023 --------------------+---------------------------+------+----- Abwärtspfeil! Line Feed ! 0A ! 010 --------------------+---------------------------+------+----- SHIFT + Abwärtspfeil! End of Text ! 03 ! 003 --------------------+---------------------------+------+----- CTRL + Abwärtspfeil! Substitute ! 1A ! 026 --------------------+---------------------------+------+----- Linkspfeil ! Backspace ! 08 ! 008 --------------------+---------------------------+------+----- SHIFT + Linkspfeil ! Cancel ! 18 ! 024 --------------------+---------------------------+------+----- CTRL + Linkspfeil ! Bell ! 07 ! 007 --------------------+---------------------------+------+----- Rechtspfeil ! Form Feed ! 0C ! 012 --------------------+---------------------------+------+----- SHIFT + Rechtspfeil ! Horizontal Tab ! 09 ! 009 Taste ! Bezeichnung ! Hex ! Dez ! ! Code ! Code ====================+===========================+======+===== CTRL + Rechtspfeil ! Acknowledge ! 06 ! 006 --------------------+---------------------------+------+----- BREAK ! Escape ! 1B ! 027 --------------------+---------------------------+------+----- SHIFT + Break ! Zeichensatz Umschaltung --------------------+---------------------------+------+----- CLEAR ! Delete ! 7F ! 127 --------------------+---------------------------+------+----- SHIFT + CLEAR ! Löschen des Bildschirms --------------------+---------------------------+------+----- NEW LINE (ENTER) ! Carriage Return ! 0D ! 013 --------------------+---------------------------+------+----- PRINT ! Ausdrucken des Bildschirminhaltes Sollten Sie noch nicht die neue deutsche Flachtastatur für Ihren Genie III besitzen, achten Sie bitte auf die Taste F1. Besitzt sie noch nicht die zusätzliche Aufschrift ESC, muß die LOCK-Taste für ein richtiges Funktionieren des SHIFT- LOCKs modifiziert werden. Bitte wenden Sie sich diesbezüglich an Ihren Händler oder TCS. Ein Tip für Bastler: Die LOCK-Taste muß auf der Kreuzung der Adreßleitung 38E0 mit der Datenleitung 3 liegen (zwischen den Tasten "00" und "," des Zehnerblocks). Mit SHIFT + BREAK können Sie zwischen deutschem und Standard- ASCII-Zeichensatz umschalten. Bei eingeschaltetem deutschen Zeichensatz werden zusätzlich folgende Zeichen erzeugt: Taste ! Bildschirmanzeige ! Bezeichnung ! Hex ! Dez ===========!===================!=============!=======!======= | ! @ ! Paragraph ! 40 ! 064 -----------+-------------------+-------------+-------+------- SHIFT + ~ ! ^ ! Zirkumflex ! 5E ! 094 Bei eingeschaltetem Standard-ASCII-Zeichensatz werden zusätz- lich folgende Zeichen erzeugt: Taste ! Bildschirmanzeige ! Hex-Code ! Dez-Code ==========!===================!==========!========= Ä ! [ ! 5B ! 091 ----------+-------------------+----------+--------- Ö ! \ ! 5C ! 092 ----------+-------------------+----------+--------- Ü ! ] ! 5D ! 093 ----------+-------------------+----------+--------- ß ! ^ ! 5E ! 094 ----------+-------------------+----------+--------- SHIFT + Ä ! { ! 7B ! 123 ----------+-------------------+----------+--------- SHIFT + Ö ! | ! 7C ! 124 ----------+-------------------+----------+--------- SHIFT + Ü ! } ! 7D ! 125 ----------+-------------------+----------+--------- SHIFT + ß ! ~ ! 7E ! 126 4.3.1 WordStar Tastatur Bei eingeschalteter WordStar Tastatur gilt folgende Belegung der Sondertasten: Taste ! Bezeichnung ! WordStar ! ! Code ====================+===========================+========= Hochpfeil ! Kursor Zeile hoch ! ^E --------------------+---------------------------+--------- SHIFT + Hochpfeil ! Kursor Dateianfang ! ^QR --------------------+---------------------------+--------- CTRL + Hochpfeil ! Kursor Schirmanfang ! ^QE --------------------+---------------------------+--------- Abwärtspfeil! Kursor Zeile abwärts ! ^X --------------------+---------------------------+--------- SHIFT + Abwärtspfeil! Kursor Dateiende ! ^QC --------------------+---------------------------+--------- CTRL + Abwärtspfeil! Kursor Schirmende ! ^QX --------------------+---------------------------+--------- Linkspfeil ! Kursor Spalte links ! ^S --------------------+---------------------------+--------- SHIFT + Linkspfeil ! Kursor Zeilenanfang ! ^QS --------------------+---------------------------+--------- CTRL + Linkspfeil ! Kursor Wort links ! ^A --------------------+---------------------------+--------- Rechtspfeil ! Kursor Spalte rechts ! ^D --------------------+---------------------------+--------- SHIFT + Rechtspfeil ! Kursor Zeilenende ! ^QD --------------------+---------------------------+--------- CTRL + Rechtspfeil ! Kursor Wort rechts ! ^F --------------------+---------------------------+--------- BREAK ! Laufenden Bef. abbrechen ! ^U --------------------+---------------------------+--------- CLEAR ! Löschen bis Zeilenende ! ^QY --------------------+---------------------------+--------- SHIFT + CLEAR ! Löschen bis Zeilenanfang ! ^QDEL Taste ! Bezeichnung ! WordStar ! ! Code ====================+===========================+========= CTRL + CLEAR ! Löschen Zeichen links ! DEL --------------------+---------------------------+--------- CTRL + Leertaste ! Untrennbarer Leerschritt ! ^PO --------------------+---------------------------+--------- F1 ! Einfügemodus ein/aus ! ^V --------------------+---------------------------+--------- F2 ! Einfügen Zeile ! ^N --------------------+---------------------------+--------- F3 ! Löschen Zeichen rechts ! ^G --------------------+---------------------------+--------- F4 ! Löschen Wort ! ^T --------------------+---------------------------+--------- F5 ! Löschen Zeile ! ^Y --------------------+---------------------------+--------- F6 ! Absatz formatieren ! ^B --------------------+---------------------------+--------- F7 ! Trennhilfe ein/aus ! ^OH --------------------+---------------------------+--------- F8 ! Blocksatz ein/aus ! ^OJ --------------------+---------------------------+--------- P1 ! Tabulator ! ^I --------------------+---------------------------+--------- P2 ! Zeile rückwärts rollen ! ^W --------------------+---------------------------+--------- P3 ! Zeile vorwärts rollen ! ^Z --------------------+---------------------------+--------- P4 ! Seite rückwärts rollen ! ^R --------------------+---------------------------+--------- P5 ! Seite vorwärts rollen ! ^C 4.4 Bildschirm Tabelle der Bildschirmsteuercodes: Hex-Code ! Dez-Code ! Funktion ==========+==============+=================================== 07 ! 007 ! Ausgabe eines Pieptones ----------+--------------+----------------------------------- 08 ! 008 ! Kursor links ----------+--------------+----------------------------------- 0A ! 010 ! Kursor abwärts ----------+--------------+----------------------------------- 0B ! 011 ! Kursor hoch ----------+--------------+----------------------------------- 0C ! 012 ! Kursor rechts ----------+--------------+----------------------------------- 0D ! 013 ! Kursor Zeilenanfang ----------+--------------+----------------------------------- 18 ! 024 ! Löschen bis Zeilenende ----------+--------------+----------------------------------- 19 ! 025 ! Löschen bis Bildschirmende ----------+--------------+----------------------------------- 1A ! 026 ! Löschen des Bildschirms ----------+--------------+----------------------------------- 1E ! 030 ! Kursor "home" ----------+--------------+----------------------------------- 1B 0C ! 027 012 ! Kursor abschalten ----------+--------------+----------------------------------- 1B 0D ! 027 013 ! Kursor einschalten ----------+--------------+----------------------------------- 1B 3D m n ! 027 061 m n ! Kursor positionieren ! ! (Zeile + 20H, Spalte + 20H) ----------+--------------+----------------------------------- 1B 41 ! 027 065 ! ASCII Zeichensatz einschalten ----------+--------------+----------------------------------- 1B 47 ! 027 071 ! Deutschen Zeichensatz einschalten ----------+--------------+----------------------------------- 1B 49 n ! 027 073 n ! Setzen der obersten Zeile (+ 20H) Hex-Code ! Dez-Code ! Funktion ==========+==============+=================================== 1B 4A n ! 027 074 n ! Setzen der untersten Zeile (+ 20H) ----------+--------------+----------------------------------- 1B 4B n ! 027 075 n ! Setzen der linken Spalte (+ 20H) ----------+--------------+----------------------------------- 1B 4C n ! 027 076 n ! Setzen der rechten Spalte (+ 20H) ----------+--------------+----------------------------------- 1B 4E ! 027 078 ! Einschalten der Standardtastatur ----------+--------------+----------------------------------- 1B 4F ! 027 079 ! Einschalten der WordStar Tastatur ----------+--------------+----------------------------------- 1B 50 ! 027 080 ! Zeichen einfügen ----------+--------------+----------------------------------- 1B 51 ! 027 081 ! Zeichen löschen ----------+--------------+----------------------------------- 1B 52 ! 027 082 ! Inverse Darstellung einschalten ----------+--------------+----------------------------------- 1B 53 ! 027 083 ! Inverse Darstellung abschalten ----------+--------------+----------------------------------- 1B 56 ! 027 086 ! Zeile einfügen ----------+--------------+----------------------------------- 1B 57 ! 027 087 ! Zeile löschen Um größten Komfort bei der Programmierung von Bildschirmmas- ken zu bieten, wurde jetzt zusätzlich ein sogenannter "window"-Modus geschaffen, der es ermöglicht, den Ein-/Ausga- bebereich des Bildschirms einzugrenzen, wobei Kopf- und Fuß- zeile bzw. linke und rechte Spalte frei gewählt werden kön- nen. Ist der E/A-Bereich einmal auf diese Weise eingegrenzt wor- den, ist es nicht mehr möglich, Bildschirmpositionen außer- halb des angegebenen Fensters zu beschreiben. Alle Steuer- funktionen wie "Lösche Zeile bzw. Zeichen", "Füge Zeile bzw. Zeichen ein", Löschen des Bildschirms usw. beziehen sich jetzt nur noch auf dieses Fenster. Befindet sich der Kursor vor der Definition des Bildschirmfensters außerhalb dieses Fensters, wird er nach Eingrenzen des Bildschirms in dieses Fenster "hineingezogen". Auf der Systemdiskette ist in der Programmiersprache "C" der Quellcode einer Routine namens "window" beigefügt, die recht eindrucksvoll die Möglichkeiten dieses "window"-Modus demonstriert. Diese Routine wird auch bei den menügesteuerten Dienstprogrammen FTASTEN und KONFIG eingesetzt. 4.5 Serielle Schnittstelle 4.5.1 Übertragung digitaler Daten Über relativ lange Distanzen werden digitale Daten generell in serieller Form übertragen, wobei eine einfache zweipo- lige Leitung Sende- und Empfangsgerät miteinander verbin- det. Es gibt zwei Übertragungstechniken, asynchron und syn- chron. Die serielle Schnittstelle Ihres Genie III Systems überträgt Daten asynchron und bit-seriell. Asynchrone Über- tragung benötigt keinen Takt zur Synchronisierung, und der Datenstrom muß nicht kontinuierlich sein. Das bedeutet, daß zwischen der Übertragung individueller Zeichen Pausen be- liebiger Länge auftreten dürfen. Ein individuelles Zeichen besteht aus einem Datenwort (ge- wöhnlich fünf bis acht Bits lang) und synchronisierenden Start- und Stopelementen. Das Startelement ist eine einzel- ne logische Null (ein Bit), die vor dem Datenwort steht. Das Stopelement wird solange übertragen, bis das nächste Startelement anschließt. Es gibt keine obere Grenze für die Länge des Stopelements. Es existiert jedoch ein unteres Li- mit, welches von den Systemeigenschaften der angeschlosse- nen Geräte abhängt. Typische Untergrenzen sind 1.0, 1.42 bzw. 2.0 Bits Länge (die meisten modernen Systeme benutzen ein oder zwei Stopbits). Der negative Übergang des Startelements definiert die Posi- tion der einzelnen Bits im zu übertragenden Datenwort. Eine interne Uhr im Empfänger wird bei diesem Übergang gesetzt und dazu verwendet, die Position der Datenbits zu lokali- sieren. Es gibt einige gute Gründe, die asynchrone Übertragungs- technik zu benutzen. Es muß kein Taktsignal mit dem Daten- wort übertragen werden, was zu einer Vereinfachung der be- nötigten Hardware führt. Auch müssen die zu übertragenden Zeichen nicht hintereinander gesendet werden; sie werden übertragen, wenn sie verfügbar sind. Dies ist besonders nützlich, wenn Daten von einem Gerät mit manueller Eingabe übertragen werden (z.B. einer Tastatur). Der Hauptnachteil der asynchronen Übertragungstechnik ist, daß ein nicht un- erheblicher Teil der Kommunikationsbandbreite für Start- und Stopelemente verbraucht wird. Die Frequenz, mit der asynchrone Daten übertragen werden, wird als Baudrate bezeichnet. Die Baudrate ist die Umkeh- rung der Übertragungsdauer des kürzesten Signalelements, normalerweise ein Datenbitintervall. Wenn ein Stopbit ver- wendet wird, entspricht die Baudrate der Bitrate; bei Sy- stemen, die mehr als ein Stopbit verwenden, entspricht die Baudrate nicht mehr der Bitrate. ------+ +----+ +--+ +-------+ +--+ +-- ^ ! ! ! ! ! ! ^ ! ! ! ! ! +--+ +----+ +------+ ! +------+ +----------+ ! ^ ^___________________^ ! ^ ^_________________^ Stop- ! ! Stop- ! ! element! 8-Bit Datenwort element! 8-Bit Datenwort ! (11001000) ! (00100000) Start- Start- element element Asynchrone Daten Asynchrone Übertragung über eine einfache zweipolige Lei- tung kann mit mittelhohen Baudraten durchgeführt werden (10 KBaud oder mehr, abhängig von der Leitungslänge und der Treiberhardware. Bei Übertragung über ein Telefonnetz ist die Baudrate auf zirka 2 KBaud begrenzt, und ein Modem ist erforderlich, um die Datenimpulse in analoge Daten (Töne), die über ein Telefonnetz übertragen werden können, umzuwan- deln. 4.5.2 Signalpegel Die E.I.A.-Normen für die RS-232-C Schnittstelle definieren die Spannnungspegel und ihre zugehörigen logischen Zustände für den Austausch von Daten und Steuerinformationen zwi- schen den miteinander kommunizierenden Geräten. Beim Datenaustausch entspricht ein Signal einer logischen Eins, wenn an der Schnittstelle eine Spannung, die niedri- ger als minus drei Volt ist (bezogen auf Masse), gemessen wird, und einer logischen Null, wenn die Spannung höher als plus drei Volt ist. Bei den sogenannten "Handshake" Leitun- gen entspricht die negative Spannung dem Zustand "Aus" und die positive Spannung dem Zustand "Ein". Nachstehende Ta- belle faßt noch einmal zusammen: !===================!=========================! ! ! Übertragungsspanung ! ! Notation +------------+------------+ ! ! negativ ! positiv ! !===================!============!============! ! Logischer Zustand ! 1 ! 0 ! +-------------------+------------+------------+ ! Signalzustand ! "Marking" ! "Spacing" ! +-------------------+------------+------------+ ! Funktion ! AUS ! EIN ! +-------------------+------------+------------+ ! physik. Pegel !-15V -> -3V !+3V -> +15V ! !===================!============!============! 4.5.3 Anschlußbezeichnungen und Signalbeschreibungen Als Anschluß für die serielle Schnittstelle ist ein 25- poliger Stecker genormt (DB-25). Folgende Tabelle führt die Anschlußbelegung auf: DTE ! Pin ! DIN-Bezeichnung ! EIA-Bezeichnung ! CCITT! DCE ----+-----+---------------------------+------------------------------+------+---- --- ! 1 ! E1 Schutzerde ! PGND Protective ground AA! 101 ! --- ----+-----+---------------------------+------------------------------+------+---- --> ! 2 ! D1 Sendedaten ! TD Transmit Data BA! 103 ! --> ----+-----+---------------------------+------------------------------+------+---- <-- ! 3 ! D2 Empfangsdaten ! TD Receive Data BB! 104 ! <-- ----+-----+---------------------------+------------------------------+------+---- --> ! 4 ! S2 Sendeteil einschalten! RTS Request To Send CA! 105 ! --> ----+-----+---------------------------+------------------------------+------+---- <-- ! 5 ! M2 Sendebereitschaft ! CTS Clear To Send CB! 106 ! <-- ----+-----+---------------------------+------------------------------+------+---- <-- ! 6 ! M1 Betriebsbereitschaft ! DSR Data Set Ready CC! 107 ! <-- ----+-----+---------------------------+------------------------------+------+---- --- ! 7 ! E2 Betriebserde ! SGND Signal Ground AB! 102 ! --- ----+-----+---------------------------+------------------------------+------+---- <-- ! 8 ! M5 Empfangssignal ! DCD Data Channel Received CF! 109 ! <-- ! ! ! Line Signal Detector ! ! ----+-----+---------------------------+------------------------------+------+---- --> ! 20 ! S1.2 Endgerät betr.bereit ! DTR Data Terminal Ready CD! 108.2! --> ----+-----+---------------------------+------------------------------+------+---- DTE Data Terminal Equipment (Data Source, Data Sink) = DEE Datenendeinrichtung (Datenquelle, Datensenke) DCE Data Communications Equipment (Modem) = DÜE Datenübertragungseinrichtung (Modem) Signalbeschreibung Schutzerde (Protective Ground): Sie muß mit dem Geräte- chassis verbunden sein. Sie kann auch mit der "Signalerde/ Betriebserde" verbunden sein. Sendedaten (Transmit Data): Dieses Signal muß während der Intervalle zwischen den einzelnen Zeichen und der Zeit, in der keine Daten gesendet werden, im "Marking" Zustand ge- halten werden. Empfangsdaten (Receive Data): Dieses Signal muß während der Intervalle zwischen den einzelnen Zeichen und der Zeit, in der keine Daten gesendet werden, vom angeschlossenen Gerät im "Marking" Zustand gehalten werden. Sendeteil einschalten (Request-to-send): Bei Einweg- oder Vollduplexübertragung kennzeichnet der "Ein" Zustand die Sendebereitschaft der Schnittstelle. Bei Halbduplexübertragung kennzeichnet der "Ein" Zustand die Sendebereitschaft und keine Empfangsbereitschaft der Schnittstelle. Der "Aus" Zustand kennzeichnet die Empfangs- bereitschaft des angeschlossenen Gerätes. Sendebereitschaft (Clear-to-send): Dieses Signal wird vom angeschlossenen Gerät generiert und zeigt an, ob es bereit ist, Daten zu empfangen. Der "Ein" Zustand zeigt der Schnittstelle an, daß das angeschlossene Gerät Daten emp- fangen kann. Der "Aus" Zustand zeigt der Schnittstelle an, daß das angeschlossene Gerät nicht empfangsbereit ist. Betriebsbereitschaft (Data Set Ready): Dieses Signal zeigt den Status des angeschlossenen Gerätes an, wobei der "Ein" Zustand Kommunikationsbereitschaft signalisiert. Der "Aus" Zustand tritt zu allen anderen Zeiten auf und zeigt an, daß das angeschlossene Gerät alle Signale der Schnittstelle ig- noriert. Empfangssignalpegel (Carrier Detect): Der "Aus" Zustand zeigt an, daß die Signalqualität nicht ausreicht für eine einwandfreie Datenübertragung. Dieses Signal wird vom Genie CP/M nicht abgefragt. Terminal betriebsbereit (Data Terminal Ready): Der "Ein" Zustand zeigt dem angeschlossenen Gerät die Betriebsbereit- schaft der Schnittstelle an. 4.5.4 Anschlußbelegung Genie CP/M ist als DTE (Data Terminal Equipment) ausgelegt (linke Seite im o.a. Bild). Wenn zwei Geräte als DTE ausgelegt sind, müssen sie über ein sogenanntes Nullmodem verbunden werden. Hier werden die Leitungspaare (2 - 3), (4 - 5) und (6 - 20) miteinander vertauscht. Nullmodem mit Software-Protokoll Genie DTE --------------------------------------- 1 ---------------------------- 1 2 ------------\ /------------- 3 X 3 ------------/ \------------- 2 4 ----\ 5 ----/ 7 ----------------------------- 7 6 ----\ 20 ----/ Nullmodem mit Hardware-Protokoll Genie DTE --------------------------------------- 1 ---------------------------- 1 2 ------------\ /------------- 3 X 3 ------------/ \------------- 2 4 ------------\ /------------- 5 X 5 ------------/ \------------- 4 7 ---------------------------- 7 6 ------------\ /------------- 20 X 20 ------------/ \------------- 6 4.6 Acht-Zoll-Laufwerke Beim Anschluß von Acht-Zoll Laufwerken ist nachstehende An- schlußtabelle für die Pinbelegung zu beachten: !===========!========!===============! ! Genie III ! 8-Zoll ! Bezeichnung ! !===========!========!===============! ! 6 ! 32 ! DS 4 ! +-----------+--------+---------------+ ! 8 ! 20 ! INDEX/SECTOR ! +-----------+--------+---------------+ ! 10 ! 26 ! DS 1 ! +-----------+--------+---------------+ ! 12 ! 28 ! DS 2 ! +-----------+--------+---------------+ ! 14 ! 30 ! DS 3 ! +-----------+--------+---------------+ ! 18 ! 34 ! DIR SEL ! +-----------+--------+---------------+ ! 20 ! 36 ! STEP ! +-----------+--------+---------------+ ! 22 ! 38 ! WRITE DATA ! +-----------+--------+---------------+ ! 24 ! 40 ! WRITE GATE ! +-----------+--------+---------------+ ! 26 ! 42 ! TRACK 00 ! +-----------+--------+---------------+ ! 28 ! 44 ! WRITE PROTECT ! +-----------+--------+---------------+ ! 30 ! 46 ! READ DATA ! !===========!========!===============! Alle ungeraden Pins sind auf Masse zu legen. Beim angeschlos- senen Acht-Zoll Laufwerk müssen sämtliche "Terminator" Wider- stände gezogen werden (bitte beachten Sie diesbezüglich die Beschreibung Ihres Laufwerks). 5 EPROM-Treiberroutinen Im Genie III CP/M sind alle physischen Treiberroutinen streng vom BIOS getrennt. Diese Treiberroutinen sind im Boot-EPROM ab- gelegt und können über einen zusätzlichen BIOS Vektor, der hin- ter dem XMOVE Aufruf des Original BIOS liegt, erreicht werden. Bis auf den Akkumulator, der als Rückgaberegister verwendet wird, werden sämtliche Prozessorregister bei Aufruf dieser Treiberroutinen gerettet. Die einzelnen Treiberroutinen werden mittels einer Funktions- nummer unterschieden, die in Register C zu übergeben ist. Beispiel für den Aufruf der Treiberroutinen: WBOOT EQU 0000H ;warm boot entry point USERF EQU 30 ;additional BIOS function SYSTEM: PUSH BC ;save reg. BC LD IX,(WBOOT+1) ;warm boot entry point --> reg. IX LD BC,3*(USERF-1) ;offset to system entry point --> reg. BC ADD IX,BC ;add offset POP BC ;restore reg. BC JP (IX) ;perform system call and return to caller Beschreibung aller Treiberroutinen: Funktion 0: Videocontroller initialisieren Import: HL = ^Videoparametertabelle Die Parametertabelle muß mindestens 16 Bytes lang sein, da die Register R0 bis R15 des Controllers komplett geladen werden. Dieser Aufruf sollte nur von erfahrenen Systemprogrammierern verwendet werden; deshalb wird auf eine Beschreibung der Controllerregister hier nicht weiter eingegangen. Eine detail- lierte Beschreibung der Controllerregister finden Sie im Daten- blatt des Videocontrollers M6845, das bei Motorola angefordert werden kann. Funktion 1: RS232-C Schnittstelle initialisieren Import: A = line control register (LCR) HL = divisor latch (DL) Mit diesem Aufruf ist es möglich, das Datenübertragungsformat und die Baudrate der seriellen Schnittstelle einzustellen. Beschreibung der Übergabeparameter: LCR Bits 0, 1: Diese beiden Bits geben die Anzahl der Bits in jedem zu sendenden oder zu empfangenden seriellen Daten- wort an. Dabei gilt: Bit 1 ! Bit 0 ! Wortlänge ------+-------+---------- 0 ! 0 ! 5 Bits 0 ! 1 ! 6 Bits 1 ! 0 ! 7 Bits 1 ! 1 ! 8 Bits Bit 2 : Dieses Bit gibt die Anzahl der Stopbits in jedem zu übertragenden Zeichen an. Dabei gilt: Bit 2 ! Wortlänge ! Stopbits ------+-----------+--------- 0 ! 5-8 Bits ! 1 1 ! 5 Bits ! 1,5 1 ! 6-8 Bits ! 2 Bit 3 : Wenn dieses Bit logisch Eins ist, wird ein Paritäts- bit generiert (Senden) bzw. abgeprüft (Empfangen). Bit 4 : Wenn dieses Bit logisch Eins ist, wird das Paritäts- bit bei einer geraden Anzahl von logischen Einsen im Datenwort generiert, ansonsten bei einer ungeraden Anzahl. Bit 5 : Wenn dieses Bit logisch Eins ist und gerade Parität eingestellt ist, wird das Paritätsbit als logische Null generiert. Wenn ungerade Parität eingestellt ist, wird es als logische Eins generiert. Ist Bit 5 logisch Null, findet genau der umgekehrte Vorgang statt. DL Hiermit läßt sich die gewünschte Baudrate einstellen, wobei gilt: Baudrate ! DL ---------+------ 50 ! 3840 75 ! 2560 110 ! 1745 134,5 ! 1428 150 ! 1280 300 ! 640 600 ! 320 1200 ! 160 1800 ! 107 2000 ! 96 2400 ! 80 3600 ! 53 4800 ! 40 7200 ! 27 9600 ! 20 19200 ! 10 38400 ! 5 Funktion 2: Tastaturstatus Export: A = ASCII Code der gedrückten Taste (0 = keine Taste gedrückt) Funktion 3: Tastatureingabe Export: A = gelesenes Zeichen (ASCII Code) Funktion 4: Bildschirmausgabe Import: A = auszugebendes Zeichen (ASCII Code) Funktion 5: Druckerstatus Export: A = 0 Drucker bereit <> 0 Drucker nicht bereit Funktion 6: Druckerausgabe Import: A = auszugebendes Zeichen Funktion 7: RS 232-C Eingabestatus Export: A = 0 kein Zeichen empfangen <> 0 Zeichen empfangen Funktion 8: RS 232-C Eingabe Export: A = empfangenes Zeichen Funktion 9: RS 232-C Ausgabestatus Export: A = 0 Empfänger bereit <> 0 Empfänger nicht bereit Funktion 10: RS 232-C Ausgabe Import: A = zu sendendes Zeichen Funktion 11: Diskettensektor lesen Import: A = Laufwerksnummer (0-3) B = Sektornummer E = Spurnummer HL = ^Datenbuffer Export: A = Fehlerstatus 0 = kein Fehler 1 = ungültige Laufwerksnummer 2 = ungültige Spur 3 = ungültiger Sektor 4 = Laufwerk nicht bereit 6 = Datenrecord gelöscht/gesperrt 7 = Datenrecord nicht gefunden 8 = CRC-Fehler 9 = Daten verloren Bitte beachten Sie, daß der Datenbuffer oberhalb der Hauptspei- cheradresse 4800H liegen muß. Die Charakteristika der zu lesen- den Diskette können im SYSTAB Bereich des CBIOS (siehe Anhang A) eingestellt werden. Dieser Aufruf sollte jedoch nur von er- fahrenen Programmierern verwendet werden. Funktion 12: Diskettensektor schreiben Import: A = Laufwerksnummer (0-3) B = Sektornummer E = Spurnummer HL = ^Datenbuffer Export: A = Fehlerstatus 0 = kein Fehler 1 = ungültige Laufwerksnummer 2 = ungültige Spur 3 = ungültiger Sektor 4 = Laufwerk nicht bereit 5 = Laufwerksfehler 6 = Diskette schreibgeschützt 7 = Datenrecord nicht gefunden 8 = CRC-Fehler 9 = Daten verloren Funktion 13: Datum und Uhrzeit lesen Import: HL = Adresse eines 22 Bytes langen Buffers, der bei Rückkehr zum Aufrufer Datum und Uhrzeit in der Form WWW MM/DD/YY HH:MM:SS enthält, wobei gilt: WWW = Wochentag MM = Monat DD = Tag YY = Jahr HH = Stunden MM = Minuten SS = Sekunden Funktion 14: Datum und Uhrzeit setzen Import: A = Wochentag (0-6, 0 = Sa) B = Monat (MM) D = Stunden (HH) E = Minuten (MM) H = Tag (TT) L = Jahr (JJ) Sämtliche Daten werden im BCD-Format übergeben. Bei der Zehnerstelle der Stunden muß Bit 3 gesetzt sein. Im Falle eines Schaltjahres muß Bit 2 bei der Zehnerstelle des Tages gesetzt sein. Funktion 15: Systemreset Funktion 18: Datum und Uhrzeit im CP/M 3 Format lesen Import: HL = Adresse eines 5 Bytes langen Buffers, der bei Rückkehr zum Aufrufer Datum und Uhrzeit in der Form TTTTHHMMSS enthält, wobei gilt: TTTT = Anzahl der Tage seit dem 1.Januar 1978 (binär) HH = Stunden (BCD) MM = Minuten (BCD) SS = Sekunden (BCD) Funktion 19: Datum und Uhrzeit im CP/M 3 Format setzen Import: D = Stunden (BCD) E = Minuten (BCD) HL = Anzahl der Tage seit dem 1. Januar 1978 (binär) 6 Genieplus Karte Die von der Firma HJS Computersysteme lieferbare Genieplus Karte wird vom Genie III CP/M voll unterstützt, wobei je nach Bestückung mit zusätzlichem RAM eine ultraschnelle Pseudo- floppy mit 32 - 352 KBytes Speicherkapazität zur Verfügung steht (Laufwerk M). 6.1 Das Dienstprogramm KONFIG Geben Sie beim Einstellen der Systemparameter exakt den zu- sätzlichen Speicherausbau an. Die Parameter der beiden zusätzlichen seriellen Schnittstel- len können ebenfalls mit KONFIG eingestellt werden. Auch Laufwerk A kann nun vom Pseudolaufwerk P überlagert wer- den. 6.2 Tastatur Abweichend von den Angaben im Kapitel 4.3 gelten nachstehende Sondertastencodes: Taste ! Bezeichnung ! Hex ! Dez ! ! Code ! Code ====================+===========================+======+===== Hochpfeil ! Start of Text ! 02 ! 002 --------------------+---------------------------+------+----- SHIFT + Hochpfeil ! Vertical Tabulation ! 0B ! 011 --------------------+---------------------------+------+----- Linkspfeil ! Start of Heading ! 01 ! 001 --------------------+---------------------------+------+----- CTRL + Linkspfeil ! Backspace ! 08 ! 008 --------------------+---------------------------+------+----- Rechtspfeil ! Acknowledge ! 06 ! 006 --------------------+---------------------------+------+----- CTRL + Rechtspfeil ! Bell ! 07 ! 007 6.3 Speicheraufteilung Ihr Genie III CP/M mit Unterstützung der Genieplus Karte be- nutzt unten aufgeführte Speichereinteilung: !-----------! !-----------! 7FFF ! ! FFFF ! ! ! BNKBIOS ! ! RESDRIVER ! 6F00 ! ! FD00 ! ! +-----------+ +-----------+ 6EFF ! ! FCFF ! ! ! BNKBDOS ! ! RESBIOS ! 4100 ! ! F400 ! ! +-----------+ +-----------+ 40FF ! ! F3FF ! ! ! BUFFER ! ! RESBDOS ! 1400 ! ! EE00 ! ! +-----------+ +-----------+ 13FF ! ! EDFF ! ! ! SYSTAB ! ! TPA ! 59.25 KBytes Benutzerbereich 0D00 ! ! 0100 ! ! +-----------+ +-----------+ 0CFF ! ! 00FF ! ! ! BNKDRIVER ! ! PAGE 0 ! 0000 ! ! 0000 ! ! !-----------! !-----------! BANK 0 BANK 1 6.4 Gerätezuordnung Nachstehende zusätzliche CP/M Geräte werden von der Genieplus Karte unterstützt: LPT2 = zusätzliche Parallelschnittstelle (Drucker) TTY2 = zusätzliche erste serielle Schnittstelle TTY3 = zusätzliche zweite serielle Schnittstelle 6.5 Treiberroutinen Da beim CP/M mit Unterstützung der Genieplus Karte die Tabel- le der Systemkonstanten (SYSTAB) nicht in der dem Benutzer verfügbaren Speicherbank liegt, wurde eine zusätzliche Trei- berroutine geschaffen, die ein Lesen/Schreiben der Systembank gestattet. Funktion 15 der Treiberroutinen hat nun folgende Bedeutung: Funktion 15: Interbank Transfer Import: A = Quellbank (oberes Nibble) Zielbank (unteres Nibble) B = Anzahl der zu transferierenden Bytes(128 max.) DE = Zieladresse HL = Quelladresse SYSTAB hat den gleichen Aufbau wie beim reinen EPROM-System, beginnt hier jedoch bei der Speicheradresse 0D00H. Bei Aufruf der Funktionen 1 und 7 - 10 muß im Register B zu- sätzlich die Nummer der angesprochenen RS 232-C Schnittstelle übergeben werden. Hierbei gilt: 0 = Standardschnittstelle 1 = erste zusätzliche Schnittstelle 2 = zweite zusätzliche Schnittstelle Bei Aufruf der Funktionen 5 und 6 muß im Register B zusätz- lich die Nummer der angesprochenen Parallelschnittstelle übergeben werden. Hierbei gilt: 0 = Standardschnittstelle 1 = zusätzliche Schnittstelle Bei Festplattensystemen existieren zusätzlich nachstehende Treiberroutinen: Funktion 16: Hard Disk Sektor lesen Import: A = Banknummer des Datenbuffers (oberes Nibble) Laufwerksnummer (0-2, unteres Nibble) B = Sektornummer DE = Spurnummer HL = ^Datenbuffer Export: A = Fehlerstatus 0 = kein Fehler 1 = ungültige Laufwerksnummer 2 = ungültige Spur 3 = ungültiger Sektor 4 = Laufwerk nicht bereit 7 = Datenrecord nicht gefunden 8 = CRC-Fehler Die Charakteristika des zu lesenden Festplattenlaufwerks kön- nen im SYSTAB Bereich (siehe Anhang A) eingestellt werden. Die Sektoren werden absolut gelesen, d.h. es wird keine Ver- waltung von defekten Sektoren durchgeführt. Dieser Aufruf sollte nur von erfahrenen Programmierern verwendet werden. Funktion 17: Hard Disk Sektor schreiben