BASIC-Routinen

Die hier vorgestellten Routinen sind solche für die Verabeitung von Routinen, die an die Sprache BASIC angelehnt sind:

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

MID.MAC
@MID B: Teil einer Zeichenkette laden
  I: Registerpaar HL zeigt auf Originalzeichenkette, Registerpaar DE zeigt auf neue Kette, Register C weist auf die Startposition und Register B hält die Anzahl zu ladender Zeichen. Ist Register B Null, so werden alle Zeichen bis zum Ende geladen.
  O: Bei gesetzter Carry Flag liegt ein Fehler vor, das Register C weist auf eine Position, die größer ist als die Länge der Zeichenkette.

LEFT.MAC
@LEFT B: Linken Teil einer Zeichenkette laden
  I: Registerpaar HL zeigt auf Originalzeichenkette, Registerpaar DE zeigt auf neue Kette, Register B hält die Anzahl zu ladender Zeichen.
  O: Neue Zeichenkette ist mit Teilzeichenkette gefüllt

RIGHT.MAC
@RIGHT B: Rechten Teil einer Zeichenkette laden
  I: Registerpaar HL zeigt auf Originalzeichenkette, Registerpaar DE zeigt auf neue Kette, Register B hält die Anzahl zu ladender Zeichen.
  O: Neue Zeichenkette ist mit Teilzeichenkette gefüllt

INSTR.MAC
@INSTR B: Suchen einer Teilzeichenkette
  I: Registerpaar HL zeigt auf Zeichenkette, in der gesucht werden soll, Registerpaar DE zeigt auf zu suchende Kette. Register C hält Startposition in der Suchkette. Ist C Null, so wird mit dem ersten Zeichen begonnen.
  O: Register B hält die Position der zu suchenden Kette und die Zero Flag ist gesetzt. Bei nicht gesetzter Zero Flag, ist die zu suchende Kette nicht gefunden worden.

STRNG.MAC
@STRNG B: Zeichenkette aus bestimmten Zeichen erzeugen
  I: Registerpaar DE zeigt auf Zeichenkette, Register B hält das konstante Zeichen und Register C hält die Länge der Zeichen.
  O: Zeichenkette mit konstanten Zeichen gefüllt. Das Registerpaar DE zeigt auf die abschließende Null

ASSTR.MAC
@ASSTR B: Zuweisung einer Zeichenkette
  I: Registerpaar HL zeigt auf Originalkette und Registerpaar DE zeigt auf neue Kette
  O: Originalzeichenkette in neue Kette kopiert. Die Registerpaare DE und HL weisen jeweils hinter die abschließende Null

STRIP.MAC
@STRIP B: Löschen des höchstwertigen Bits einer Zeichenkette
  I: Registerpaar HL zeigt auf Originalkette und Registerpaar DE zeigt auf neue Kette
  O: In der neuen Zeichenkette ist bei jedem Zeichen das siebte Bit auf Null gesetzt

OPENI.MAC
@OPENI B: Öffnen einer vorhandenen Datei zum Lesen
  I: Das Registerpaar HL zeigt auf eine Zeichenkette, die den Dateinamen, die Extension und eventuell das Laufwerk beinhaltet. Das Registerpaar DE zeigt auf einen File Control Block (FCB), der 36 Bytes lang sein muss. Register C hält die Kanalnummer im Bereich 1 bis 15. Falls Register C 0 ist, wird kein Kanal geöffnet sondern nur der FCB.
  O: Die gesetzte Carry Flag zeigt einen Fehler an. Hierbei hält der Akku folgende Werte:
52Falsche Kanalnummer (>15)
53Datei ist nicht vorhanden
55Der Kanal ist bereits geöffnet
65Der Dateiname ist fehlerhaft

OPENO.MAC
@OPENO B: Öffnen einer neuen Datei zum Schreiben
  I: Das Registerpaar HL zeigt auf eine Zeichenkette, die den Dateinamen, die Extension und eventuell das Laufwerk beinhaltet. Das Registerpaar DE zeigt auf einen File Control Block (FCB), der 36 Bytes lang sein muss. Register C hält die Kanalnummer im Bereich 1 bis 15. Falls Register C 0 ist, wird kein Kanal geöffnet sondern nur der FCB.
  O: Die gesetzte Carry Flag zeigt einen Fehler an. Hierbei hält der Akku folgende Werte:
52Falsche Kanalnummer (>15)
55Der Kanal ist bereits geöffnet
64Der Dateiname ist fehlerhaft
67Die Directory ist voll

KILL.MAC
@KILL B: Löschen einer Datei
  I: Das Registerpaar HL zeigt auf eine Zeichenkette, die den Dateinamen, die Extension und eventuell das Laufwerk beinhaltet.
  O: Die gesetzte Carry Flag zeigt einen Fehler an. Hierbei hält der Akku folgenden Wert:
64Der Dateiname ist fehlerhaft

FIND.MAC
@FIND B: Suchen einer Datei
  I: Das Registerpaar HL zeigt auf eine Zeichenkette, die den Dateinamen, die Extension und eventuell das Laufwerk beinhaltet. Das Registerpaar DE zeigt auf die genau 12 Byte lange resultierende Zeichenkette. Register B hält eine optionale Zahl, die die Anzahl von Versuchen zum Suchen angibt. Dies ist sinnvoll bei Universalzeichen im Dateinamen.
  O: Die gesetzte Carry Flag zeigt einen Fehler an oder dass die gesuchte Datei nicht gefunden wurde. Hierbei hält der Akku folgende Werte:
0Datei wurde nicht gefunden
64Der Dateiname ist fehlerhaft
Wurde die Datei nicht gefunden, so ist die resultierende Zeichenkette leer. Andernfalls ist diese Kette exakt mit 12 Bytes gefüllt, das Format ist NNNNNNNN.XXX

FTCFL.MAC
@FTCFL B: Hilfsfunktion zur Dateizuordnung
  I: Das Registerpaar HL zeigt auf eine Zeichenkette, die den Dateinamen, die Extension und eventuell das Laufwerk beinhaltet. Das Registerpaar DE zeigt auf einen File Control Block (FCB), der 36 Bytes lang sein muss. Register C hält die Kanalnummer im Bereich 1 bis 15. Falls Register C 0 ist, wird kein Kanal geöffnet sondern nur der FCB.
  O: Im Fehlerfall ist die Carryflag gesetzt und der Akku hält den Kode 64.

TSTCH.MAC
@TSTCH B: Hilfsfunktion zur Dateizuordnung
  I: Register C hält eine Kanalnummer im Bereich 1 bis 15.
  O: Im Fehlerfall ist die Carryflag gesetzt und der Akku hält den Wert
52Falsche Kanalnummer (>15)
55Der Kanal ist bereits geöffnet