Funktion |
F# |
Beschreibung |
System Reset | 00 | Terminiert das laufende Programm und kehrt zum CCP zurück.
Parameter: keine Rückgabe: keine |
Console Input | 01 | Liest das nächste Zeichen von der Console
Parameter: keine Rückgabe in D0.W: ASCII Zeichen Die Funktion wartet bis ein Zeichen eingegeben wurde. |
Console Output | 02 | Sendet ein Zeichen zur Konsole
Parameter in D1.W: ASCII Zeichen Rückgabe in D0.W: $00 Wenn die Console nicht bereit ist wird die Programmausführung unterbrochen. |
Auxiliary Input | 03 | Liest das nächste Zeichen vom alternativen Device AUX
Parameter: keine Rückgabe in D0.W: ASCII Zeichen Die Funktion wartet bis ein Zeichen eingegeben wurde. |
Auxiliary Output | 04 | Sendet ein Zeichen zum alternativen Device AUX
Parameter in D1.W: ASCII Zeichen Rückgabe in D0.W: $00 Wenn die Console nicht bereit ist wird die Programmausführung unterbrochen. |
List Output | 05 | Sendet ein Zeichen zum LST Device
Parameter in D1.W: ASCII Zeichen Rückgabe in D0.W: $00 Wenn die Console nicht bereit ist wird die Programmausführung unterbrochen. |
Direct Console I/O | 06 | Direkter Zugriff auf die Console ohne Verarbeitung von Control-Zeichen
Parameter in D1.W: ASCII Zeichen Rückgabe in D0.W: ASCII Zeichen oder Status |
Get I/O Byte | 07 | Ermittelt das I/O Byte
Parameter: keine Rückgabe in D0.W: I/O Byte |
Set I/O Byte | 08 | Setzt das I/O Byte
Parameter in D1.W: I/O Byte Rückgabe in D0.W: $00 |
Print String | 09 | Ausgabe eines Strings auf der Console
Parameter in D1.L: Adresse des Strings Rückgabe in D0.W: $00 Die Funktion sendet alle ab der angegebenen Adresse gefundenen Zeichen bis ein $ auftritt. |
Read Console Buffer | 10 | Liest eine Zeile von der Console in einen Buffer ein.
Parameter in D1.L: Adresse des Buffers Rückgabe in D0.W: $00 Das erste Byte des Buffers zeigt dessen Größe in Byte an, das zweite Byte zeigt die tatsächliche Anzahl Zeichen im Buffer an, ab dem dritten Byte folgen die Zeichen. |
Get Console Status | 11 | Prüft, ob ein Zeichen in der Console vorliegt
Parameter: keine Rückgabe in D0.W: $00 = kein Zeichen, sonst ungleich $00 |
Return Version Number | 12 | Gibt die Versionsnummer des CP/M zurück
Parameter: keine Rückgabe in D0.W: Version Number |
Reset Disk System | 13 | Setzt das Diskettensystem zurück
Parameter: keine Rückgabe in D0.W: $00 alle Laufwerke werden auf Read/Write geschaltet und ausgeloggt. |
Select Disk | 14 | Bestimmt das Standardlaufwerk für folgende Funktionen
Parameter in D1.W = Laufwerksnummer Rückgabe in D0.W: $00 Das Laufwerk wird zusätzlich eingeloggt. |
Open File | 15 | Öffnet die im FCB angegebene Datei
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00..$03 = OK, $FF = ERROR |
Close File | 16 | Schließt die im FCB angegebene Datei
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00..$03 = OK, $FF = ERROR |
Search First | 17 | Sucht im Directory nach dem ersten Auftreten des Dateimusters
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00..$03 = OK, $FF = ERROR Der gefundene Directory Eintrag wird an die aktuelle DMA Adresse kopiert. Der Wert in D0.W bildet den Index auf einen 32 Byte umfassenden Eintrag im Buffer, D0.W * 32 ist die Startposition im Buffer. |
Search Next | 18 | Sucht im Directory nach weiteren Auftreten des Dateimusters
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00..$03 = OK, $FF = ERROR Search Next darf erst nach einem Search First eingesetzt werden, zwischen aufeinanderfolgenden Search Next Aufrufen dürfen keine anderen Diskettenbezogenen BDOS Funktionen benutzt werden. |
Delete File | 19 | Entfernt Dateien aus dem Directory
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 = Datei gelöscht, $FF = Datei nicht gefunden |
Read Sequential | 20 | Liest die nächsten 128 Byte aus einer Datei in den DMA Buffer
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 = OK, $01 = ERROR Der FCB muss zuvor durch Open File (Function 15) oder Make File (Function 22) geöffnet worden sein. Das Programm muss das Feld Current Record (Bytes 21-23 des FCB) auf 0 setzen um die Datei vom Anfang zu lesen. |
Write Sequential | 21 | Schreibt 128 Byte vom DMA Buffer in eine Datei
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 = OK, $01 = Directory voll, $02 = Diskette voll Der FCB muss zuvor durch Funktion 15 oder 22 geöffnet worden sein. Der Inhalt wird in die aktuelle Satznummer (Byte 21-23 des FCB) geschrieben. Die Satznummer wird nach dem Schreiben automatisch erhöht. |
Make File | 22 | Erstellt und öffnet eine neue Datei
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00..$03 = OK, $FF = Directory voll Es muss sichergestellt sein, dass die im FCB angegebene Datei nicht bereits existiert. Zur Sicherheit sollte vorher Delete File aufgerufen werden. |
Rename File | 23 | Benennt eine Datei um
Rückgabe in D0.W: Login Vector Die ersten 12 Byte des FCB bezeichnen die umzubenennende Datei, In den Bytes 16-27 des FCB wird der neue Dateiname angegeben. |
Return Login Vector | 24 | Gibt den Login Status aller Laufwerke als 16 Bit Wert zurück
Parameter: keine Rückgabe in D0.W: Login Vector |
Return Current Disk | 25 | Gibt die Nummer des aktuellen Laufwerks zurück
Parameter: keine Rückgabe in D0.W: Current Disk |
Set DMA Address | 26 | Setzt die Startadresse des DMA Buffers
Parameter in D1.L = Adresse des Buffers Rückgabe in D0.W: $00 Der DMA Buffer hat einen Umfang von 128 Byte und kann auf geraden oder ungeraden Adressen beginnen. |
Write Protect Disk | 28 | Setzt den temporären Schreibschutz für ein Laufwerk
Parameter: keine Rückgabe in D0.W: $00 |
Get Readonly Vector | 29 | Ermittelt den Schreibschutz Status aller Laufwerke
Parameter: keine Rückgabe in D0.W: Read-Only Vector |
Set File Attributes | 30 | Setzt die Dateiattribute der angegebenen Datei
Parameter in D1.L = Adresse des Buffers Rückgabe in D0.W: $00 = OK, $FF = ERROR Die Dateiattribute befinden sich in den höchstwertigen Bits des Dateinamens. F1...F4 = Benutzerdefiniert, F5...F7 = Reserviert, T1 = Read Only, T2 = System, T3 = Archive |
Get Disk Parameters | 31 | Holt eine Kopie des BIOS Disk Parameter Blocks für das Standardlaufwerk
Parameter in D1.L: Adresse des DPB Rückgabe in D0.W: $00 Die Belegung des DPB findet sich weiter unten in einer getrennten Tabelle. |
Set/Get User Code | 32 | Setzt oder ermittelt die Benutzernummer
Parameter in D1.W: $FF = GET oder User Code = SET Rückgabe in D0.W: Benutzernummer Die Benutzernummer muss im Bereich 0 ... 15 liegen. |
Read Random | 33 | Liest einen Satz aus einer Datei in den DMA Buffer
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 = OK, $01,$03,$04,$06 = ERROR Der FCB muss zuvor durch Open File (Function 15) oder Make File (Function 22) geöffnet worden sein. Das Programm muss im Feld Current Record (Bytes 21-23 des FCB) die zu lesende Satznummer vorgeben. |
Write Random | 34 | Schreibt einen Satz vom DMA Buffer in eine Datei
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 = OK, $01,$03,$05,$06 = ERROR Der FCB muss zuvor durch Open File (Function 15) oder Make File (Function 22) geöffnet worden sein. Das Programm muss im Feld Current Record (Bytes 21-23 des FCB) die zu schreibende Satznummer vorgeben. |
Compute File Size | 35 | Ermittelt die Größe einer Datei
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 Bei Erfolg enthält die Satznummer des FCB die Länge der Datei, bei Auftreten eines Fehlers ist die Satznummer 0. |
Set Random Record | 36 | Berechnet die Satznummer zur aktuellen Dateiposition
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 Die Satznummer ist abhängig von der vorausgegangenen Operation. |
Reset Drive | 37 | Bringt die angegebenen Laufwerke in den Reset Status
Parameter in D1.W: Drive Vector Rückgabe in D0.W: $00 Zurückgesetzte Laufwerke sind nicht eingeloggt und haben den Status Read-Write. |
Write Random with Zero Fill | 40 | Schreibt einen Satz vom DMA Buffer in eine Datei
Parameter in D1.L = Adresse des FCB Rückgabe in D0.W: $00 = OK, $01,$03,$05,$06 = ERROR Der FCB muss zuvor durch Open File (Function 15) oder Make File (Function 22) geöffnet worden sein. Das Programm muss im Feld Current Record (Bytes 21-23 des FCB) die zu schreibende Satznummer vorgeben. |
Get Disk Free Space | 46 | Ermittelt die Anzahl der freien logischen Sektoren
Parameter in D1.W: Laufwerksnummer Rückgabe im DMA Buffer: 4 Byte Anzahl Sektoren |
Chain to Program | 47 | Beendet das aktuelle Programm und führt die Kommandozeile im DMA Buffer aus Im ersten Byte des DMA Buffers steht die Anzahl der Zeichen, darauf folgen bis zu 126 ASCII Zeichen, das letzte Byte des DMA Buffers ist $00. |
Flush Buffers | 48 | Schreibt alle nicht verarbeiteten Buffer auf die Disketten
Parameter: keine Rückgabe iin D0.W: $00 = OK, sonst ERROR |