BIOS
XBRA-Verfahren
BIOS-Funktionsliste
Die Grundidee des Drive-B-Simulator war, eine Diskette in den
Speicher einzulesen und als RAM-Disk zu betreiben. Die Funktion
'Diskette schreiben' schreibt die RAM-Disk auf eine Diskette zurück.
Mit der Einführung des 'Swap-Modus' arbeitet das Programm auch mit
Anwendungen, die stur auf Laufwerk A zugreifen.
Note: Drive-B-Simulator uses the same XBRA ID as BlitSim
('BSIM').
Configuration file:
The config file BSTAT.INF is an array of 18 bytes. The following
apply:
Offset |
Meaning
|
0..15 |
Write lock status (0 or 1) for each drive, from byte 0=A to
byte 15=P
|
16 |
Load disk at startup (0 or 1)
|
17 |
Swap drives at startup (0 or 1)
|
Warning Calls to this BIOS extension must be avoided
because Drive-B-Simulator uses undocumented TOS features and
hard-coded addresses which prevent it from working under EmuTOS.
Vorgestellt in der deutsche Zeitschrift TOS 3/1992.
Name: |
»BSIM id« - ermittelt, ob BSIM verfügbar ist.
|
Biosnummer: |
300 (0x012c)
|
Deklaration: |
Bindings für bsim_id
|
Beschreibung: |
Die Funktion ermittelt die BSIM id.
|
Ergebnis: |
Wenn BSIM installiert ist, gibt die Funktion 0x4253494D
('BSIM') zurück.
|
Verfügbar: |
Drive-B-Simulator.
|
Querverweis: |
Binding
|
Assembler: |
move.w #$12C,-(sp) ; Offset 0
trap #13 ; BIOS aufrufen
addq.l #2,sp ; Stack korrigieren
|
GFA-Basic: |
Fehler%=Bios(300)
|
Name: |
»Drive change« - tauscht Drives.
|
Biosnummer: |
304 (0x0130)
|
Deklaration: |
Bindings für drv_change
|
Beschreibung: |
Die Funktion tauscht Drives. Für data gilt:
0: |
Normal
|
1: |
Tauschen
|
-1: |
Status holen
|
|
Ergebnis: |
Die Funktion kann folgende Rückgabewerte liefern in D0:
|
Verfügbar: |
Drive-B-Simulator.
|
Querverweis: |
Binding
|
Assembler: |
move.w #data,-(sp) ; Offset 2
move.w #$130,-(sp) ; Offset 0
trap #13 ; BIOS aufrufen
addq.l #4,sp ; Stack korrigieren
|
GFA-Basic: |
Fehler%=Bios(304,W:data%)
|
Name: |
»Drive protection« - schützt Laufwerke.
|
Biosnummer: |
305 (0x0131)
|
Deklaration: |
Bindings für drvprotec
|
Beschreibung: |
Die Funktion schützt Laufwerke. ptrdrv ist ein
Bitvektor für geschützte Laufwerke (Bit 0=A, Bit 1=B...), oder -1
(Status holen).
|
Ergebnis: |
Die Funktion liefert als Ergebnis einen Bitvektor für die
geschützte Laufwerke.
|
Verfügbar: |
Drive-B-Simulator.
|
Querverweis: |
Binding
|
Assembler: |
move.l #ptrdrv,-(sp) ; Offset 2
move.w #$131,-(sp) ; Offset 0
trap #13 ; BIOS aufrufen
addq.l #6,sp ; Stack korrigieren
|
GFA-Basic: |
Fehler%=Bios(305,L:prtdrv%)
|
Name: |
»Drive status« - Get RAM-disk details.
|
Biosnummer: |
306 (0x0132)
|
Deklaration: |
Bindings für dstate
|
Beschreibung: |
Die Funktion ermittelt den Deskriptorfeld für die RAM-Disk.
Der pointer zeigt auf Deskriptorfeld.
Offset |
Beschreibung
|
|
|
0 (long) |
Startadresse der Disk im Speicher
|
4 (long) |
Länge der Disk
|
8 (short) |
Seiten (der eingelesenen Disk)
|
10 (short) |
Tracks
|
12 (short) |
Sektoren
|
|
Ergebnis: |
Die Funktion kann folgende Rückgabewerte liefern in D0:
E_OK: |
OK
|
-1: |
Keine Disk im Speicher
|
|
Verfügbar: |
Drive-B-Simulator.
|
Querverweis: |
Binding
|
Assembler: |
pea pointer ; Offset 2
move.w #$132,-(sp) ; Offset 0
trap #13 ; BIOS aufrufen
addq.l #6,sp ; Stack korrigieren
|
GFA-Basic: |
Fehler%=Bios(306,L:pointer%)
|
Name: |
»Kill disk« - löscht Diskette.
|
Biosnummer: |
302 (0x012e)
|
Deklaration: |
Bindings für kill_disk
|
Beschreibung: |
Die Funktion löscht die Diskette aus dem Speicher.
|
Ergebnis: |
Die Funktion kann folgende Rückgabewerte liefern in D0:
E_OK: |
Disk ist gelöscht
|
-1: |
Falsches Magic
|
|
Verfügbar: |
Drive-B-Simulator.
|
Querverweis: |
Binding
|
Assembler: |
move.l #magic,-(sp) ; Offset 2, magic:$87654321
move.w #$12E,-(sp) ; Offset 0
trap #13 ; BIOS aufrufen
addq.l #6,sp ; Stack korrigieren
|
GFA-Basic: |
Fehler%=Bios(302,L:magic%)
|
Name: |
»Load disk« - lädt eine Diskette in den Speicher.
|
Biosnummer: |
301 (0x012d)
|
Deklaration: |
Bindings für load_disk
|
Beschreibung: |
Die Funktion lädt eine Diskette in den Speicher.
|
Ergebnis: |
Die Funktion kann folgende Rückgabewerte liefern in D0:
E_OK: |
OK
|
-1: |
Zuwenig Speicher
|
-2: |
Bereits eine Disk im Speicher
|
-3: |
Disk Error
|
-4: |
Falsches Magic
|
|
Verfügbar: |
Drive-B-Simulator.
|
Querverweis: |
Binding
|
Assembler: |
move.l #magic,-(sp) ; Offset 2, magic:$12345678
move.w #$12D,-(sp) ; Offset 0
trap #13 ; BIOS aufrufen
addq.l #6,sp ; Stack korrigieren
|
GFA-Basic: |
Fehler%=Bios(301,L:magic%)
|
Name: |
»Save disk« - schreibt Diskette.
|
Biosnummer: |
303 (0x012f)
|
Deklaration: |
Bindings für save_disk
|
Beschreibung: |
Die Funktion schreibt den Speicher auf die Diskette.
|
Ergebnis: |
Die Funktion kann folgende Rückgabewerte liefern in D0:
E_OK: |
Alles OK
|
-1: |
Falsches Magic
|
-2: |
Keine Disk im Speicher
|
-4: |
Schreibfehler
|
|
Verfügbar: |
Drive-B-Simulator.
|
Querverweis: |
Binding
|
Assembler: |
move.l #magic,-(sp) ; Offset 2, magic:$ABCD0123
move.w #$12F,-(sp) ; Offset 0
trap #13 ; BIOS aufrufen
addq.l #6,sp ; Stack korrigieren
|
GFA-Basic: |
Fehler%=Bios(303,L:magic%)
|
BIOS
XBRA-Verfahren
BIOS-Funktionsliste