Routinen für zeichenweise Diskettenoperationen

Die hier vorgestellten Routinen sind solche für zur Zeichen Ein-/Ausgabe bei Diskettenoperationen. Die BDOS-Schnittstelle ist in einem sechs Byte großen Parameterblock abgelegt (Siehe dazu die Module UDSKGT und UDSKPT). Gegenüber den vorigen Routinen erlauben diese die flexiblere Übergabe des Parameterblocks weil nun nur noch eine Adresse (zwei Bytes) getauscht werden muss. Außerdem wird die User Area unterstützt.

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

UDSKGT.MAC
UDSKGT   B: Lesen eines Bytes von Diskette vom beliebigen Userbereich
  RDPBLK   Zeiger auf einen sechs Byte Parameter Block:
PB+0,1die 16 Bit DMA Puffer Adresse
PB+2der 8 Bit relative Puffer Zeiger
PB+3,4die 16 Bit FCB Adresse
PB+5der Userbereich (-1 eingestellter)
  I: Der Parameterblock muss gesetzt sein, falls nicht die Defaultwerte verwendet werden sollen
  O: Die Carryflag ist gesetzt falls Datei nicht vorhanden ist oder keine Rekords mehr existieren, sonst nicht gesetzt und Akku hält gelesenes Zeichen

UDSKPT.MAC
UDSKPT   B: Schreiben eines Bytes auf Diskette auf beliebigen Userbereich
@WRMPX   B: DMA Puffer vor Rekordausgabe gesetzt
  WRPBLK   Zeiger auf einen sechs Byte Parameter Block:
PB+0,1die 16 Bit DMA Puffer Adresse
PB+2der 8 Bit relative Puffer Zeiger
PB+3,4die 16 Bit FCB Adresse
PB+5der Userbereich (-1 eingestellter)
  I: Der Parameterblock muss gesetzt sein falls nicht die Defaultwerte verwendet werden sollen und der Akku hält das Zeichen, das auf die Diskette geschrieben werden soll
  O: Die Carryflag ist gesetzt falls kein Platz mehr auf der Diskette ist oder die Datei nicht vorhanden ist, sonst nicht gesetzt

UGTEOF.MAC
UGTEOF B: Lesen eines Zeichens von Diskette vom beliebigen Benutzer, testen ob Dateiende
  I: ---
  O: Die Carryflag ist gesetzt bei Ende der Datei, physikalisch oder beim Zeichen EOF (Hex 1A - Ctrl-Z)

UPTEOF.MAC
UPTEOF B: Beenden einer Dateiausgabe auf beliebigem Userbereich
  I: ---
  O: Die Carryflag ist gesetzt falls kein Platz mehr auf Diskette ist oder Datei nicht gefunden wurde, sonst nicht gesetzt. Der letzte Rekord wird mit Zeichen EOF gefüllt und auf Diskette geschrieben. Ist in Adresse UPTEOF-1 das Bit 0 gesetzt, so wird zuvor noch ein EOF (Hex 1A - Ctrl-Z) geschrieben.

UDSKUG.MAC
UDSKUG B: Rückschreiben eines gelesenen Zeichens
  I: ---
  O: Die Carryflag zeigt Fehler an.

UCLOSE.MAC
UCLOSE B: Beenden und Schließen einer geöffneten Ausgabe Datei
  I: ---
  O: Carryflag gesetzt falls Datei nicht geschlossen werden konnte, sonst nicht gesetzt.

COMDSK.MAC
@CMDSK B: Einstellen des DMA Puffers und Userbereiches bevor Diskettenoperation ausgeführt wird
  I: Das Registerpaar HL hält Adresse der auszuführenden Funktion und Register IX hält Adresse eines Parameterblocks
  O: Die Carryflag ist gesetzt bei Übertragungsfehler, sonst nicht gesetzt