Routinen für die Zeichen-Ein-/Ausgabe

Die hier vorgestellten Routinen sind solche für die Ein-/Ausgabe von Zeichen an Konsole und Drucker.

Modul-Entry B: Beschreibung, I: Eingabe-, O: Ausgabeparameter

CONIN.MAC
CONIN B: Holen eines Zeichens vom Keyboard
  I: ---
  O: Akku hält Zeichen, Zeichen wird ausgegeben

CONOUT.MAC
CONOUT B: Ausgabe eines Zeichens auf die Konsole
  I: Akku hält Zeichen für die Ausgabe
  O: ---

CONINO.MAC
CONIND B: Direktes Holen eines Zeichens vom Keyboard
  I: ---
  O: Akku hält Zeichen, Zeichen wird nicht ausgegeben. Falls keine Taste betätigt wurde, hält Akku 0.

CONINO.MAC
CONINO B: Holen eines Zeichens vom Keyboard
  I: ---
  O: Akku hält Zeichen, Zeichen wird nicht ausgegeben

CONDIR.MAC
CONDIR B: Ausgabe eines Zeichens auf die Konsole
  I: Akku hält Zeichen für die Ausgabe
  O: ---

PRNOUT.MAC
PRNOUT B: Ausgabe eines Zeichens auf den Drucker
  I: Akku hält Zeichen für die Ausgabe
  O: ---

AUXIN.MAC
AUXIN B: Holen eines Zeichens vom Hilfsgerät
  I: ---
  O: Akku hält Zeichen vom Hilfsgerät

AUXOUT.MAC
AUXOUT B: Ausgabe eines Zeichens auf das Hilfsgerät
  I: Akku hält Zeichen für das Hilfsgerät
  O: ---

COMOUT.MAC
COMOUT DEFIO B: Ausgabe eines Zeichens an verschiedene Geräte
  I: Akku hält Zeichen für Ausgabe und Registerpaar HL hält die Speicheradresse, falls Bit 3 gesetzt ist
  O: Registerpaar um eins erhöht bei Speicherung
  DEFIO Definition der Bits:
  0: Ausgabe auf Konsole
  1: Ausgabe auf Drucker
  2: Ausgabe auf Hilfsgerät
  3: Speichern des Zeichens
  Wenn kein Bit gesetzt ist, erfolgt auch keine Ausgabe

UPPIN.MAC
UPPIN B: Holen eines Zeichens vom Keyboard und wandeln in Großbuchstaben
  I: ---
  O: Akku hält Zeichen, Zeichen wird im Originalzustand ausgegeben

UPPINO.MAC
UPPINO B: Holen eines Zeichens vom Keyboard, wandeln in Großbuchstaben
  I: ---
  O: Akku hält Zeichen, Zeichen wird als Großbuchstabe ausgegeben

UPINCL.MAC
UPINCL B: Holen eines Zeichens vom Keyboard und wandeln in Großbuchstaben, schließen der Bildschirmzeile
  I: ---
  O: Akku hält Zeichen, Zeichen wird im Originalzustand ausgegeben

UPINOC.MAC
UPINOC B: Holen eines Zeichens vom Keyboard und wandeln in Großbuchstaben, schließen der Bildschirmzeile
  I: ---
  O: Akku hält Zeichen, Zeichen wird als Großbuchstabe ausgegeben

BREAK.MAC
BREAK B: Testet, ob ein Zeichen vom Keyboard vorhanden ist
  I: ---
  O: Carry Flag wird gesetzt, falls ein Zeichen vorhanden ist. Andernfalls wird die Flag zurückgesetzt

COMBRK.MAC
COMBRK B: Testet, ob ein Zeichen vom Keyboard vorhanden ist und liest das Zeichen, falls vorhanden
  I: ---
  O: Carry Flag wird gesetzt, falls ein Zeichen vorhanden ist, der Akku hält das Zeichen. Andernfalls wird die Flag zurückgesetzt.

AUXIST.MAC
AUXIST B: Feststellen, ob Hilfsgerät bereit ist für die Eingabe
  I: ---
  O: Carry Flag wird gesetzt, falls Gerät bereit ist, andernfalls wird die Flag zurückgesetzt.

AUXOST.MAC
AUXOST B: Feststellen, ob Hilfsgerät bereit ist für die Ausgabe
  I: ---
  O: Carry Flag wird gesetzt, falls Gerät bereit ist, andernfalls wird die Flag zurückgesetzt.

GETLIN.MAC
GETLIN B: Einlesen einer neuen Zeile vom Keyboard
  I: Das Registerpaar DE halt die Adresse auf einen Zeilenpuffer. Das erste Byte in diesem Puffer gibt die maximale Anzahl einzulesender Zeichen an
  O: Das zweite Byte des Zeichenpuffers (Puffer+1) gibt die tatsächliche Anzahl gelesener Zeichen an. Die wirklichen Zeichen beginnen bei Puffer+2. Das Ende des Puffers wird durch eine Null angezeigt. Die Carry Flag ist gesetzt bei leerem Puffer

EDLIN.MAC
EDLIN B: Einlesen einer Zeile vom Keyboard
  I: Das Registerpaar DE hält die Adresse auf einen Zeilenpuffer. Das erste Byte in diesem Puffer gibt die maximale Anzahl einzulesender Zeichen an. Der Puffer kann bereits belegt sein mit Text.
  O: Das zweite Byte des Zeichenpuffers (Puffer+1) gibt die tatsächliche Anzahl gelesener Zeichen an. Die wirklichen Zeichen beginnen bei Puffer+2. Das Ende des Puffers wird durch eine Null angezeigt. Die Carry Flag ist gesetzt bei leerem Puffer. Falls bereits Text im Puffer stand, so lässt sich dieser mit den Standard Sequenzen editieren

EMULIN.MAC
EMULIN @ETAB
@CTAB
B: Eingabe einer Zeile vom Keyboard
  I: Das Registerpaar DE hält die Adresse auf einen Zeilenpuffer. Das erste Byte in diesem Puffer gibt die maximale Anzahl einzulesender Zeichen an. Das Registerpaar HL zeigt auf eine Liste von Kontrollzeichen, die die Eingabe unterbrechen können, falls noch kein anderes Zeichen eingegeben wurde. Das erste Byte dieser Liste gibt die Anzahl Zeichen an oder ist Null, falls keine Unterbrechung erfolgen soll.
Das Register B beinhaltet Kontrollwort:
Bit 0 : Wandlung in Großbuchstaben wenn gesetzt
Bit 1 : Cursor unsichtbar machen wenn gesetzt
Bit 2 : Invers Video einschalten wenn gesetzt
@CTAB hält Kontrollzeichen für die Eingabe
@ETAB hält Cursor Kontrollcodes
  O: Das zweite Byte des Zeichenpuffers (Puffer+1) gibt die tatsächliche Anzahl gelesener Zeichen an. Die wirklichen Zeichen beginnen bei Puffer+2. Das Ende des Puffers wird durch eine Null angezeigt. Die Carry Flag ist gesetzt bei leerem Puffer, hierbei hält der Akku eine Null oder das Unterbrechungszeichen

CRLF.MAC
CRLF B: Ausgabe eines Carriage Return und Line Feed auf Bildschirm
  I: ---
  O: Aktuelle Zeile auf Bildschirm ist geschlossen

CRLFC.MAC
CRLFC (DEFIO) B: Ausgabe eines Carriage Return und Line Feed auf beliebiges Gerät
  I: ---
  O: Aktuelle Zeile auf Gerät ist geschlossen

CCRLF.MAC
<...> @CRLF B: Datensatz Carriage Return und Line Feed
  I: ---
  O: ---

ESCCHR.MAC
ESCCHR B: Ausgabe eines Zeichens mit vorheriger Ausgabe eines ESCAPE Kontrollzeichens.
  I: Der Akku hält das Zeichen
  O: ---

CONCHD.MAC
CONCHD B: Ausgabe einer Anzahl gleicher Zeichen auf den Bildschirm.
  I: Register E hält das Zeichen und Register B die Anzahl auszugebender Zeichen.
  O: ---

COMCHR.MAC
COMCHR (DEFIO) B: Ausgabe einer Anzahl gleicher Zeichen auf ein beliebiges Gerät.
  I: Register E hält das Zeichen und Register B die Anzahl auszugebender Zeichen. DEFIO gibt an, welches Gerät bedient werden soll.
  O: ---

CONCHB.MAC
CONCHB B: Ausgabe einer Anzahl gleicher Zeichen auf den Bildschirm über das BIOS.
  I: Register E hält das Zeichen und Register B die Anzahl auszugebender Zeichen.
  O: ---

CONSET.MAC
CONSET B: Neudefinition des Konsolmodus
  I: Registerpaar DE hält 16 Bit Kontrollwort:
0 : Konsolstatus wird nur für Ctrl-C überprüft
1 : Ctrl-S und Ctrl-Q werden ignoriert
2 : Ctrl-I wird nicht expandiert, kein Druckerecho
3 : Ctrl-C führt nicht zu einem Warmstart
8 und 9 sind nur für den internen BDOS Gebrauch verfügbar, der Rest wird nicht benutzt.
  O: Registerpaar DE hält das alte Kontrollwort, falls das Paar beim Aufruf den Wert FFFFH hatte

CONCTL.MAC
CONCTL B: Neudefinition des Konsolmodus
  I: Register B hält eine Maske zum Löschen und Register C eine Maske zum Setzen der Bits 0 bis 7.
  O: Registerpaar HL hält das alte Kontrollwort

STRING.MAC
STRING B: Ausgabe einer Zeichenkette auf die Konsole
  I: Das Registerpaar DE hält Adresse der Zeichenkette mit Abschlusszeichen „$"
  O: ---

STRCOM.MAC
STRCOM (DEFIO) B: Ausgabe einer Zeichenkette auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der Zeichenkette mit Abschlusszeichen „$" und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Zeichenkette erhöht

STRCN0.MAC
STRCN0 B: Ausgabe einer Zeichenkette auf die Konsole
  I: Das Registerpaar DE hält Adresse der Zeichenkette mit Null als Abschluss
  O: ---

STRCM0.MAC
STRCM0 (DEFIO) B: Ausgabe einer Zeichenkette auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der Zeichenkette mit Null als Abschluss und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: ---

STRBIO.MAC
STRBIO B: Ausgabe einer Zeichenkette auf die Konsole über BIOS
  I: Das Registerpaar DE hält Adresse der Zeichenkette mit Abschlusszeichen „$"
  O: ---

STRBI0.MAC
STRBI0 B: Ausgabe einer Zeichenkette auf die Konsole über BIOS
  I: Das Registerpaar DE hält Adresse der Zeichenkette mit Null als Abschluss
  O: ---

CSTBIO.MAC
@STBIO B: Ausgabe einer Zeichenkette auf die Konsole über BIOS
  I: Das Registerpaar DE hält Adresse der Zeichenkette, der Akku hält das Schlusszeichen, üblicherweise „$" oder Null.
  O: ---

FILNAM.MAC
FILNAM (DEFIO) B: Ausgabe eines Dateinamens auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse des Namensfeldes der FCB und Paar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

FILDRV.MAC
FILDRV (DEFIO) B: Ausgabe eines Laufwerkes und Dateinamens auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

FILUSR.MAC
FILUSR (DEFIO) B: Ausgabe des aktuellen Benutzers und Dateinamens auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

DRVNAM.MAC
DRVNAM (DEFIO) B: Ausgabe des Laufwerkes auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

USRNAM.MAC
USRNAM (DEFIO) B: Ausgabe des aktuellen Benutzers
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

DRVUSR.MAC
DRVUSR (DEFIO) B: Ausgabe des aktuellen Benutzers und Laufwerkes auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

FIDRUS.MAC
FIDRUS (DEFIO) B: Ausgabe des aktuellen Benutzers, des Laufwerkes und eines Dateinamens auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

PRFN.MAC
PRFN (DEFIO) B: Ausgabe eines Dateinamens auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse des FCB und Paar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

PRDU.MAC
PRDU (DEFIO) B: Ausgabe des Laufwerkes und aktuellen Benutzers auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht

PRDUFN.MAC
PRDUFN (DEFIO) B: Ausgabe des Laufwerkes, des aktuellen Benutzers, und eines Dateinamens auf ein beliebiges Gerät
  I: Das Registerpaar DE hält Adresse der FCB und Registerpaar HL die Speicheradresse bei gesetztem Bit 3
  O: Beim Speichern wird das Registerpaar HL entsprechend der Länge der Ausgabe erhöht