.pl 72 .he STOTZ AUGUST 1983 # .hm 3 .op M O S 6.X Aufbau und Schnittstellen .pa Š.he #          Einleitung          Daó  MOÓ 6.Ø isô ií Gegensatú zuí fr}hereî MOS-Systeí (5.21)¬  daó          auó  eineí  einzigeî gro~eî Teiì  bestand¬  auó  vieleî  kleinereî          Moduleî  zusammengesetzt®  Dieså  Modulå sinä  volì  verschieblicè          geschriebeî  unä  k|nneî sï beliebiç zusammengebundeî unä  lokali          sierô  werden®  Dadurcè  isô eó m|glicè  nuò  wirklicè  notwendigå          Systemteilå  zõ  verwendeî unä damiô deî zuò  Verf}gunç  stehendeî          Hauptspeicheò  optimaì f}ò deî Anwendeò zõ  nutzen®  Dar}berhinauó          wurdeî  diå Treiber-Modulå durcè Vereinfachunç unä verst{rktå Ver          wendunç voî Z80-Instruktioneî insgesamô wesentlicè gestrafft.          Daó  zuò  jeweiligeî Hardware-Konfiguratioî  "passende¢  Betriebs          systeí  solì  miô Hilfå eineó  System-Generatorprogrammó  erstellô          werden®  Dieseó  Programí bedienô sicè ií Dialoç miô deí  Benutzeò          deò  verschiedeneî  Module¬  diå iî Forí voî REL-Fileó  auæ  eineí          Datentr{geò zuò Verf}gunç stehen® .pa Š           ]berblick                     A Tabellenmodul           B Floppymodul           C Bildschirmmodul           D Tastaturmodul           E V24-Modul           F Plattenmodul .pa Š          Das Tabellenmodul (A)          Iî dieseí Teiì befindeî sicè s{mtlichå Systemtabellen¬ diå f}ò daó          jeweiligå Systeí notwendiç sind® Daó Moduì selbsô wirä nochmaló iî          mehrerå  Einzelteilå  aufgeteilt®  Diå genauå Aufteilunç  wirä  ií          folgendeî beschrieben.           ]bersicht Tabellenmodul                     Sprungverteiler           System-Tabellen Floppy           System-Tabellen Platte           Bad-Block-Tabellen Plattenmodul           Code-Tabellen Bildschirm + V24           Tastatur-Tabelle System           Tastatur-Tabelle Anwender           Tabelle f}r Mehrfach-Funkt.Tasten           Merkerbereich .pa Š          1. Sprungverteiler             Deò  Sprungverteileò  solì  ausschlie~licè  deí  }bergeordneteî             Betriebssysteí  zug{nglicè sein®  Deò Anwendeò haô sicè  grund             s{tzlicè  deò eigentlicheî Betriebssystem-Schnittstelleî  (z.B®             CP/Í - Schnittstelle© zõ bedienen®             Der Sprungverteiler umfa~t folgende Einspr}nge:           CI - Tastatureingabe                      CSTS           -        Tastaturstatus                      CO - Ausgabe Bildschirm           SIOAIN - Kanal A Input           SIOAOU - Kanal A Output           SIOBIN - Kanal B Input           SIOBOU - Kanal B Output                      PIO            -        PIO Output              SIOAST - Kanal A Status              SIOBST - Kanal B Status              PIOST - PIO Status              SIOST - Drucker Status           DENTRY - Floppy - Einsprung           SENTRY - Floppy - Einsprung mit Select           WIN - Platten - Einsprung           SWIN - Platten - Einsprung mit Select .pa Š          2. Systemtabellen Floppy             F}ò  jedes¬  voí }bergeordneteî Betriebssysteí zõ  verwaltendeî             Floppy-Laufwerk¬  werdeî hieò 1¶ Bytå reserviert®  Diå Belegunç             dieseò  1¶  Bytå differierô geringf}giç jå nacè Verwendunç  voî             bisherigeî  Floppy-Interfaceó  (MC80-53/MC80-85©  odeò   Media-             Controlleò (MC80-96).             Belegung:             Byte Bedeutung              1              Hardware-Adresse              2 Treiber-Identifikation           3 Spurzahl (beginnend bei 0)           4 Sektorzahl (beginnend bei 1)           5 Spur bei der Schreibkompensation einsetzt           6 Read after write (ja => FF, nein => 0)           7 Doorlock (ja => FF, nein => 0)           8 Ausgabe-Byte I (externes Register I)           9 Ausgabe-Byte II (nur Media-Controller)           10 Spurmerker (mit FF vorbelegt)           1±  Stepping-ratå (Bitó ° unä ± iî Typå I-Befehleî 179X)           12 Anzahl physikalischer Steps bei 1 logischen Step           13 Aktuelle Spurposition Seite 0           mit 0 vorbelegt           14 Aktuelle Sektorposition Seite 0           werden vom           15 Aktuelle Spurposition Seite 1           Treiber ver{ndert           16 Aktuelle Sektorposition Seite 1 .pa Š          3. Systemtabellen Platte             F}ò jedeó voí }bergeordneteî Betriebssysteí angesprochenå Lauf             werë werdeî hieò 1¶ Bytå reserviert.           Belegung:           Byte Bedeutung           1 Hardware-Adresse         2 Treiber-Identifikation         3 Anzahl Spuren (LOW) (beginnend bei 0)         4 Anzahl Spuren (HIGH)         5 Anzahl Sektoren pro Teilspur (beginnend bei 0)         6 Wert f}r Schreibkompensation         7 letzter Kopf <--> 1. Kopf (2 Halbbytes)         8 Drive-Nummer + Sektor SIZE         9 Stepping-rate (Bits 0-3 im SEEK-Befehl)         10 Anzahl von Step-Pulsen bei einem Step         11 Frei         12 Frei         13 Aktuelle Spurposition (wird mit FF vorbelegt)         14 Aktuelle Spurposition (wird mit FF vorbelegt)         15 Aktuelle Sektorposition (wird mit FF vorbelegt)         16 Aktuelle Sektorposition (wird mit FF vorbelegt)          Aî  dieså Tabelleî schlie~ô sicè diå entsprechendå Zahì Baä  Blocë          Tabelleî aî (5° Byteó prï Laufwerk). .pa Š          4® Code-Tabelleî Bildschirm Deò Bildschirí wirä }beò einå zeichenweiså Schnittstellå ange sprochen®  ]beò  dieså  Schnittstellå wiä aucè diå  V2´  (SIO© initialisiert®  Dabeé werdeî Sonderzeicheî bzw® Escape-Sequen zeî aló Sonderfunktioneî interpretiert® Iî dieseò Tabellå sinä diå  Escapå - Sequenzeî unä diå dazugeh|rigeî Adresseî zõ  deî Funktioneî ií Bildschirm-Treibeò abgelegt®  Diå Tabellå umfa~ô 25¶ Bytes.             Tabelle f}r Escape-Sequenzen:           Code Adresse Code             (Voreinstellung) (Anwender)           1 Byte 2 Byte 1 Byte insgesamt 256 Bytes           ==¾ Platú f}ò 64           Funktionen .pa Š          5. Tastatur-Tabelle System (256 Bytes)             Iî dieseò Tabellå steheî diå Codeó f}ò diå Tastenbelegung®  Deò             Matrix-Werô  deò Tastå bildeô deî Indeø f}ò diå Tabelle®  Dabeé             m}sseî  diå 12¸ Wertå f}ò diå Unshift-Ebenå unä diå  12¸  Wertå             f}ò diå Shift-Ebenå b}ndiç aufeinandeò folgen.          6. Tastatur-Tabelle Anwender             Deí Anwendeò isô eó m|glich¬  zuò Programmlaufzeiô diå  System             tastenbelegunç durcè einå eigenå Belegunç zõ ersetzen®  Hierf}ò             werdeî ií Tabellenmoduì 25¶ Byteó reserviert.          7. Tabelle f}r Mehrfach-Funktionstasten (256 Bytes)             ]beò  einå ií Bildschirmmoduì n{heò beschriebenå Funktioî  kanî             deò Anwendeò eineò Tastå einå Mehrfach-Funktioî zuordnen® Daf}ò             werdeî ií Tabellenmoduì (beé Bedarf© 25¶ Byteó reserviert®          8. Merkerbereich                  Hieò  sinä Merkerzellen¬  auæ diå diå verschiedeneî Treibermo             dulå gleicherma~eî zugreifeî m}ssen. .pa Š          Das Floppy - Modul (B)          F}ò  diå  verschiedeneî Hardware-Konfigurationeî  steheî  folgendå          Treibermodulå zuò Verf}gung.          1. Floppy-Treibeò Dieseò Treibeò kanî folgendå Floppy-           formate bzw. Aufzeichnungsverfahren           MC80-53 behandeln (2 getrennte Interfaces).           MC80-85 a) Minifloppy 48tpi+96tpi (MC80-53)           b) 8 Zoll Single-Density (MC80-85)          2. Media-Treiber Folgende Formate bzw. Aufzeichnungs-           verfahren (1 Interface).           polling a) Minifloppy 48tpi+96tpi           b) 8 Zoll Single-Density           c) Mikrofloppy Single-Density          3. Media-Treiber Folgende Formate bzw. Aufzeichnungs-           verfahren (1 Interface m. DMA-Contr.)           DMA a) Minifloppy 48tpi+96tpi           b) Minifloppy 2MB HD           c) 8 Zoll Single+Double-Density           d) Mikrofloppy Single+Double Density .pa Š          Schnittstellen-Floppymodul          Diå Steuerunç deó Treiberó erfolgô }beò Aufruf- unä  R}ckgabepara          meter¬ diå iî deî Registerî unä Flagó }bergebeî werden.          Es existieren 2 Treibereing{nge:          1. SENTRY: Laufwerksnummer und Diskettenseite werden in einem           Parameter explizit angegeben.          2. DENTRY: Laufwerksnummer und Diskettenseite {ndern sich gegen-           }ber dem vorangegangenen Aufruf nicht.          Allgemeine Aufrufparameter          Diå Parameter}bergabå beé Treiberaufruæ geschiehô  funktionsspezi          fisch®  Diå  folgendeî Parameteò sinä jedocè beé alleî  Funktioneî          identiscè unä m}sseî iî jedeí Falì }bergebeî werden.          Eingang SENTRY: Funktionsnummer in RA           Laufwerk/Seite in RL          Eingang DENTRY: Funktionsnummer in RA           Laufwerk/Seite wie bisher          Die Funktionsnummern sind in Tabelle I zusammengefasst.          Der Parameter LW/Seite hat folgende Form:           Bit 20 = 0 ==> Seite 0           Bit 20 = 1 ==> Seite 1          Daó oberå Halbbytå isô Indeø f}ò diå Systemtabelleî ií Tabellenmo          dul.          Beispiel: 20H in RL spricht den 3. Parameterblock           im Tabellenmodul an.          Diå  funktionsspezifischeî  Parameteò werdeî beé deò  Beschreibunç          der einzelnen Funktionen behandelt. .pa Š          Allgemeine R}ckgabeparameter          Folgende Parameter werden von allen Funktionen zur}ckgegeben:          Im Fehlerfall CARRY = 1          Status RB/RC (siehe Tabelle II)          Treiberidentifikation in RA.          Alle Register und Flags werden ver{ndert.          Deò  Parameteò  Treiberidentifikatioî  isô  eiî  Kennzeicheî   deó          Floppy-Formats®  Einå  genauå Auflistunç alleò Formatå (siehå Ta          bellå III). .pa Š                Befehlsklasse Befehlsklasse              IÏ (Bit 27 = 1) CTRÌ (Biô 27” ½ 0)               Nr.      Nr.               -         0± Initialisieren¬ Laufwerk/                Spuò selektieren               82 Sektorweise Lesen bis -                zuò angegebeneî Puffer-                l{nge               83 Sektorweise Schreiben 03   Reaä afteò write                bis zur angegebenen            anw{hlen                Pufferl{ngå               84 Positionieren auf Spur= 04   Deselektieren                TN» Sektoò ½ SN                (nuò f}ò formatiertå Disk)               85   Positionieren auf Spur u. 06 Weiterpositionieren oder           Sektoò ohnå Floppyzugrifæ nichô nacè Abschlusó Lesen           oder Schreiben               86   Sektor Anpositionieren    -                    und Lesen               87   Sektor Anpositionieren    -                    und Schreiben                                              -                                              -               88 Sektorweise Lesen 0Á Schreib-Lesekopæ }ber                (wie 82) Spuò 0¬ Sektoò ± posi-                tioniereî (BOD)               89 Sektorweise Schreiben 0à Positioniereî }beò                (wie 82) Spuò ½ TN,                Sektoò ½ ± (f}ò unforma-                tiertå Disketten)               8A Positionieren Spur        0D   Spur formatieren           und Sektor                                              0E   Doorlocë  bedieneî optio                                                   nal                    Tabellå Iº Funktionsnummerî deò Floppù Treiber .pa Š               Reg® Biô Bedeutunç Flag                · S/L-Kopæ stehô }beò letzteò Spur,                letzteò Sektor                ¶ S/L-Kopæ stehô }beò ersteò Spur,                ersteò Sektor                µ -               RB                4 Laufwerë Interfacå unklar,                Diskettå fehlt                3 -                2 Schreibschutz                ± -                ° -                · CRà - Fehleò SIGN                ¶ -                               µ -                ´ Sektoò nichô gefunden               Rà ³ -                ² -                ± Unzul{ssigeò Vorganç odeò Parameteò                ° Fehlersummenmeldunç CARRY                (Anforderunç nichô vollst{ndig                ausgef}hrt)               Tabellå IÉ Zusammenfassunç deò Statusr}ckmeldungen. .pa Š          2. Beschreibung der Treiberfunktionen          2.1 Funktion Sektorweise Lesen (82)          Eó  wirä aâ deò momentaneî Positioî diå ií Aufruæ  angegebenå          Anzahì  Datenbyteó gelesen®  Deò Schreib-Lesekopæ stehô  nacè          deí Leseî auæ deí n{chsteî Sektoranfang.          Aufruf: Pufferadresse RB/RC           Anzahl Datenbytes RD/RE          R}ckgabe: Position Sektor/Spur RD/RE           Lesefehler SIGN = 1, CARRY = 1          2.2 Funktion Sektorweise Schreiben (83)          Eó  wirä aâ deò momentaneî Positioî diå ií Aufruæ  angegebenå          Anzahì  Datenbyteó geschrieben®  Deò  Schreib-Lesekopæ  stehô          nacè deí Schreibeî auæ deí n{chsteî Sektoranfang.          Aufruf: Pufferadresse RB/RC           Anzahl Datenbytes RD/RE           (bei DMA nx1 Sektor)          R}ckgabe Position Sektor/Spur RD/RE           Schreibfehler SIGN = 1, CARRY = 1 .pa Š          2.3 Funktion absolutes Positionieren auf Spur und Sektor          Deò  Schreib-Lesekopæ  wirä auæ diå angegebenå  Positioî  ge          bracht.          Aufruf: Sektor RD           Spur RE          R}ckgabe: Position Sektor/Spur RD/RE          2.4   Funktioî  absoluteó Positioniereî auæ Spuò  unä  Sektoò                (85)          Wiå Funktioî 84¬  jedocè erfolgô keiî Floppyzugriff¬  diå Po          sitioî wirä lediglicè voreingestellt.          2.5 Funktion Sektor Anpositionieren und Lesen (86)          Der angegebene Sektor wird angesteuert und gelesen (nur bei          256 Bytes/Sektor).          Aufruf: Sektor RD           Spur RE                     Adresse RB/RC          R}ckgabe: Position Sektor/Spur RD/RE .pa Š          2.6 Funktion Sektor Anpositionieren und Schreiben (87)          Deò  angegebenå Sektoò wirä angesteuerô unä geschriebeî  (nuò  beé          25¶ Bytes/Sektor).          Aufruf: Sektor RD           Spur RE           Pufferadresse RB/RC          R}ckgabe: Position Sektor/Spur RD/RE          2.7 Funktion Sektorweise Lesen (88)          Identische Schnittstelle wie 82.          2.8 Funktion Sektorweise Schreiben (89)          Identische Schnittstelle wie 83.          2.9 Funktion Positionieren auf Spur und Sektor (8A)          Aufruf: Sektor RB/RC           Spur RD/RE          R}ckgabe: wie Funktion 84          2.10 Funktion Initialisieren (01) - nur }ber DENTRY          Eó  wirä Laufwerë unä Seitå selektierô sowiå beé  erstmaligeí  An          sprecheî deó Laufwerkó eiî Restorå ausgef}hrt.          Aufruf: Laufwerk/Seite RE (nicht RL !)          R}ckgabe: Adresse Parameterblock in RH/RL .pa Š          2.11 Funktion read after write anw{hlen (03)          Allen Schreibfunktionen kann wahlweise ein Pr}flesen folgen.          (nicht bei DMA - Treiber)          Aufruf: RE = 0 kein Pr}flesen           RE = FF Pr}flesen (voreingestellt)          R}ckgabe: siehe Allgemeine R}ckgabeparameter          2.12 Funktion Deselektieren (04)          Daó  Selekt-Signaì  deó betreffendeî Laufwerkó  wirä  deakti          viert®  Uí  daó Laufwerë wiedeò anzusprecheî muþ deò  n{chstå          Aufruæ }beò SENTRÙ erfolgen.          Aufruf: siehe Allgemeine Aufrufparameter          R}ckgabe: siehe Allgemeine R}ckgabeparameter          2.13 Funktion Weiterpositionieren (06)          Miô  dieseò Funktioî kanî entschiedeî werden¬  oâ nacè Leseî  bzw®          Schreibeî  auæ  deî n{chsteî Sektoò weiterpositionierô  wirä  odeò          nicht.          Aufruf: RE = 0 nicht Vorpositionieren           RE = FF Vorpositionieren (voreingestellt)          R}ckgabe: siehe Allgemeine R}ckgabeparameter          2.14 Funktion Restore (0A)          Der Schreib-Lesekopf wird auf Spur 0, Sektor 1 positioniert.          Aufruf: siehe Allgemeine Aufrufparameter          R}ckgabe: siehe Allgemeine R}ckgabeparameter .pa Š          2.15 Funktion Positionieren Spur (0C)          Eó  wirä diå angegebenå Spuò anpositionierô unä  daó  Sektor          registeò miô ± geladen® Dieså Funktioî kanî zuí Positioniereî          unformatierteò Disketteî verwendeô werden.          Aufruf: Spurnummer in RE          R}ckgabe: siehe Allgemeine R}ckgabeparameter          2.16 Funktion Spur formatieren (0D)          Aufruf: RB/RC Beginn der Spurinformation          R}ckgabe: siehe Allgemeine R}ckgabeparameter          2.17 Doorlock bedienen - optional (0E)          Miô  dieseò  Funktioî  kanî  iî  miô  Doorlocë  ausger}steteî          Ger{ten dieser aktiviert bzw. deaktiviert werden.          Aufruf: RE = 00 Doorlock aus           RE = FF Doorlock ein          R}ckgabe: siehe Allgemeine R}ckgabeparameter .pa Š          3. Datenorganisation auf einer Diskette          3.1 Gliederung in Spuren und Sektoren          Diå  Anzahì deò Spureî variierô jå nacè Arô (µ odeò  ¸  Zoll©          zwischeî 3µ unä 80¬  diå deò Sektoreî zwischeî ´ unä 26®  Diå          Anzahì  deò Datenbytes/Sektoò kanî jå nacè Formaô  128¬  256¬          512 oder 1024 Bytes betragen.          Diå  Numerierunç deò Spureî beginnô beé 0¬  diå deò  Sektoreî          beé 1.          Allå Ein/Ausgabeoperationeî beginneî aî deò Sektorkante¬  diå          durcè  eineî vorangegangeneî IO- odeò  Steuerbefehì  erreichô          wurde.          3.2 Die Form eines Sektors                Beispieì Minifloppù Double-Density: 12X 3X 1X 1X 1X 1X 1X 1X 22X 12X 3X 1X 256X 1X 54X 00 F5 FE TN SIN SN 01 F7 4E 00 F5 FB DAT F7 4E                                                                    CRC (2)                                                                    Datenfeld                                                                    Datá-Adress-Marke                                                                                                                                        CRC (2)                                                                    Sektor-L{ngen-                                                                    schl}ssel (256)                                                                    Sektornummer                                                                    Seite (0 oder 1)                                                                    Spurnummer                                                                    ID-Adress-Marke .pa Š          Treiberidentifikation          a) oberes Halbbyte           Wert Floppy-Format           1 Minifloppy 48 tpi 35 Spuren           2 Minifloppy 48 tpi 40 Spuren           3 Minifloppy 96 tpi 70 Spuren           4 Minifloppy 96 tpi 80 Spuren           5 Minifloppy 2 MB           ¶  Minifloppù  4¸ tpé Disketteî auæ 9¶ tpé L× 3µ Spuren           7 8 Zoll Single Density 77 Spuren           8 8 Zoll Double Density 77 Spuren           9 Mikrofloppy Single Density 70 Spuren           0A Mikrofloppy Double Density 70 Spuren          b) unteres Halbbyte             Wert Bytes/Sektor           1 128           2 256           4 512           8 1024          Tabelle III : Liste aller Treiberidentifikationen .pa Š          Besonderheiten bzw. [nderungen gegen}ber 5.21 System          1. Diå  Funktioneî  88¬  8¹ unä 8Á wurdeî  zus{tzlicè  aufge             nommen¬  uí  deí  aufrufendeî Programí  einå  einheitlichå             Behandlunç voî Floppù unä Plattå zõ erm|glichen.          2. Diå internå Positioniertechnië wurdå derarô ge{nderô (keiî             SEEK-Befehì zuí Anfahreî deò Spur)¬  daþ eó m|glicè wurde¬             miô  4¸  tpé beschriebenå Disketteî aucè auæ 9¶ tpé  Lauf             werkeî ansprecheî zõ k|nnen.          3. Diå Interrupt-Behandlunç wurdå verbessert® Nuò dort¬ wï eó             unbedingô n|tiç ist¬ wirä eiî Interrupô nichô zugelassen.                    4. Diå verschiedeneî Treiberidentifikationeî wurdeî neõ defi             niert.          5. Eó  sinä ií Gegensatú zõ fr}heò 128¬  256¬  51²  unä  102´             Bytes/Sektoò m|glich.          6. Diå   Stepratå   beé  Minifloppù  wurdå  wesentlicè   ver             schnellert.          7. Beé  DMÁ gesteuerteî Zugriffeî wirä beií Pr}fleseî  ledig             licè deò Statuó abgefragt¬  jedocè keiî Vergleicè Bytå f}ò             Bytå durchgef}hrt.          8. Deò  Treibeò miô DMA-Technië verlangô beií Schreibeî  einå             L{ngå î ø Sektoò ! .pa Š          Das Bildschirm-Modul (C)          Deò  Bildschirmteiì gliederô sicè iî zweé  Einzelmodule®  Daó          Grundmoduì isô deò eigentlichå Treiber-Programmanteil® Eò isô          lediglicè  abh{ngiç voí jeweiló verwendeteî Bildschirm-Inter          face® Ií sogenannteî Zusatzmoduì sinä jenå Programmteile¬ diå          direkô  miô  deí Bildwiederholspeicheò iî  Verbindunç  steheî          sowiå diå Teile¬ diå jå nacè verwendeteò Quarzfrequenú unter          schiedlicè  sind®  Daó  Zusatzmoduì isô deshalâ  aucè  unter          schiedlich¬  jå  nachdeí oâ einå CPÕ Ö odeò einå CPÕ  VÉ  zuí          Einsatú kommt®  Weiteò sinä diå Initialisierungsparameteò unä          diå f}ò diå Bildschirmgeometriå verantwortlicheî Parameteò iî          dieseí Teiì enthalten.          Folgende Grundmodule werden unterschieden:          a) Bildschirm-           Treiber                     KOMBI 1          b) Bildschirm-           Treiber           KOMBI 2          c) Bildschirm-           Treiber           KOMBI 3 .pa Š          Folgende Zusatzmodule werden unterschieden:          a) CPU V Da die Zusatzmodule in die           RAM-Page des Bildwiederhol-           KOMBI I speichers greifen, mu~ darauf           geachteô  werden¬  daþ  sich           24x80x12 dieser Teil im gemeinsamen,           residenten Speicherbereich           befindet.          b) CPU V Entsprechend gibt es diese           Zusatzmodule f}r die anderen           KOMBI I Bildschirminterfaces.           24x80x16          c) CPU V           KOMBI I                    60 Hz           24x80x12          d) CPU VI           KOMBI I           24x80x12          e) CPU VI           KOMBI I           24x80x16          f) CPU VI           KOMBI I           60 Hz           24x80x12 .pa Š          Schnittstellen Bildschirmtreiber          Diå Schnittstellå isô zeichenweiså orientiert®  Sonderzeicheî  unä          Escape-Sequenzeî werdeî interpretiert®  Daó zõ }bergebendå Zeicheî          stehô ií Registeò C® Allå Registeò werdeî ver{ndert.          1. Sonderzeichen             a) 07 --> Bell                Die Hupe ert|nt ca. 1 Sekunde lang.                       b) 08 --> Cursor links (backspace)                Der Cursor wandert um eine Position nach links.             c) 0A --> Zeilenschaltung (line feed)                Deò  Cursoò wanderô uí einå Positioî nacè unten®  Isô eò  iî                deò  untersteî Zeilå,wirä daó Bilä uí einå Zeilå  nacè  obeî                gerollt®  Diå  unterstå Zeilå wirä gel|scht®  Diå Spaltenpo                sitioî deó Cursoró bleibô dabeé unver{ndert.             d) 0C --> Bildschirm l|schen (form feed)                Deò  Bildschirm-Controlleò wirä initialisiert¬  deò  Treibeò                grundgestellt®  Deò Cursoò stehô iî deò linkeî untereî Ecke®                Deò Bildschirí wirä gel|scht. .pa Š             e) 0D --> Ende Zeile (carriage return)                Der Cursor wird an den Anfang der Zeile gestellt.             f) 11 --> Lupe einschalten (nur KOMBI I)                Deò Bildschirí wirä gel|scht®  Deò Cursoò stehô iî Lupendar                stellunç iî deò linkeî untereî Ecke®  Diå Hintergrund-Attri                butå werdeî zur}ckgesetzt.             g) 12 --> Endecode                Alle Hintergrund-Attribute werden zur}ckgesetzt.             h) 13 --> Lupe ausschalten (nur KOMBI I)                Deò Bildschirí wirä gel|scht® Deò Cursoò stehô iî Normaldar                stellunç iî deò linkeî untereî Ecke®  Diå Hintergrund-Attri                butå werdeî zur}ckgesetzt.             i) 1C --> Invers einschalten                Alle folgenden Zeichen werden invers dargestellt. .pa Š          2. Escape-Sequenzen           Deò Bildschirmtreibeò interpretierô bió zõ 6´ Escape-Sequenzen¬             wobeé  mehrerå  Ausbaustufeî unterschiedeî  werden®  (Leveì  I¬             Leveì  II¬  Leveì III)®  Diå Escape-Codeó sinä iî eineò Tabellå             voî  25¶  Byteó (siehå Tabellenmodul©  aufgelistet¬  wobeé  diå             Reihenfolgå  deò  Funktioneî innerhalâ deò  Tabellå  festgelegô             ist®  Einigå Funktioneî beinhalteî Folgeparameter® Diå ]bergabå             dieseò  Folgeparameteò erfolgô jå nacè Funktioî auæ  zweé  ver             schiedenå Arten:             a) ]bergabe im HEX-Code (hh)                (z. B. der Code 0BH wird als ein HEX-Byte }bergeben)             b) ]bergabe im ASCII-Code (xx)              (z®B® deò Codå 0BÈ wirä aló ² Bytå ASCIÉ }bergebeî --¾ 30H,42H)          Diå  folgendå  Listå deò Escape-Sequenzeî isô iî  deò  Reihenfolgå          aufgef}hrt¬  iî  deò siå aucè iî deò Tabellå stehen®  Aló  Escape-          Symboì wirä ií folgendeî 1BÈ verwendet¬  dieseò Werô isô voreinge          stellt® Anderå Wertå sinä jedocè m|glich. .pa Š           Liste Escape-Codes          a) Gruppe Cursor-Bewegungen           1B,11 Cursor home           Deò  Cursoò wirä iî diå linke¬  oberå  Eckå                                 gestellt.           1B,12               Cursor aus                                 Deò Cursoò wirä ausgeschaltet¬  abeò weiteò                                 mitverwaltet.             1B,13               Cursor ein                                 Der Cursor wird eingeschaltet.             1B,1C Cursor up                                 Deò  Cursoò  wirä uí einå Zeilå  nacè  obeî                                 gesetzt¬  aí  obereî Bildranä erfolgô  keiî                                 Rollen des Bildschirms (Voreinstellung).           1B,31 Cursor down                                 Dieså Funktioî entsprichô deò Funktioî Linå                                 Feeä (0A).             1B,1A               Cursor rechts                                 Deò  Cursoò  wirä  uí  einå  Positioî  nacè                                 rechtó bewegt®  Aí rechteî Bildranä springô                                 deò Cursoò aî deî Beginî deò n{chsteî Zeilå                                 (Voreinstellung).             1B,30 Cursor links                                 Dieså  Funktioî  entsprichô  deò   Funktioî                                 Backspacå (08).             1B,33 Carriage return                                 Diå  Funktioî  isô identiscè  miô  Carriagå                                 return (0D).             1B,1F,hh,hh Cursor positionieren mit Offset           Spalte Deò  Cursoò  wirä aî diå angegebenå  Stellå                         Zeile positioniert®  Deò  voreingestelltå  Offseô                                 betr{gt f}r Zeile und Spalte 20H.             1B,23,xx,yy Offset }bergeben                                 F}ò  Zeilå  (xx© unä Spaltå (yy©  kanî  eiî                                 beliebiger Offset }bergeben werden. .pa Š          b) Gruppe L|sch-Funktionen           1B,39 Zeile l|schen                                 Diå gesamtå Zeile¬ iî deò deò Cursoò steht¬                                 wirä gel|scht®  Deò Cursoò wirä aî deî  An                                 fanç deò gel|schteî Zeilå gestellt.                     1B,18 Rest der Zeile l|schen                                 Diå  Zeilå wirä aâ deò  momentaneî  Cursor                                 positioî gel|scht®  Diå Cursorpositioî ver                                 {nderô sicè nicht.             1B,19 Rest der Zeile l|schen                                 Diå  Zeilå wirä aâ deò  momentaneî  Cursor                                 positioî  gel|scht®  Deò Cursoò wirä aî deî                                 Anfanç deò n{chsteî Zeilå gestellt.             1B,32 Formfeed                                 Dieså   Funktioî  isô  identiscè  miô   deò                                 Funktion Formfeed (0C).             1B,38 Formfeed                                 Wiå  oben¬  docè stehô deò Cursoò nacè  deí                                 L|scheî iî Home-Position.           1B,17 Rest des Bildschirms l|schen                                 Deò Bildschirí wirä aâ deò momentaneî  Cur                                 sorpositioî  gel|scht®  Diå  Cursorpositioî                                 bleibô unver{ndert. .pa Š          c) Gruppe Editier-Funktionen (ab Level II)           1B,2A Einf}gen Zeile           Eó  wirä  einå  Leerzeilå  eingef}gt®  Allå                                 sp{tereî  Zeileî rolleî uí einå Zeilå  nacè                                 unten®  Diå bislanç letztå Zeilå gehô  ver                                 loren.             1B,2B L|schen Zeile                                 Diå  Zeile¬  iî deò deò Cursoò  stehô  wirä                                 gel|scht®  Allå sp{tereî Zeileî rolleî einå                                 Zeilå nacè oben® Aló letztå Zeilå wirä einå                                 Leerzeilå angeh{ngt.             1B,2C Einf}gen Zeichen                                 Eó wirä eiî Leerzeicheî (unteò deí  Cursor©                                 eingef}gt®  Allå weitereî Zeicheî iî dieseò                                 Zeilå wanderî uí einå Positioî nacè rechts®                                 Daó bisheò letztå Zeicheî dieseò Zeilå gehô                                 verloren.             1B,2Ä               L|schen Zeichen                                 Daó Zeicheî unteò deí Cursoò wirä gel|scht®                                 Allå  weitereî Zeicheî dieseò Zeilå wanderî                                 uí  einå Positioî nacè links®  Aló  letzteó                                 Zeichen wird ein Leerzeichen angeh{ngt. .pa Š          d) Gruppe Statuszeile (ab Level III)           1B,40 Statuszeile einschalten                                 Dieså  Funktioî  schalteô deî  Betrieâ  miô                                 Statuszeilå ein.           1B,41 Statuszeile abschalten           Deò  Betrieâ  miô Statuszeilå  wirä  ausge                                 schaltet.           1B,42,xx... Statuszeile schreiben                                 Diå  Folgebyteó  werdeî iî diå  Statuszeilå                                 geschrieben.           1B,43 L|schen Statuszeile                                 Die gesamte Statuszeile wird gel|scht.           1B,4D Vertikal-Sprung-Mode ausschalten                                 Aâ soforô wirä beé Linefeeä bzw®  Cursoò uð                                 aí Bildranä nichô gesprungen.           1B,4E Horizontal-Sprung-Mode einschalten                                 Aâ soforô wirä beé Cursoò linkó bzw® Cursoò                                 rechtó  aí  Bildranä zuí  entgegengesetzteî                                 Bildranä gesprungen.           1B,4F Horizontal-Sprung-Mode ausschalten                                 Beé Cursoò rechtó bzw® Cursoò linkó wirä aí                                 Bildranä nichô gesprungen. .pa Š          f) Gruppe Lesekommandos (ab Level II)           1B,3D Cursorposition lesen                                 Diå n{chsteî beideî CI-Eingabeî  beinhalteî                                 diå momentanå Cursorpositioî (Zeile¬  Spal                                 te).           1B,3E Zeichen lesen                                 Diå  n{chsteî dreé  CI-Eingabeî  beinhalteî                                 daó Zeicheî (VG¬  HGLOW¬  HGHIGH© unteò deí                                 Cursor.           1B,3F Status lesen                                 Diå  n{chsteî beideî CI-Eingabeî beinhalteî                                 die aktuelle Hintergrund-Belegung. .pa Š          e) Gruppe MODUS-Funktionen (ab Level II)           1B,44 Graphik-Mode setzen           1B,45 Graphik-Mode r}cksetzen           1B,46               Grau einschalten (nur KOMBI II)                                 Aâ soforô wirä miô helleò Intensit{ô ausge                                 geben.           1B,47 Blinken einschalten                                 Ab sofort wird blinkend ausgegeben.           1B,48 Invers einschalten                                 Ab sofort wird invers ausgegeben.           1B,49 Unterstreichen einschalten                                 Ab sofort wird unterstrichen ausgegeben.           1B,4A Roll-Mode einschalten                                 Aâ soforô wirä beé Linefeeä bzw®  Cursoò uð                                 am Bildrand gerollt.           1B,4B Roll-Mode ausschalten                                 Aâ soforô wirä beé Linefeeä bzw®  Cursoò uð                                 aí Bildranä nichô gerollt.           1B,4C Vertikal-Sprung-Mode einschalten                                 Aâ soforô wirä beé Linefeeä bzw®  Cursoò uð                                 aí Bildranä zuí entgegengesetzteî  Bildranä                                 gesprungen. .pa Š          g) Gruppe Spezial-Funktionen           1B,2F Hupe                                 Dieså   Funktioî  isô  identiscè  miô   deò                                 Funktioî Belì (07).           1B,24,xx Transparent ausgeben                                 Daó  Begleitbytå (xx© wirä  ohnå  Interpre                                 tatioî aî deî Bildschirí weitergegeben.           1B,27,xx(1Byte) Schirm-Dump (Level II)           Deò Schirminhalô wirä }beò deî  angegebeneî                                 Kanaì ausgedruckt.           xx = 0 PIO           xx = 1 SIO A           xx = 2 SIO B           1B,28,xx,yy Attribute setzen (nur KOMBI II)                                 Diå Hintergrund-Belegunç (xø --¾  HIGH¬  yù                                 --¾ LOW© wirä neõ gesetzt. 27 LOW 20 27 HIGH 20           Blinken Unterstreichen           Invers           Grau Adresse           Zeichensatz .pa Š           1B,35 Attribute r}cksetzen                                 Allå  Hintergrundbitó  werdeî  auæ  Vorein                                 stellunç gesetzt.           1B,1B,xx... Escape-Tabelle laden                                 Deò   Anwendeò  kanî  statô  deò  voreinge                                 stellteî  Codeó eigenå Escape-Codeó  (Code¬                                 deò deí Escape-Symboì folgt© verwenden® Diå                                 Funktioî  erwarteô alle“ 6´ Codeó iî deò  iî                                 deò Tabellå festgelegteî Reihenfolge.           1B,29 Voreingestellte Escape-Codes aktivieren                                 Diå  ií Systeí voreingestelltå Code-Tabellå                                 wirä wiedeò aktiviert.           1B,2E,xx Escape-Symbol wechseln                                 Anstatô  deó ií Systeí verwendeteî  Symboló                                 1  kanî  eiî  beliebiç andereò  Codå  (xx©                                 verwendeô werden.           1B,21,xx          Tastaturtabellå anh{ngen                                 Eó isô m|glicè statô deò ií  Betriebssysteí                                 implementierteî Tastaturtabellå eigenå Tas                                 tencodeó zõ verwenden.                 xx = 7 ==> Tabelle ist im 7 Bit Code abgelegt           xx = 8 ==> Tabelle ist im 8 Bit Code abgelegt           xx = 0 ==> "Abh{ngen" der Tabelle und zur}ck           auf Systemtabelle                            Isô  xø <> ° erwarteô daó Programí  ií  An                                 schluþ 25¶ Tastencodes.                                      ¸ Biô ASCIÉ ¸ · ¶ µ ´ ³ ² 1                            · Biô ASCIÉ · ¶ µ ´ ³ ² 1 .pa Š           1B,22,xø Umsetztabellå anh{ngen                                 Deò   Anwendeò   kanî   deò   zeichenweiseî                                 Schnittstellå  CÉ  einå Umsetztabellå  vor                                 schalten®  Dadurcè  isô  eó  m|glicè  jedeí                                 beliebigeî  Tastencodå  einå  odeò  mehrerå                                 Bildschirmfunktioneî zuzuordnen.       xx ==> Zahl der Eintr{ge                            Ií Anschluþ aî xø erwarteô daó Programí diå                                 Tabellenwerte®  Daó logischå Endå wirä  voí                                 Programí  selbsô  ermittelt®  Isô xø  ½  0¬                                 werdeî keinå weitereî Wertå erwartet.                            Diå  Codeó  werdeî ií ¸ Biô Codå  erwartet®                                 Insgesamô  werdeî 25¶ Byteó  zuò  Verf}gunç                                 gestellt.                            Aufbaõ deò Tabelle:                            Codå L{ngå String           1B,25 Tastaturbuffer l|schen                                 Diå  Tastatuò wirä initialisiert¬  deò FIFÏ                                 gel|scht.           1B,26,xx Interrupt-Flag setzen                                 Miô  dieseò  Funktioî  kanî  daf}ò  gesorgô                                 werden¬  daþ  alle“ Treibermodulå nacè  Pro                                 grammteilen¬  diå miô gesperrteí  Interrupô                                 ablaufeî m}ssen¬ deî Interrupô wiedeò frei                                 gebeî bzw® ihî gesperrô lassen.           1B,20,xx Initialisieren                                 Deò  Bildschirm-Controlleò unä diå Tastatuò                                 werdeî initialisiert®  Deò Bildschirí  wirä                                 gel|scht¬  wenî erw}nscht® Deò Cursoò stehô                                 iî deò linkeî untereî Ecke. .pa Š          Parameter xx:          Bit 20 = 0 Cursor nach letzter Schirmposition           wieder in Home-Position          Bit 20 = 1 Linefeed nach letzter Schirmposition           (vorbelegt)          Bit 21 = 0 Tastaturmodul interpretiert folgende           Tastencodes sofort (voreingestellt)           81 Cursor links, 08 wird zur}ckgegeben           82 Cursor rechts, Zeichen unter Cursor           wird zur}ckgegeben          Bit 21 = 1 alle Tastencodes werden durchgegeben          Bit 22 = 0 R}ckgabe 7 Bit ASCII (voreingestellt)          Bit 22 = 1 R}ckgabe 8 Bit ASCII          Bit 23 = 0 keine Wandlung (voreingestellt)          Bit 23 = 1 alle Kleinbuchstaben werden in Gro~-           buchstaben gewandelt          Bit 24 = 0 Bildschirm wird gel|scht (voreingestellt)          Bit 24 = 1 Bildschirm wird nicht gel|scht .pa Š           1B,10,hh Blanks ausgeben Eó  wirä diå iî hè angegebenå Anzahì  Leer stelleî (20H) ausgegeben.           1B,1D,hh,ii Mehrere Zeichen mit einem Code ausgeben                                 Eó werdeî hè Zeicheî miô deí Codå ié ausge                                 geben.           1B,16,hh,ii Cursor positionieren ohne Offset                                 Deò Cursoò wirä auæ diå angegebenå Positioî                                 gestellt® Diå ]bergabå erfolgô ohnå Offset.           1B,1E,hh Hintergrund setzen (nur KOMBI I)                                 Miô  dieseò  Funktioî isô eó  m|glich¬  diå                                 Hintergrundbelegunç zõ {ndern® Beií KOMBÉ É                                 isô allerdingó nuò eiî Biô belegt¬  n{mlicè                                 invers (27).           1B,14 Im Bildschirm rollen (nur KOMBI I)           Daó  Bilä wirä uí einå Zeilå nacè obeî  ge                                 rollt® Diå bislanç oberstå Zeilå wirä unteî                                 angeh{ngt¬   diå  relativå   Cursorpositioî                                 bleibô erhalten.           1B,3B,xx,... Zeichengenerator laden (nur KOMBI II)                                 Eiî  kompletteò Zeichengeneratoò wirä gela                                 den® Daó 1.Bytå (xø --¾ ± Bytå "0¢ bió "7"©                                 gibô diå Nummeò deó Zeichensatzeó  an®  Da                                 nacè  folgeî 1000È ø ³ ASCII-Halbbyteó  (ZÇ                                 LO× ¸ Bit¬ ZÇ HIGÈ ´ Bit).          Die n{chsten drei Pl{tze in der Tabelle sind frei. .pa Š          1B,3A,t,u,v,w,x,y,z  V2´ initialisieren               Parameter:: t = "A" SIO Kanal A           = "B" SIO Kanal B           u = "003" 300 Baud = "006" 600 Baud = "012" 1200 Baud = "024" 2400 Baud = "048" 4800 Baud = "096" 9600 Baud = "192" 19200 Baud = "384" 38400 Baud v = "1" 1 stop bit per character = "2" 2 stop bits per character w = "7" 7 data bits = "8" 8 data bits x = "0" no parity = "1" parity odd = "2" parity even y = "0" status lines supported = "1" ETX/ACK * = "2" XON/XOFF * z = "xx" Hardware Kanal          * wird ab Level II unterst}tzt .pa Š          Voreingestellte Werte f}r beide Kan{le:           u = "048" 4800 Baud           v = "1" 1 Stop bit           w = "8" 8 data bits           x = "0" no parity           y = "0" status lines supported           z = "80" Kanal 80H          Wirä  nuò eiî Kommá geschickt¬  werdeî diå voreingestellteî  Wertå          genommen.          Beispiel:          1B,Code,A,48,,,,, {nderô  Baudratå  f}ò Kanaì Á auæ 480°  unä                                 }bernimmô  diå restlicheî Wertå gem{þ  Vor                                 einstellung.          Grunds{tzlicè  erfolgô diå Ausgabå alleò Escape-Sequenzeî (CRÔ unä          RS232© }beò diå BDOS-Funktioî CO¬  wobeé allå Parameteò  (xx¬  yy©          ASCIÉ Zeicheî sind.          Beispiel: F7È --¾ ASCIÉ Codå 46È (F)¬ ASCIÉ Codå 37È (7)          Deò  Steuerwerô  1 kanî durcè einå besonderå Kontrollsequenú  auæ          eiî beliebigeó ASCII-Zeicheî ge{nderô werden.          Reservierte Werte nach Escape          10 reserviert (erzeugt hh blanks)          14 reserviert (Bildschirm nach oben rollen)          15 reserviert          1¶   reserviert (Cursorpositioî)          1Ä reservierô (Anzahì deò Zeicheî miô eineí Code)          1E reserviert (Hintergrund-Attribute setzen)          Die letzten beiden Tabellenpositionen sind frei. .pa Š          Besonderheiten und [nderungen zu MOS 5.21          1. Diå Schnittstellå miô Funktionsnummeò entf{llt¬ eini             gå  Funktioneî wurdeî iî diå zeichenweiså orientiertå             Schnittstellå }bernommen.          2. Diå   Funktioî  "Bildschirí  zentrieren¢  wurdå   ge             strichen.          3. Die Bildschirmausgabe wurde beschleunigt.          4. Diå  Funktioî "Umsetztabellå anh{ngen¢ wurdå  gering             f}giç modifiziert (Mehr als 6 Bytes Daten).          5. Diå Funktioî "Generellå Initialisierung¢ wurdå dahin             gehenä erweitert¬ daþ auæ Wunscè deò Bildschirminhalô             besteheî bleibt. .pa Š          Das Tastaturmodul (D)          Eó  steheî zweé Tastaturtreibeò zuò Verf}gung¬  diå sicè          iî  deò Behandlunç deò Hardwarå  unterscheiden¬  iî  deò          Schnittstellå jedocè identiscè sind.          1®  Tastatur-Treibeò  Dieseó Moduì arbeiteô miô dem           "normalen" Tastatur-Controller           "8278" 8278.           Diå  Repeat-Funktioî wirä durcè diå Repeat-Tastå  ausgel|st®                Diå Abhandlunç deò Shift- unä Control-Tastå geschiehô iî deò                Treiber-Software® Hardwarem{~iç sinä siå normalå Tasten.          2®  Tastatur-Treibeò  Dieseó Moduì arbeiteô miô           einem modifizierten Tasta-           "schnell"  tur-Controller 8278.                Diå  Repeat-Funktioî wirä durcè anhaltendeó Dr}ckeî deò  je                weiligeî  Tastå (Auto-Repeat© erzeugt®  Diå  Abhandlunç  deò                Shift- unä Control-Tastå geschiehô ií Controller. .pa Š          Schnittstellen Tastaturmodul          Das Tastaturmodul hat zwei Eing{nge:          1. CSTS Tastaturstatus abfragen             Miô  dieseò Routinå kanî ermittelô werden¬  oâ einå Tastå ange             schlageî wurde¬ odeò nicht.           Aufruf: keine Parameter           R}ckgabe: RA = 0 ZERO = 1 ==> keine Taste           RA = FF ZERO = 0 ==> Taste angeschlagen           CARRY = 0 ==> kein Fehler           CARRY = 1 ==> Fehler          2. CI Warten auf Taste             Dieså Routinå warteô bió einå Tastå angeschlageî wirä unä  gibô             danî  deî  Tastencodå zur}cë (Besonderheiteî  siehå  "Generellå             Initialisierung¢ ií Bildschirmmodul).           Aufruf: keine Parameter           R}ckgabe: RA ==> Tastencode             F}ò  Sondertasten¬  diå  nichô voí  Tastaturmoduì  durchgegebeî             sonderî  interî verarbeiteô werden¬  sinä folgendå Codeó reser             viert.           Shift-Taste C1H           Caps-Lock-Taste C0H           Repeat-Taste C2H           Control-Taste C5H          Besonderheiten und [nderungen gegen}ber MOS 5.21          1. Die Clear-Taste entf{llt          2. Funktion Tastaturpuffer l|schen wurde zus{tzlich aufgenommen           (Escape - Sequenz).          3. Die Shift-Lock Funktion wurde ge{ndert in Caps-Lock. .pa Š          Das V24 - Modul (E)          Je nach Hardware stehen alternativ zwei Module zur Verf}gung:          1. V24 - Modul Dieses Modul handelt die V24           }beò deî Combo-Chið aâ (CPU V).           COMBO          2. V24 - Modul Dieses Modul handelt die V24           }ber den Z80-SIO ab (CPU VI).           SIO          Schnittstellen V24          Folgende Schnittstellen stehen zur Verf}gung:           LSTS Lister Status           LO Lister output           RI Reader input           PUN Puncher output          1. LSTS V24 Status abfragen             Diese Routine meldet, ob die V24 bereit ist oder nicht.           Aufruf: keine Parameter           R}ckgabe: RA = 0 ZERO = 1 Drucker nicht bereit           RA = FF ZERO = 0 Drucker bereit .pa Š          2. LO Zeichenweise Ausgabe           Dieså Routinå gibô daó iî Rà }bergebenå Zeicheî aî diå V2´ weiter®             Dabeé werdeî folgendå Escape-Sequenzeî interpretiert:             a) 1B,30,xx,yy,zz,pp,kk Drucker initialisieren           xx ==> Baudrate LOW pp ==> Protokoll{nge           yy ==> Baudrate HIGH kk ==> Hardwareadresse           zz ==> Steuerwort Steuerwort zz                       20 = 0 ==> 7 Bit nach 8 Bit Wandlung           20 = 1 ==> 8 Bit nach 7 Bit Wandlung           21 = 0 ==> 8 Bit ohne Parit{t           21 = 1 ==> 8 Bit mit gerader Parit{t           22 = 0 ==> kein Protokoll           22 = 1 ==> Protokoll ETX/ACK           24 = 0 ==> warten bis bereit           24 = 1 ==> sofort zur}ck, wenn nicht bereit           26 = 1 ==> XON/XOFF             b) 1B,1B,xx,yy Escape Sequenz {ndern                Dieså Routinå entsprichô exakô deò Routinå ií  Bildschirmmo                dul.           xx = alter Wert           yy = neuer Wert             c) 1B,26,xx Interrupt-Merker setzen           xx = 0 ==> DISABLE           xx = 1 ==> ENABLE          Die Routinen b) und c) stehen parallel auch }ber CO zur Verf}gung. .pa Š          3. RI Reader Input             Diese Routine liest Zeichen }ber V24 ein.           Aufruf: keine Parameter           R}ckgabe: Zeichen in RA          4. PUN Puncher Output           Diese Routine sendet Zeichen }ber V24.           Aufruf: Zeichen in RC           R}ckgabe: keine Parameter .pa Š          Das Plattenmodul (F)          Daó  Plattenmoduì  isô einheitlicè f}ò diå verschiedeneî  Platten          typen®  Diå Unterschiedå schlageî sicè iî verschiedeneî Parameter-          Bl|ckeî ií Tabellenmoduì nieder.          Folgende Typen sind vorgesehen:          1. Winchester-Platte 5 MB          2. Winchester-Platte 10 MB          3. DMA-Laufwerk (fest) 5 MB          4. DMA-Laufwerk (Wechselplatte) 5 MB          Eó k|nneî miô eineí Controlleò zweé Laufwerkå bedienô werden®  Daó          Moduì  haô einå eigene¬  dynamischå Bad-Block-Verwaltunç f}ò jedeó          Laufwerk.          Schnittstellen Platten-Modul          Diå Steuerunç deó Treiberó erfolgô }beò Aufruf- unä  R}ckgabepara          meter¬ diå iî deî Registerî unä Flagó }bergebeî werden.          Es existieren zwei Treibereing{nge:          1. SWIN             Laufwerksnummer wird explizit angegeben          2. WIN             Laufwerksnummeò {nderô sicè nichô gegen}beò deí Aufruæ zuvor. .pa Š          Allgemeine Aufrufparameter          Diå  Parameter}bergabå beé Treiberaufruæ geschiehô funktionsspezi          fisch®  Diå  folgendeî Parameteò sinä jedocè beé alleî  Funktioneî          identiscè unä m}sseî iî jedeí Falì }bergebeî werden.          Eingang SWIN: Funktionsnummer in RA           Laufwerk in RL          Eingang WIN: Funktionsnummer in RA           Laufwerk wie bisher          Die Funktionsnummern sind in Tabelle I zusammengefa~t.          Der Parameter Laufwerk hat folgende Form:          Daó  oberå Halbbytå isô Indeø f}ò diå Systemtabelleî ií  Tabellen          modul.          Beispiel: 30È iî RÌ sprichô deî 4®  Parameterblocë ií Tabellen                       moduì an.          Diå  funktionsspezifischeî Parameteò werdeî beé  deò  Beschreibunç          deò einzelneî Funktioneî behandelt.          Allgemeine R}ckgabe-Parameter          Folgende Parameter werden von allen Funktionen zur}ckgegeben:          Im Fehlerfall CARRY = 1          Status RB/RC (siehe Tabelle II)          Treiberidentifikation in RA          Identifikation: B0 5 MB Winchester (2 Platten)           C0 10 MB Winchester           D0 5 MB Winchester (1 Platte)           E0 DMA Laufwerk          Alle Register und Flags werden ver{ndert. .pa Š          Funktionsnummern           IO CRTL           01 Initialisieren           04 Deselektieren           0A Restore                    8¸    Sektorweiså Leóen 8¹    Sektorweiså Scèreiben 8Á Positioniereî auf           Spuò unä Sektor          Tabelle I Funktionsnummern .pa Š          Statusr}ckmeldungen          Reg. Bit Bedeutung           7 END of DISK           6 BEGIN of DISK           5          RB 4 Laufwerk nicht bereit           3 zu viele defekte Sektoren           2 Data lost           1 defekter Sektor ausgeblendet           0 keine g}ltige Bad-Block-Tabelle gefunden           7 CRC-Fehler-Datenfeld           6           5 Data Adress Marke nicht gefunden           4 ID-Feld nicht gefunden          RC           3 CRC-Fehler ID-Feld           2 Track 0 nicht gefunden           1 Ung}ltiger Aufruf           0 Fehlersummenbit          Tabelle II Statusr}ckmeldungen .pa Š          Beschreibung der einzelnen Funktionen          1. Funktion Initialisieren (01) - nur }ber WIN             Daó  Laufwerë wirä selektiert¬  eiî Restorå wirä  durchgef}hrt®             Diå  Bad-Block-Tabellå  wirä eingelesen¬  deò Treibeò  grundge             stellt.           Aufruf: Laufwerk in RE           Adresse Zwischenprogramm in RB/RC           R}ckgabe: Adresse Parameterblock in RH/RL          2. Funktion Deselektieren (04)             Daó  Selekt-Signaì deó betreffendeî Laufwerkó wirä deaktiviert®             Uí  daó Laufwerë wiedeò ansprecheî zõ k|nnen¬  muþ deò  n{chstå             Aufruæ }beò SWIÎ erfolgen.           Aufruf: Funktionsnummer in RA           R}ckgabe: Status in RB/RC          3. Funktion Restore (0A)             Es wird auf Spur 0, Sektor 1 positioniert.           Aufruf: Funktionsnummer in RA                     R}ckgabe: Status in RB/RC .pa Š          4. Sektorweise Lesen (88)             Eó  wirä  aâ deò momentaneî Positioî diå ií  Aufruæ  angegebenå             L{ngå  (ganzå Vielfachå eineó Sektors© Datenbyteó  gelesen®  Eó             muþ eiî Positioniereî vorausgeheî !           Aufruf: Funktionsnummer in RA           Pufferadresse in RB/RC           L{nge (n x 1 Sektor) in RD/RE           R}ckgabe: Status in RB/RC          5. Sektorweise Schreiben (89)             Eó  wirä  aâ deò momentaneî Positioî diå ií  Aufruæ  angegebenå             L{ngå  (ganzå Vielfachå eineó Sektors© Datenbyteó  geschrieben®             Eó muþ eiî Positioniereî vorausgeheî !           Aufruf: Funktionsnummer in RA           Pufferadresse in RB/RC           L{nge (n x 1 Sektor) in RD/RE           R}ckgabe: Status in RB/RC          6. Positionieren auf Spur und Sektor (8A           Der angegebene Sektor wird angesteuert.           Aufruf: Funktionsnummer in RA           Sektor in RB/RC           Spur in RD/RE           R}ckgabe: Status in RB/RC .pa Š          Die Zwischenr}ckgabe          Nacè  Ausgabå  eineó "SEEK"-Befehló springô deò Treibeò  zuò  Zwi          schenr}ckgabå  (Adresså wirä beé Funktioî ±  }bergeben)®  Sï  kanî          w{hrenä  deò Armbewegunç deó Step-Motoró eiî andereó Programí  ab          laufen® Aí Endå deó Programmó muþ eiî Return-Befehì stehen.          Treiberidentifikation          Folgende Treiberidentifikationen werden gemeldet:           0B 5 MB Winchester           0C 10 MB Winchester           0D DMA Laufwerk          Bad-Block-Verwaltung          Deò  Treibeò  haô  sicè f}ò jedeó  Laufwerë  einå  Bad-Block-          Tabellå  angelegt®  Dariî sinä allå w{hrenä eineó  Formatier          laufó festgestellteî defekteî Sektoreî vermerkt®  Ebensï wer          deî  diå ií Betrieâ zus{tzlicè schlechteî Sektoreî miô aufge          nommen®  Deò  Treibeò verwendeô anstatô dieseò defekteî  Sek          toreî Ersatzsektoren¬ diå iî deò Spuò ° liegen. .pa Š          [nderungen und Besonderheiten gegen}ber MOS 5.21          1. Deò  Treibeò  isô voî vornehereiî Bestandteiì deó MOÓ  unä  muþ             nichô ersô dazugeladeî werden.          2. Die Bad-Block-Verwaltung ist ge{ndert:             a) Alle Verwaltung liegt beim Treiber.           b) Eó  werdeî  nuò nocè insgesamô 1¶ schlechtå  Sektoreî  zuge                lassen.           c) Die Ersatzsektoren liegen auf Spur 0 (fr}her 76).           d) Wirä eiî Sektoò ausgeblendet¬ wirä daó betreffendå Statusbiô                gesetzt, jedoch kein Fehler gemeldet (CARRY = 0).           e) Eiî  Sektoò  wirä  ausgeblendeô wenî eò  beé  7-maligeí                Zugrifæ mehò aló ² maì Fehleò liefert.          3. Diå  Zugriffå wurdeî erheblicè beschleunigô durcè folgendå Ma~             nahmen:           a) Durcè  internå  SEEK-Technië wurdå diå Step-ratå voî 3.µ  mó                auæ 1.° mó reduziert.           b) Durcè Vereinfachungeî ií Treibeò konntå erreichô werden¬ daþ                eiî g}nstigereò Interleave-Faktoò verwendeô werdeî kann.           c) Es wurden verst{rkt Z80-Instruktionen verwendet.           d) Das Pr}flesen wurde vereinfacht.          4. Der Treiber ist wesentlich kleiner als bisher.          5. Nacè  Leseî unä Schreibeî gibô eó keinå  Positionsr}ckmeldungeî             mehr.          6. Deò  Treibeò erwarteô aló zõ lesendå  bzw®  schreibendå  Anzahì             Datenbyteó nuò ganzzahligå Vielfachå eineó Sektoró !