Das ST-Betriebssystem (6)

Wir haben in Teil 5 unserer Betriebssystem-Serie verschiedene Funktionen des Extended-BIOS (XBIOS) kennengelernt. Unsere gemeinsame Wanderung wird uns in diesem interessanten Teil des Betriebssystems weiterführen

14 IOREC

Nach der Ausführung dieser Funktion wird ein Zeiger auf einen Eingabe-Puffer eines seriellen Eingabe-Gerätes, zurückgegeben. Die Funktion IOREC verlangt, daß die Device-Nummer des anzusprechenden Gerätes vor Aufruf der Funktions als Parameter auf dem Stack übergeben wird. Zulässige Device-Nummern sind:

Device-Nummer        Eingabe-Gerät
0                    RS232
1                    TASTATUR
2                    MIDI

Der Eingabe-Puffer ist wie folgt aufgebaut:

ibuf        Zeiger auf Puffer
ibufsiz     Größe des Puffers
ibufhd      Head-Index
ibuftl      Tail-Index
ibuflow     Unteremarke
ibufhi      Oberemarke
MOVE.W  #1,-(SP)           ;PUFFER FÜR TASTATUR
MOVE.W  #14,-(SP)          ;FUNKTIONSNUMMER
TRAP    #14                ;XBIOS AUFRUFEN
ADDQ.L  #4,SP              ;STACK KORREKTUR

15 RSCONF

Die Funktion RSCONF ermöglicht die Änderung der RS232 Konfiguration. Nach Aufruf dieser Funktion werden verschiedene Register des Multi Function Peripheral Chip auf den gewünschten Wert gesetzt. Bei Übergabe einer -1 als Parameter kann die momentane Einstellung abgefragt werden. Sechs Parameter werden für diese Funktion benötigt.

Die folgenden Parameter dienen zum Verändern der entsprechenden Register des MFP 68901:

Register Nummer
Register 20 Sycronous Character
Register 21 USART Control
Register 22 Receiver Status
Register 23 Transmiter Status

Durch der Parameter BAUD kann man die Baud-Rate bestimmen. Folgende Werte sind zulässig:

Wert   Baudrate
0    19200
1     9600
2     4800
3     3600
4     2400
5     2000
6     1800
7     1200
8      600
9      300
10     200
11     150
12     125
13     100
14      75
15      50

Durch der FLOW Parameter wird der Handshake-Modus festgelegt. Folgende Werte sind dabei möglich:

Flow   Bedeutung
0      Kein Handshake
1      XON/XOFF
2      RTS/CTS
3      XON/XOFF und RTS/CTS (nicht sinnvoll)
MOVE.W #-l,-(SP) ;WIRD NICHT GEÄNDERT
MOVE.W #-l,-(SP)
MOVE.W #-l,-(SP)
MOVE.W #-l,-(SP)
MOVE.W #0,-(SP) ;KEIN HANDSHAKE
MOVE.W #1,-(SP) ;9600 BAUD
MOVE.W #15,(SP) ;FUNKTIONSNUMMER
TRAP #14 ;XBIOS AURUFEN
ADD.L #14,SP ;STACK KORREKTUR

16 KEYTBL

Mit Hilfe dieser Funktion ist es möglich, eigene Tastaturtabellen zu erstellen. Drei Tabellen von jeweils 128 Bytes groß sind möglich:

16 KEYTBL

MOVE.L #-l,-(SP)                    ; WIRD NICHT VERANDERN
MOVE.L #-l,-(SP)
MOVE.L #-l,-(SP)
MOVE.W #16^-(SP)                    ;FUNKTIONSNUMMER
TRAP   #14                                 ;XBIOS AUFRUFEN
ADD.L #14,SP                            ;STACK KORREKTUR

17 RANDOM

Nach Aufruf dieser Funktion erhält man in den unteren 24 Bits des Registers DO eine Zufallszahl. Die Bits 24 bis 31 werden dabei immer auf Null gesetzt. Bei jedem neuen Aufruf erhält man ein anderes Ergebnis. Die Erzeugung dieser Zufallszahlen basiert auf einer Reihenentwicklung, die ihren Startwert aus der internen Uhrzeitfunktion gewinnt. Es handelt sich also nur um eine Pseudozufallszahl, die als ausreichend betrachtet werden kann.

MOVE.W #17,-(SP)           ;FUNKTIONSNUMMER
TRAP   #14                 ;XBIOS
ADDQ.L #2,SP               ;STACK KORREKTUR
AND.W  #$FF,D0             ;ZEICHEN MASKIEREN
MOVE.W D0,-(SP)            ;ZEICHEN AUSGEBEN
MOVE.W #2,-(SP)            ;ÜBER CONOUT
TRAP #1
ADDQ.L #4,SP

18 PROTOBT

Diese Funktion gestattet das Erzeugen oder das Ändern eines Bootsektors. Der Bootsektor befindet sich auf Track 0, Sektor 1 der Seite Null einer Diskette. In diesem Bootsektor wird dem Betriebssystem mitgeteilt, um welchen Diskettentyp es sich handelt. Folgende Parameter sind für die Ausführung dieser Funktion nötig:

MOVE.   W #-1,-(SP)        ;BOOTSEKTOR AUSFÜHREN
MOVE.   W #1,-(SP)         ;40 TRACK, DOUBLE SIDED
MOVE.   L #-1,-(SP)        ;SERIENNUMMER NICHT VERÄNDERT
MOVE.   L #BUFFER,-(SP)    ;BUFFERADRESSE
MOVE.   W #18,-(SP)        ;FUNKTIONSNUMMER
TRAP    #14                ;XBIOS AUFRUFEN
ADD.      L 14,SP          ;STACK KORREKTUR

-buf: ist die Anfangsadresse eines 512 Byte großen Puffers, der entweder den Bootsektor enthält oder in dem die Kopie erzeugt wird.

-serialnr: ist eine Seriennummer, die auf dem Bootsektor geschrieben wird. Wird hier -1 als Parameter übergeben, so bleibt die bestehende Seriennummer unverändert. Ist der Parameter ein Wert größer als 24 Bit, dann wird eine zufällige Nummer geschrieben.

-disktyp: bestimmt den Disktyp. Ist der Parameter -l, so bleibt der Disktyp unverändert. Folgende Werte kann Disktyp annehmen:

0  = 40  Tracks, einseitig
1  = 40  Tracks, zweiseitig
2  = 80  Tracks, einseitig
3  = 80  Tracks, zweiseitig

-execflag: hat dieser Parameter den Wert l, so wird der Bootsektor ausführbar. Ist der Wert gleich Null, dann handelt es sich um einen nicht ausführbaren Bootsektor. Auch hier bewirkt die Übergabe von -l, daß der Ursprungszustand nicht geändert wird.

19 FLOPVER

Durch diese Funktion können ein oder mehrere Sektoren einer Diskette verifiziert werden, d. h., sie kontrolliert, ob die Daten fehlerlos geschrieben wurden. Die Sektoren werden von Diskette gelesen und mit dem Inhalt des Puffers verglichen. FLOPVER wird mit sieben Parametern versorgt:

Ob die Funktion erfolgreich durchgeführt wurde, wird im Register DO mitgeteilt. Eine Null bedeutet eine gelungene Ausführung und eine negative Zahl zeigt, daß die Funktion fehlerhaft ausgeführt wurde.

MOVE.W #5,-(SP)          ;5 SEKTOREN
MOVE.W #0,-(SP)          ;SEITE NULL
MOVE.W #20,-(SP)         ;TRACK 20
MOVE.W #5,-(SP)          ;SEKTOR 5
MOVE.L #0,-(SP)          ;DUMMY
MOVE.L #BUFFER,-(SP)     ;BUFFERADRESSE
MOVE.W #19,-(SP)         ;FUNKTIONSNUMMER
TRAP   #14               ;XBIOS AUFRUFEN
ADD.L  #16,SP            ;STACK KORREKTUR

20 SCRDMP

Hierdurch kann der Anwender eine Bildschirm-Hardcopy auf einem angeschlossenen Drucker ausgeben. Dieser Funktion entspricht der manuell ausführbaren Hardcopy-Funktion (AL-TERNATE und HELP).

MOVE.W  #20,-(SP)        ;FUNKTIONSNUMMER
TRAP    #14              ;XBIOS AUFRUFEN
ADDQ.L  #2,SP            ;STACK KOREKTUR


Aus: ST-Computer 10 / 1986, Seite 44

Links

Copyright-Bestimmungen: siehe Über diese Seite