.pl 72 .mt 3 .he STOTZ SEPTEMBER 1982 # .hm 2 .op                Schnittstellen - Beschreibung von Bildschirm- und                Tastatur - Treiber .pa Š.he #                              F}r Bildschirm und Tastatur gibt es folgende Eing{nge:               I. Betrieb mit Funktionsnummer (Adresse FE9AH)               II.  Zeichenweiseò  Betrieâ  mit/ohnå  Steuerzeichenerkennunç                    (Adresså FE09H/FE76H)               III. Offset einstellen f}r Cursor positionieren (FEAFH)               IV.  Tastaturstatus abfragen (Adresse FE12H)               V.   Warteî auæ Tastå (Adresså FE73H)               VI.  Tastatuò initialisiereî (Adresså FE7CH©               VII. Tastencodes 7 oder 8 Bit einstellen (FEB3H) .pa Š               I.   Betrieb mit Funktionsnummer                    Miô  dieseò  Schnittstellå  k|nneî  folgendå  Funktioneî                    ausgef}hrt werden:               0.   R}ckgabe des Parameters X von Funktion 1.                    Aufruf: Reg. A = 0                    R}ckgabe: Reg. C = Parameter X               1.   Generelle Initialisierung:                    Aufruf: Reg. A = 1                Reg. E = Parameter X (Bedeutung siehe unten)                    Deò  Bildschirí  wirä initialisiert¬  deò  Treibeò  wirä                    grundgestellô (aucè deò Zentrier-Modå wirä abgeschaltet¬                    siehå Zentrieren)¬  deò Bildschirí wirä gel|schô unä deò                    Cursoò  wirä  iî  diå  linkå  unterå  Eckå  positionierô                    (letzte Zeile, erste Spalte). .pa Š               Bedeutung des Parameters X:               X: 1 = Linefeeä  nacè  letzteò  Schirm                                            position (voreingestellt).                0 = Cursoò  nacè  letzteò   Positioî                                            wieder in Homeposition.                                        1 = Beé IÖ (Warteî auæ Taste© werdeî                                            alle Tasten durchgegeben.                                        0 = Tastaturtreibeò    interpretierô                                            folgendå Tasteî sofort:                                            - Cleartastå  (84© --¾ Hupå auó                                              unä weiteò auæ Tastå warten                                            - Cursoò  linkó (81© --¾  Back                                              spacå (08© wirä zur}ckgegeben                                            - Cursoò rechtó (82© --¾ Zeicheî                                              voî Cursorpositioî wirä  zu                                              r}ckgegeben (voreingestellt).                                        1 = R}ckgabe Taste 8-Bit                                            (keine Wandlung)                                        0 = R}ckgabe Taste 7-Bit (Wandlung)                (voreingestellt)                                        1 = Allå  Kleinbuchstabeî werdeî  iî                                            Gro~buchstaben gewandelt.                                        0 = Keinå Wandlunç (voreingestellt)               R}ckgabeº keine .pa Š               2.   Display Status lesen                    Eó  wirä  deò  Statuó deó  Display-Treibers¬  sowiå  diå                    aktuelle Zeilen- und Spaltenanzahl zur}ckgegeben.                    Aufruf: RA = 2                    R}ckgabe: RD = Anzahl Zeilen                RE = Anzahl Spalten                RB/RC = Status                27 20               RB:                invers                27 20               RC:                Cursor ein                Lupe ein               Nur RH/RL sind unver{ndert.               3.   Zeichen Lesen vom Bildschirm                    Eó   wirä  daó  Zeicheî  deò  momentaneî  Cursorpositioî                    geleseî unä deò Cursor um eine Position weiterbewegt.                    Aufruf: RA = 4                    R}ckgabe: RE = ASCII-Zeichen                     RD = begleitende Bits (siehe Status). .pa Š               4.   Zeichen Schreiben auf Bildschirm                Daó }bergebenå Zeicheî wirä aî diå momentanå Cursorposi                    tioî  geschriebeî  unä  deò  Cursoò  uí  einå   Positioî                    weiterbewegt.                    Aufruf:      RA = 5                                 RE = ASCII-Zeichen                                 RD = begleitende Bits (siehe Status).                    R}ckgabe:   keine                              5.   Cursor-Position Lesen                    Es wird die momentane Cursorposition zur}ckgegeben.                    Aufruf:      RA = 6                    R}ckgabe:    RD = Zeilennummer                                 RE = Position in Zeile .pa Š               6.   Tastaturtabelle laden                    Eó  isô m|glich¬  statô deò ií Betriebssysteí  implemen                    tierteî Tastaturtabellå eigenå Tastencodeó zõ verwenden®                    Diå voî deò Tastå geliefertå Matriø (siehå Layout-Schau                    bild© isô gleichzeitiç deò Indeø f}ò diå Tabelle®  Dabeé                    mu~ deò Abstanä zwischeî Nicht-Shift-Codå unä Shift-Codå                    12¸ betragen.                    Aufruf:      Reg. A = 7                                 Reg. H/L = Adresse Tastaturtabelle.                    Nacè deí Aufruæ deò Funktioî stehô deò RAÍ - Bereicè deò                    neuen Tastaturtabelle wieder zur Verf}gung.                    Wirä  iî  Registeò  H/Ì 0000  }bergeben¬  erfolgô  einå                    R}ckschaltunç  auæ diå ií Betriebssysteí  implementiertå                    Tastaturtabelle®                    Die Tastaturtabellen sind im 8 Bit Code abgelegt.                    8 bit b8 b7 b6 b5 b4 b3 b2 b1                    7 bit ASCII b7 b6 b5 b4 b3 b2 b1 .pa Š               7.   Umsetztabelle anh{ngen                    Deò  Anwendeò  kanî deò zeichenweiseî  Schnittstellå  CÉ                    einå Umsetztabellå vorschalten®  Dadurcè isô eó m|glich¬                    jedeí  beliebigeî Tastencodå einå bestimmtå  Bildschirm                    funktioî zuzuordnen®  Diå Tabellå siehô  folgendermasseî                    aus:                     Code L{nge String                              1 Byte 1 Byte 6 Byte               insgesamt               1¶ Eintr{ge                    Aufruf:   Reg. A = 8                              Reg. E   =   Anzahl der Eintr{ge (maximal 16)                              Reg. H/L =   Adresse der Tabelle                    Diå  Codeó sinä wiå iî deò Tastaturtabellå ií ¸ biô Codå                    abgelegt.                    Nacè deí Aufruæ stehô deò RAM-Bereicè deò Tabellå wiedeò                    zuò Verf}gung.                    Wirä  iî  Registeò  H/Ì  000°  }bergeben¬   erfolgô  eiî                    "Abh{ngen¢ deò Tabelle.                    F}ò Sondertasten¬  diå nichô voí Tastatur-Treibeò durch                    gegebeî sonderî interî verarbeiteô werden¬ sinä folgendå                    Codeó reserviert:                    SHIFT-Taste C1H                    SHIFT-Lock-Taste C0H                    Wiederholtaste C2H                    Control-Taste C5H                    CLEAR-Taste           84H                    CURSOR rechts         82H                    CURSOR links          81H .pa Š .pa Š                    Beé  alleî Funktioneî werdeî allå nichô genannteî Regis                    ter¬  miô Ausnahmå deó Registeró Á unä deó Bedingungsre                    gisters¬ unver{nderô zur}ckgegeben. .pa Š               II.  Zeichenweiser Betrieb mit Steuerzeichenerkennung                    Eó  wirä  jeweiló ± Zeicheî }bergebeî (in  Registeò  C)¬                    wobeé diå unteî aufgef}hrteî Steuerzeicheî interpretierô                    werden®  Allå Register¬ miô Ausnahmå deó Registeró Á unä                    deó  Bedingungsregisters¬  werdeî unver{nderô  zur}ckge                    geben®  Beé  einigeî  Steuerfunktioneî mu~  eiî  Escape-                    Zeicheî (1BH© vorausgehen.                    Folgendå Steuerzeicheî werdeî wiå beschriebeî  interpre                    tiert:                    07           BELL (BEL)                                 Diå  Clear-Lampå leuchteô auæ unä diå  Hupå                                 ert|nt. Beide Signale dauern ca. 1 Sek. an.                    08           Cursor links (BS)                                 Deò  Cursoò  wanderô  uí einå  Stellå  nacè                                 links.                    0A           Zeilenschaltung (LF)                                 Deò  Cursoò  wanderô  uí  einå  Zeilå  nacè                                 unten®  Isô  deò  Cursoò iî  deò  untersteî                                 Zeile  wirä  daó Bilä uí einå  Zeilå  nacè                                 obeî   gerollô   unä  diå  unterstå   Zeilå                                 gel|scht®  Diå Spaltenpositioî deó  Cursoró                                 bleibt dabei unver{ndert. .pa Š               0C   Grundstellung ohne Lupe                    Deò Bildschirmcontrolleò wirä initialisiert¬  deò  Bild                    schirm-Treibeò  wirä grundgestellt®  Diå  Cursorpositioî                    isô  iî  deò linkeî untereî Eckå  (letztå  Zeile¬  erstå                    Spalte)®  Deò  Bildschirí wirä gel|scht®  Waò Lupå  ein                    geschaltet¬   bleibô   dieseò  Modå   erhalten¬   ebensï                    Zentriermode.               0D   Ende Zeile                    Der Cursor wird an den Anfang der Zeile gestellt.               11   Lupå  einschalteî                    Lupå  wirä eingeschaltet¬  Bildschirí  gel|scht¬  Cursoò                    stehô iî deò linkeî untereî Ecke®  Waò Zentriermodå ein                    geschaltet¬  wirä dieseò zur}ckgesetzt® Dergleicheî allå                    Hintergrund-Modifikationen.               12   Endecode Zeichenmodifikation                    Hintergrundbits werden grundgestellt.               13   Lupå  ausschalteî                    Lupå  wirä ausgeschaltet¬  Bildschirí  gel|scht¬  Cursoò                    stehô  iî  deò  linkeî untereî  Ecke®  Waò  Zentriermodå                    eingeschaltet¬  wirä dieseò  zur}ckgesetzt®  Desgleicheî                    alle Hintergrund-Modifikationen.               1C   Invers einschalten                    Alle folgenden Zeichen werden invers dargestellt. .pa Š               Steuerzeichen mit Escape:               1B, 10, XX Blanks ausgeben                          Eó werdeî XØ Blankó ausgegeben¬ deò Cursoò wanderô                          entsprechend weiter.               1B, 11     Cursor home                          Deò  Cursoò wirä iî diå oberå linkå Eckå  gestellô                          (erstå Zeile¬ erstå Spalte)®               1B, 12     Cursor ausschalten                          Deò Cursoò wirä ausgeschaltet¬ diå Positioî jedocè                          weiterverwaltet.               1B, 13     Cursor einschalten                          Der Cursor wird eingeschaltet.               1B, 14     ROLL-UP                          Daó Bilä wirä uí einå Zeilå nacè obeî gerollt® Diå                          oberstå Zeilå wirä unteî angeh{ngt®  Diå  relativå                          Cursorpositioî   bleibô  unver{nderô  (Zeilen- unä                          Spaltenposition bleiben gleich).                          Dieså  Funktioî solltå nichô iî Verbindunç miô deò                          Zentrierfunktion angewendet werden. .pa Š               1B, 15, XX, YY    Zentrieren                                 Miô dieseò Funktioî kanî einå erw}nschtå  Schreib                          breitå  miô  XØ (ungeradå Zahl¬  dá Spalteî beé  °                          beginnen)¬  bzw®  Schreibh|hå miô YÙ (geradå Zahl¬                          dá Zeileî miô ± beginnen© eingestellô werden®  Daó                          Bilä  wirä automatiscè iî diå neuå Bildmittå  zen                          triert®  Deò Cursoò wirä iî diå neuå Home-Positioî                          gebrachô  (nacè wiå voò Zeilå 1¬  Spaltå  0)®  Deò                          Bildschirmteiì au~erhalâ deó gew{hlteî "Fensters¢                          isô  danî  nichô  mehò  zug{nglich®  Diå  Funktioî                          Grundstelleî  (Formfeeä 0C© l{~ô  deî  zentrierteî                          Zustanä bestehen¬  d®  h®  deò Cursoò stehô iî deò                          linkeî  untereî Eckå deó gew{hlteî  Bereiches®  Eó                          wirä allerdingó deò gesamtå Bildschirí gel|scht.               1B, 16, XX, YY    Cursor positionieren                          Deò  Cursoò  wirä auæ Zeilå XX¬  Spaltå  YÙ  posi                          tioniert.               1B, 17            Rest des Bildschirm l|schen                          Deò Bildschirí wirä aâ deò momentaneî  Cursorposi                          tioî gel|scht®  Diå Cursorpositioî bleibô unver{n                          dert.               1B, 18            Rest der Zeile l|schen                          Diå  Zeilå  wirä aâ deò momentaneî  Cursorpositioî                          gel|scht. Die Cursorposition ver{ndert sich nicht.               1B, 19            Rest der Zeile l|schen                          Diå  Zeilå wirä aâ deò  momentaneî  Cursorpositioî                          gel|scht¬  deò  Cursoò  wirä  auæ deî  Anfanç  deò                          n{chsten Zeile positioniert.          .pa Š               1B, 1A            Cursoò rechts                          Deò  Cursoò  wirä  uí einå  Positioî  nacè  rechtó                          bewegt.               1B, 1C            Cursor up                          Deò  Cursoò wirä uí einå Zeilå nacè obeî  positio                          niert® Aí obereî Bildranä erfolgô keiî Roll-down.               1B, 1D, XX, YY                             Eó werdeî XØ Zeicheî miô deí Codå YÙ ausgegeben.               1B, 1E, XX        Hintergrund setzen                          Eó  wirä  aâ soforô jedeó Zeicheî miô deí  angege                          beneî  Hintergrunä ausgegeben®  Diå  Belegunç  isô                          identiscè  miô RÂ beé deò Funktioî  Display-Statuó                          lesen.               1B, 1F, XX, YY    Cursor positionieren mit Offset                          Wiå 1B¬ 16¬ XX¬ YY¬ jedocè k|nneî Zeilå unä Spaltå                          miô   eineí  beliebigeî  Offseô  }bergebeî  werdeî                          (siehå III).               Allå andereî Zeicheî werdeî auæ deí Bildschirí ausgegebeî unä               der Cursor wird um eine Position weiterbewegt. .pa Š               III. Offset einstellen f}r Cursor positionieren (1B,1F,XX,YY)                    F}ò  diå Funktioî "Cursoò positioniereî miô Offset¢ kanî                    sowohì  f}ò  Zeilå aló aucè f}ò  Spaltå  eiî  beliebigeò                    Offset eingestellt werden.                                        Aufruf:   RH Offseô f}ò Zeilå (Vorbelegunç 20H)                              RL    Offset f}r Spalte (Vorbelegung 20H)                                    (Zeilen ab 1, Spalten ab 0)               Diå Schnittstellå ohne“ Steuerzeichenerkennunç (Adresså FE76H©               gibt alle Codes direkt auf den Bildschirm.               IV.  Tastaturstatus abfragen                                   Miô dieseò Routinå kanî ermittelô werden¬  oâ einå Tastå                    angeschlagen wurde oder nicht.                    Aufruf:   keine Parameter                    R}ckgabe: RA = 0, ZERO = 1 => keine Taste                              RA = FF, ZERO = 0 => Taste angeschlagen                                  CARRY = 1 => ]bertragungsratenfehler                CARRY = 0 => kein ]bertragungsraten-                fehler .pa Š               V.   Warten auf Taste                    Dieså  Routinå warteô bió einå Tastå angeschlageî  wird¬                    unä  gibô  danî  deî Tastencodå  zur}cë  (Besonderheiteî                    siehe Generelle Initialisierung, Bedeutung Parameter X).                    Aufruf:    keine Parameter                    R}ckgabe:  RA = Tastencode               VI.  Tastatur initialisieren                    Aufruf:    keine Parameter                    R}ckgabe:  keine Parameter               VII. Tastencodes 7 oder 8 Bit einstellen                    Diå  Systemtastaturtabellå  isô ií ¸ Biô  Codå  abgelegô                    (siehå Seitå 7)®  Deí Anwendeò isô jedocè  freigestellt¬                    diå Tastaturtabellå ií · Biô Codå abzulegen.                    Aufruf:   RA    ½ · ---> 7 Bit Code                              RA    = 8     ---> 8 Bit Code (voreingestellt)