Home BIOSBIOS XBRA-VerfahrenXBRA-Verfahren BIOS-FunktionslisteBIOS-Funktionsliste

3.10 BSIM-BIOS-Erweiterungen

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.

bsim_id Ermittelt, ob BSIM verfügbar ist
drv_change Tauscht Laufwerke
drvprotec Schützt Laufwerke
dstate Get details about the drive
kill_disk Löscht Diskette
load_disk Lädt eine Diskette in den Speicher
save_disk Schreibt Diskette.

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.

3.10.1 bsim_id

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
 

3.10.1.1 Bindings für bsim_id

Assembler:
 
move.w    #$12C,-(sp)   ; Offset 0
trap      #13           ; BIOS aufrufen
addq.l    #2,sp         ; Stack korrigieren
GFA-Basic: Fehler%=Bios(300)
 

3.10.2 drv_change

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:
 
0: Normal
1: Tauschen
Verfügbar: Drive-B-Simulator.
 
Querverweis: Binding
 

3.10.2.1 Bindings für drv_change

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%)
 

3.10.3 drvprotec

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
 

3.10.3.1 Bindings für drvprotec

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%)
 

3.10.4 dstate

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
 

3.10.4.1 Bindings für dstate

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%)
 

3.10.5 kill_disk

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
 

3.10.5.1 Bindings für kill_disk

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%)
 

3.10.6 load_disk

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
 

3.10.6.1 Bindings für load_disk

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%)
 

3.10.7 save_disk

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
 

3.10.7.1 Bindings für save_disk

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%)
 

Home BIOSBIOS XBRA-VerfahrenXBRA-Verfahren BIOS-FunktionslisteBIOS-Funktionsliste