• DMAread | Sektoren von Festplatte lesen. |
• DMAwrite | Sektoren auf Festplate schreiben. |
• Flopfmt | Spur auf einer Diskette formatieren. |
• Floprate | Seekrate und Timeout der Floppy setzen. |
• Floprd | Einzelne Sektoren lesen. |
• Flopver | Sektoren einer Diskette überprüfen. |
• Flopwr | Einzelne Sektoren schreiben. |
• Metaclose | Gibt ein MetaDOS Gerät wieder frei. |
• Metadiscinfo | Ermittelt aktuelle Status-Informationen. |
• Metagettoc | Liefert das Inhaltsverzeichnis eines Gerätes. |
• Metainit | Informationen über MetaDOS Version ermitteln. |
• Metaioctl | Schickt GEMDOS-Opcodes an ein MetaDOS Gerät. |
• Metaopen | Initialisiert ein MetaDOS Gerät. |
• Metaread | Liest Daten von einem MetaDOS Gerät. |
• Metaseek | Seeks to a physical address. |
• Metasetsongtime | Startet eine Audio-Wiedergabe. |
• Metastartaudio | Startet eine Audio-Wiedergabe. |
• Metastatus | Ermittelt den Status eines MetaDOS Gerätes. |
• Metastopaudio | Beendet eine Audio-Wiedergabe. |
• Metawrite | Schreibt Daten auf ein MetaDOS Gerät. |
• Protobt | Bootsektor für Diskette im Speicher generieren. |
Querverweis: GEMDOS-Dateifunktionen GEMDOS-Verzeichnisfunktionen
Name: | »DMA read« - liest einzelne Sektoren von einer DMA-Einheit.
| ||||||||||||
Xbiosnummer: | 42
| ||||||||||||
Deklaration: | int16_t DMAread( int32_t sector, int16_t count, void *buffer,
int16_t devno );
| ||||||||||||
Beschreibung: | Die XBIOS-Routine DMAread liest einzelne oder mehrere Sektoren
von einem ACSI- oder SCSI Gerät. Es gilt:
Hinweis: In vielen Fällen ist es sinnvoller, statt dieser Funktion Rwabs zu verwenden. Der angegebene Speicherbereich muß für die jeweilige Hardware beschreibbar sein (Stichwort: Fast-RAM-Buffer). SCSI-Geräte werden von dieser Funktion nicht per DMA, sondern per Handshake betrieben. | ||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine 0, wenn kein Fehler
passiert ist, ansonsten einen Fehlercode.
| ||||||||||||
Verfügbar: | Diese Funktion steht erst ab TOS 2.00 zur Verfügung.
| ||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||
Querverweis: | Binding DMAwrite Floprd Flopwr Rwabs
|
C: | #include <tos.h>
int16_t DMAread( int32_t sector, int16_t count, void *buffer, int16_t devno ); |
Assembler: |
move.w devno,-(sp) ; Offset 12 pea buffer ; Offset 8 move.w count,-(sp) ; Offset 6 move.l sector,-(sp) ; Offset 2 move.w #42,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $E(sp),sp ; Stack korrigieren |
Name: | »DMA write« - schreibt einzelne Sektoren auf eine
DMA-Einheit.
| ||||||||||||
Xbiosnummer: | 43
| ||||||||||||
Deklaration: | int16_t DMAwrite( int32_t sector, int16_t count, void *buffer,
int16_t devno );
| ||||||||||||
Beschreibung: | Die XBIOS-Routine DMAwrite schreibt einzelne oder mehrere
Sektoren auf ein ACSI- oder SCSI-Gerät. Es gilt:
Hinweis: In vielen Fällen ist es sinnvoller, statt dieser Funktion Rwabs zu verwenden. Der angegebene Speicherbereich muß für die jeweilige Hardware lesbar sein (Stichwort: Fast-RAM-Buffer). SCSI-Geräte werden von dieser Funktion nicht per DMA, sondern per Handshake betrieben. | ||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine 0, wenn kein Fehler
passiert ist, ansonsten einen Fehlercode.
| ||||||||||||
Verfügbar: | Diese Funktion steht erst ab TOS 2.00 zur Verfügung.
| ||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||
Querverweis: | Binding DMAread Floprd Flopwr Rwabs
|
C: | #include <tos.h>
int16_t DMAwrite( int32_t sector, int16_t count, void *buffer, int16_t devno ); |
Assembler: |
move.w devno,-(sp) ; Offset 12 pea buffer ; Offset 8 move.w count,-(sp) ; Offset 6 move.l sector,-(sp) ; Offset 2 move.w #43,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $E(sp),sp ; Stack korrigieren |
Name: | »Floppy format« - formatiert einzelne Spuren auf einer
Diskette.
| ||||||||||||||||||||
Xbiosnummer: | 10
| ||||||||||||||||||||
Deklaration: | int16_t Flopfmt( void *buf, int32_t filler, int16_t devno,
int16_t spt, int16_t trackno, int16_t sideno, int16_t interlv, int32_t
magic, int16_t virgin );
| ||||||||||||||||||||
Beschreibung: | Die XBIOS-Routine Flopfmt formatiert eine oder mehrere Spuren
auf einer Diskette. Es gilt:
Hinweis: Ab dem Blitter-TOS erlaubt es das Desktop, eine Liste von Sektornummern zu übergeben, um Spuren derart zu spiralisieren, daß beim Spurwechsel möglichst wenig Zeit mit dem Warten auf den nächsten Sektor verloren wird. Bei einem normalen Format (9 Sektoren pro Spur) muss der über den Parameter buf angegebene Speicherbereich eine Größe von mindestens 8 Kbyte besitzen; in anderen Fällen muss der Puffer evtl. noch vergrößert werden. | ||||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine 0, wenn kein Fehler
passiert ist. Im Fehlerfall wird eine durch 0 abgeschlossene Liste der
fehlerhaften Sektoren in den Puffer geschrieben.
| ||||||||||||||||||||
Verfügbar: | Alle TOS Versionen.
| ||||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||||||||||
Querverweis: | Binding Flopwr
|
C: | #include <tos.h>
int16_t Flopfmt( void *buf, int32_t filler, int16_t devno, int16_t spt, int16_t trackno, int16_t sideno, int16_t interlv, int32_t magic, int16_t virgin ); |
Assembler: |
move.w virgin,-(sp) ; Offset 24 move.l magic,-(sp) ; Offset 20 move.w interlv,-(sp) ; Offset 18 move.w sideno,-(sp) ; Offset 16 move.w trackno,-(sp) ; Offset 14 move.w spt,-(sp) ; Offset 12 move.w devno,-(sp) ; Offset 10 move.l filler,-(sp) ; Offset 6 pea buf ; Offset 2 move.w #10,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $1A(sp),sp ; Stack korrigieren |
GFA-Basic |
Fehler%=Xbios(10,L:buf%,L:filler%,W:devno%,W:spt%,W:trackno%,W:sideno%,W:interlv%,L:magic%,W:virgin%)
|
Name: | »Floppy rate« - liest oder setzt die seek rate eines
Floppylaufwerks.
| |||||||||||||||||||||||||||
Xbiosnummer: | 41
| |||||||||||||||||||||||||||
Deklaration: | int16_t Floprate( int16_t devno, int16_t newrate );
| |||||||||||||||||||||||||||
Beschreibung: | Die XBIOS-Routine Floprate liefert bzw. setzt die aktuelle
Seekrate. Es gilt:
Hinweis: Ab MagiC 3 kann darüberhinaus per Floprate (-1, newrate) der Timeout für die Floppy eingestellt werden; ein Wert von 300 bedeutet 1,5 Sekunden (dies ist der Wert, der beim Booten per Default eingestellt ist). Bei älteren ROM-TOS-Versionen muß man die vorher undokumentierten Systemvariablen verwenden: Zum portablen Setzen kann man die folgende Beispielroutine nutzen. Das MilanTOS 4.08 (2003.09.03) macht nichts mit den Werten und liefert immer null zurück. | |||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert die vorherige Seekrate als Ergebnis.
| |||||||||||||||||||||||||||
Verfügbar: | Die Funktion steht erst ab TOS 1.04 zur Verfügung.
| |||||||||||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| |||||||||||||||||||||||||||
Querverweis: | Binding Flopwr Floprd Flopver Flopfmt
|
C: | #include <tos.h>
int16_t Floprate( int16_t devno, int16_t newrate ); |
Assembler: |
move.w newrate,-(sp) ; Offset 4 move.w devno,-(sp) ; Offset 2 move.w #41,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #6,sp ; Stack korrigieren |
/* Portables Setzen der Floppy-Seekrate für alle TOS-Versionen (außer RAM-TOS 1.00). Parameter: genau wie bei XBIOS-Funktion "Floprate()" */ int16_t SeekRate ( int16_t devno, int16_t newrate ) { int32_t stack; int16_t version; OSHEADER *sys; /* Zeiger auf OS-Header holen */ stack = Super (0L); sys = *((OSHEADER **) 0x4f2); version = sys->os_version; Super ((void *)stack); /* bei neuem TOS einfach "Floprate()" aufrufen */ if ( version >= 0x0104 ) return Floprate ( devno, newrate ); else { /* sonst Zeiger auf interne GEMDOS-Variablen berechnen */ int16_t *sk, merk; if ( version == 0x0102 ) sk = (int16_t *) 0x0a4e; else sk = (int16_t *) 0x0a08; /* Laufwerk B: 2 int16_t dahinter */ if ( devno ) sk = &(sk[2]); merk = *sk; /* Wert nur bei ungleich -1 eintragen */ if ( newrate != -1 ) *sk = newrate; /* alten Wert immer zurückliefern */ return merk; } }
Name: | »Floppy read« - liest einzelne Sektoren von einer
Platteneinheit.
| ||||||||||||||||||
Xbiosnummer: | 8
| ||||||||||||||||||
Deklaration: | int16_t Floprd( void *buf, int32_t filler, int16_t devno,
int16_t sectno, int16_t trackno, int16_t sideno, int16_t count );
| ||||||||||||||||||
Beschreibung: | Die XBIOS-Routine Floprd liest einen oder mehrere physikalische
Sektoren von einer Diskette. Es gilt:
| ||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine 0, wenn kein Fehler
passiert ist, ansonsten einen Fehlercode.
| ||||||||||||||||||
Verfügbar: | Alle TOS Versionen.
| ||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||||||||
Querverweis: | Binding DMAread DMAwrite Flopwr Rwabs
|
C: | #include <tos.h>
int16_t Floprd( void *buf, int32_t filler, int16_t devno, int16_t sectno, int16_t trackno, int16_t sideno, int16_t count ); |
Assembler: |
move.w count,-(sp) ; Offset 18 move.w sideno,-(sp) ; Offset 16 move.w trackno,-(sp) ; Offset 14 move.w sectno,-(sp) ; Offset 12 move.w devno,-(sp) ; Offset 10 move.l filler,-(sp) ; Offset 6 pea buf ; Offset 2 move.w #8,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $14(sp),sp ; Stack korrigieren |
GFA-Basic |
Fehler%=Xbios(8,L:buf%,L:filler%,W:devno%,W:sectno%,W:trackno%,W:sideno%,W:count%)
|
Name: | »Floppy verify« - überprüft Disketten.
| ||||||||||||||||||||||||
Xbiosnummer: | 19
| ||||||||||||||||||||||||
Deklaration: | int16_t Flopver( void *buf, int32_t filler, int16_t devno,
int16_ sectno, int16_t trackno, int16_t sideno, int16_t count );
| ||||||||||||||||||||||||
Beschreibung: | Die XBIOS-Routine Flopver überprüft, ob eine Reihe von
Sektoren fehlerfrei von einem Disketten-Laufwerk gelesen werden kann.
Es gilt:
Hinweis: Nach dem Aufruf findet man im Parameter buf eine durch Null abgeschlossene Liste von 16-Bit Worten mit den Nummern der defekten Sektoren. Die Funktion vergleicht also keine Sektoren mit einem Speicherbereich; stattdessen liest sie die Sektoren in den immer selben Puffer ein. Dabei wird nur überprüft, ob die Sektoren korrekt gelesen werden können, oder ob beim Lesen Lesefehler auftreten. | ||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis den Wert 0, wenn die im
Parameter buf abgelegte Liste gültig ist und anderenfalls
einen Wert ungleich Null.
| ||||||||||||||||||||||||
Verfügbar: | Alle TOS Versionen.
| ||||||||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||||||||||||||
Querverweis: | Binding
|
C: | #include <tos.h>
int16_t Flopver( void *buf, int32_t filler, int16_t devno, int16_ sectno, int16_t trackno, int16_t sideno, int16_t count ); |
Assembler: |
move.w count,-(sp) ; Offset 18 move.w sideno,-(sp) ; Offset 16 move.w trackno,-(sp) ; Offset 14 move.w sectno,-(sp) ; Offset 12 move.w devno,-(sp) ; Offset 10 move.l filler,-(sp) ; Offset 6 pea buf ; Offset 2 move.w #19,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $14(sp),sp ; Stack korrigieren |
GFA-Basic |
Fehler%=Xbios(19,L:buf%,L:filler%,W:devno%,W:sectno,W:trackno%,W:sideno%,W:count%)
|
Name: | »Floppy write« - schreibt einzelne Sektoren auf eine
Platteneinheit.
| ||||||||||||||||||
Xbiosnummer: | 9
| ||||||||||||||||||
Deklaration: | int16_t Flopwr( VOID *buf, int32_t filler, int16_t devno,
int16_t sectno, int16_t trackno, int16_t sideno, int16_t count );
| ||||||||||||||||||
Beschreibung: | Die XBIOS-Routine Flopwr schreibt einen oder mehrere
physikalische Sektoren auf eine Diskette. Es gilt:
| ||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine 0, wenn kein Fehler
passiert ist, ansonsten einen Fehlercode.
| ||||||||||||||||||
Verfügbar: | Alle TOS Versionen.
| ||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||||||||
Querverweis: | Binding DMAread DMAwrite Floprd
|
C: | #include <tos.h>
int16_t Flopwr( VOID *buf, int32_t filler, int16_t devno, int16_t sectno, int16_t trackno, int16_t sideno, int16_t count ); |
Assembler: |
move.w count,-(sp) ; Offset 18 move.w sideno,-(sp) ; Offset 16 move.w trackno,-(sp) ; Offset 14 move.w sectno,-(sp) ; Offset 12 move.w devno,-(sp) ; Offset 10 move.l filler,-(sp) ; Offset 6 pea buf ; Offset 2 move.w #9,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $14(sp),sp ; Stack korrigieren |
GFA-Basic |
Fehler%=Xbios(9,L:buf%,L:filler%,W:devno%,W:sectno%,W:trackno%,W:sideno,W:count%)
|
Name: | »Metaclose« - gibt ein MetaDOS-Gerät wieder frei.
|
Xbiosnummer: | 50
|
Deklaration: | int32_t Metaclose( int16_t drive );
|
Beschreibung: | Die Funktion gibt das Laufwerk drive wieder frei.
|
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
|
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
|
Gruppe: | Laufwerksfunktionen
|
Querverweis: | Binding Metaopen
|
C: | int32_t Metaclose( int16_t drive );
|
Assembler: |
move.w drive,-(sp) ; Offset 2 move.w #50,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Metadiscinfo« - ermittelt aktuelle Status-Informationen.
| ||||||
Xbiosnummer: | 63
| ||||||
Deklaration: | int32_t Metadiscinfo( int16_t drive, CD_DISC_INFO *p );
| ||||||
Beschreibung: | Die Funktion ermittelt Informationen über den Status eines
MetaDOS-Gerätes. Es gilt:
Hinweis: Die Positionsangaben innerhalb der Struktur sind im BCD-MSF-Format codiert. Die Komponente index wird von alten BOS-Treibern nicht gesetzt, und die Komponente disctype ist bei SCSI-CD-ROMs nicht gesetzt. | ||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
| ||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||
Gruppe: | Laufwerksfunktionen
| ||||||
Querverweis: | Binding Metastatus
|
C: | int32_t Metadiscinfo( int16_t drive, CD_DISC_INFO *p );
|
Assembler: |
pea p ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #63,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Metagettoc« - liefert das Inhaltsverzeichnis eines Gerätes.
| ||||||||
Xbiosnummer: | 62
| ||||||||
Deklaration: | int32_t Metagettoc( int16_t drive, int16_t flag, CD_TOC_ENTRY
*buffer );
| ||||||||
Beschreibung: | Die Funktion liefert das Inhaltsverzeichnis eines Laufwerks zurück. Es
gilt:
Hinweis: Der aufnehmende Puffer sollte Platz für 128 Einträge bieten. Jeder Eintrag besteht aus einer Tracknummer und MSF-Adresse (jeweils im BCD-Format). Für die Tracknummer gilt dabei: 0 = Record hat keine Bedeutung 0x01...0x99 = Tracknummer in BCD-Codierung 0xa0 = erster Track bei programmierter Reihenfolge 0xa2 = Ende der CD. | ||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
| ||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||
Querverweis: | Binding Metaread Metawrite
|
C: | int32_t Metagettoc( int16_t drive, int16_t flag, CD_TOC_ENTRY
*buffer );
|
Assembler: |
pea buffer ; Offset 6 move.w flag,-(sp) ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #62,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »Metainit« - Informationen über die installierte Version von
MetaDOS ermitteln.
|
Xbiosnummer: | 48
|
Deklaration: | void Metainit( META_INFO_1 *buffer );
|
Beschreibung: | Die XBIOS-Routine Metainit ermittelt Informationen über die
aktuell installierte Version von MetaDOS, und der ihr bekannten
Geräte.
Es bietet sich folgendes Verfahren an:
|
Ergebnis: | Die Funktion liefert kein direktes Ergebnis.
|
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
|
Gruppe: | Laufwerksfunktionen
|
Querverweis: | Binding
|
C: | void Metainit( META_INFO_1 *buffer );
|
Assembler: |
pea buffer ; Offset 2 move.w #48,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Metaioctl« - schickt GEMDOS-Opcodes an ein MetaDOS Gerät.
| ||||||||||
Xbiosnummer: | 55
| ||||||||||
Deklaration: | int32_t Metaioctl( int16_t drive, int32_t magic, int16_t
opcode, void *buffer );
| ||||||||||
Beschreibung: | Die Funktion erlaubt es, Opcodes der GEMDOS-Routinen Dcntl
bzw. Fcntl an ein MetaDOS Gerät abzusetzen. Es gilt:
Hinweis: Die Liste der CD-ROM Kommandos ist eine Aufstellung aller bekannten Opcodes, die bei der Arbeit mit CD-ROMs anfallen können. | ||||||||||
Ergebnis: | Die Funktion liefert im Fehlerfall einen der folgenden Werte
zurück:
| ||||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||
Querverweis: | Binding Dcntl Fcntl
|
C: | int32_t Metaioctl( int16_t drive, int32_t magic, int16_t
opcode, void *buffer );
|
Assembler: |
pea buffer ; Offset 10 move.w opcode,-(sp) ; Offset 8 move.l magic,-(sp) ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #55,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $E(sp),sp ; Stack korrigieren |
Name: | »Metaopen« - initialisiert ein MetaDOS-Gerät.
| ||||||||
Xbiosnummer: | 49
| ||||||||
Deklaration: | int32_t Metaopen( int16_t drive, META_DRVINFO *buffer );
| ||||||||
Beschreibung: | Die Funktion initialisiert ein MetaDOS-Gerät. Es gilt:
Hinweis: Falls der Treibername mit 'CD' beginnt, darf man davon ausgehen, daß es sich um einen CD-ROM-Treiber handelt. | ||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert 0 wenn alles OK
oder eine negative Fehlernummer.
| ||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||
Querverweis: | Binding Metaclose
|
C: | int32_t Metaopen( int16_t drive, META_DRVINFO *buffer );
|
Assembler: |
pea buffer ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #49,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Metaread« - liest Daten von einem MetaDOS-Gerät.
| ||||||||||||
Xbiosnummer: | 51
| ||||||||||||
Deklaration: | int32_t Metaread( int16_t drive, void *buffer, int32_t blockno,
int16_t count );
| ||||||||||||
Beschreibung: | Die Funktion liest Daten von einem MetaDOS-Gerät. Es gilt:
Hinweis: Die Blockgröße beträgt bei CD-ROMs 2048 Bytes; dies kann jedoch leider nicht gezielt abgefragt werden. Aufgrund einer Begrenzung in Atari's BOS-Treibern können maximal 63 Blöcke an einem Stück gelesen werden. | ||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
| ||||||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||
Querverweis: | Binding Metawrite
|
C: | int32_t Metaread( int16_t drive, void *buffer, int32_t blockno,
int16_t count );
|
Assembler: |
move.w count,-(sp) ; Offset 10 move.l blockno,-(sp) ; Offset 8 pea buffer ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #51,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $E(sp),sp ; Stack korrigieren |
Name: | »Metaseek« - Seeks to a physical address.
| ||||||||
Xbiosnummer: | 53
| ||||||||
Binding: | int32_t Metaseek( int16_t drive, int32_t blockno );
| ||||||||
Beschreibung: | The function will seek the physical unit to a physical address.
The function call will return once the seek has been completed or on
an error condition. The following apply:
| ||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
| ||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||
Querverweis: | Binding Metaread Metawrite
|
C: | int32_t Metaseek( int16_t drive, int32_t blockno );
|
Assembler: |
move.l blockno,-(sp) ; Offset 4 move.w drive ; Offset 2 move.w #53,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Metasetsongtime« - startet eine Audio-Wiedergabe.
| ||||||||||||||||||
Xbiosnummer: | 61
| ||||||||||||||||||
Binding: | Bindings für Metasetsongtime
| ||||||||||||||||||
Beschreibung: | Die Funktion startet eine Audio-Wiedergabe. Es gilt:
Hinweis: Der Repeat-Modus wird anscheinend nur von CDARGEN.BOS und auch nur für das Atari-CDAR504 unterstützt. | ||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
| ||||||||||||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||||||||
Querverweis: | Binding Metastartaudio Metastopaudio
|
C: | int32_t Metasetsongtime( int16_t drive, int16_t repeat, int32_t
starttime, int32_t endtime );
|
Assembler: |
move.l endtime,-(sp) ; Offset 10 move.l starttime,-(sp) ; Offset 6 move.w repeat ; Offset 4 move.w drive ; Offset 2 move.w #61,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $E(sp),sp ; Stack korrigieren |
Name: | »Metastartaudio« - startet eine Audio-Wiedergabe.
| ||||||||||
Xbiosnummer: | 59
| ||||||||||
Binding: | int32_t Metastartaudio( int16_t drive, int16_t flag, uint8_t
*bytearray);
| ||||||||||
Beschreibung: | Die Funktion startet eine Audio-Wiedergabe. Es gilt:
Hinweis: Auf SCSI-Geräten existiert nur ein Modus (flag = 0). In diesem Fall übergibt man in bytearray[0] die Anzahl der Lieder, und in bytearray[1] die Nummer des ersten Liedes. | ||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
| ||||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||
Querverweis: | Binding Metasetsongtime Metastopaudio
|
C: | int32_t Metastartaudio( int16_t drive, int16_t flag, uint8_t
*bytearray);
|
Assembler: |
pea bytearray ; Offset 6 move.w flag,-(sp) ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #59,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »Metastatus« - ermittelt den Status eines MetaDOS Gerätes.
| ||||||||||||||||||
Xbiosnummer: | 54
| ||||||||||||||||||
Deklaration: | int32_t Metastatus( int16_t drive, void *buffer );
| ||||||||||||||||||
Beschreibung: | Die Funktion ermittelt den Status eines MetaDOS Gerätes. Es
gilt:
Achtung: Diese Funktion ist optional. Sie steht nur bei installiertem MetaDOS zur Verfügung. | ||||||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen 32-Bit Wert zurück,
der wie folgt codiert ist:
Alle anderen Bits des Low-Words sind z.Zt. reserviert. | ||||||||||||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||||||||
Querverweis: | Binding Metadiscinfo
|
C: | int32_t Metastatus( int16_t drive, void *buffer );
|
Assembler: |
pea buffer ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #54,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Metastopaudio« - beendet eine Audio-Wiedergabe.
|
Xbiosnummer: | 60
|
Deklaration: | int32_t Metastopaudio( int16_t drive );
|
Beschreibung: | Die Funktion beendet die Audio-Wiedergabe für das Laufwerk
drive.
|
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
|
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
|
Gruppe: | Laufwerksfunktionen
|
Querverweis: | Binding Metastartaudio Metasetsongtime
|
C: | int32_t Metastopaudio( int16_t drive );
|
Assembler: |
move.w drive,-(sp) ; Offset 2 move.w #60,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Metawrite« - schreibt Daten auf ein MetaDOS-Gerät.
| ||||||||||||
Xbiosnummer: | 52
| ||||||||||||
Deklaration: | int32_t Metawrite( int16_t drive, void *buffer, int32_t
blockno, int16_t count );
| ||||||||||||
Beschreibung: | Die Funktion schreibt Daten auf ein MetaDOS-Gerät. Es gilt:
Hinweis: Bei einem CD-ROM hat diese Funktion natürlich keine Wirkung. | ||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis einen Wert vom Typ int32_t
zurück.
| ||||||||||||
Verfügbar: | Diese Funktion steht nur bei installiertem MetaDOS zur
Verfügung.
| ||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||
Querverweis: | Binding Metaread
|
C: | int32_t Metawrite( int16_t drive, void *buffer, int32_t
blockno, int16_t count );
|
Assembler: |
move.w count,-(sp) ; Offset 10 move.l blockno,-(sp) ; Offset 8 pea buffer ; Offset 4 move.w drive,-(sp) ; Offset 2 move.w #52,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $E(sp),sp ; Stack korrigieren |
Name: | »prototype boot sector« - Standard-Boot-Sektor.
| ||||||||||||||||||||||||||||
Xbiosnummer: | 18
| ||||||||||||||||||||||||||||
Deklaration: | void Protobt( void *buf, int32_t serialno, int16_t disktype,
int16_t execflag );
| ||||||||||||||||||||||||||||
Beschreibung: | Die XBIOS-Routine Protobt legt einen Boot-Sektor auf einer
Diskette an. Das Argument buf verweist auf einen 512 Byte
großen Puffer mit dem Inhalt des Boot-Sektors. Der Parameter
serialno dient dazu, eine Seriennummer im Bootsektor
abzuspeichern. Wenn die Variable serialno größer als
0x01000000 ist, dann wird eine Zufallszahl abgelegt. Mit
disktype wird eine der folgenden Diskettenarten ausgewählt:
Der Parameter execflag legt schließlich fest, ob die Informationen im Boot-Sektor als Programm ausgeführt werden können. Es gilt:
Hinweis: Damit Disketten auch auf MSDOS-Systemen gelesen werden können, müssen in die ersten 3 Bytes des Bootsektors die Werte 0xE9, 0x00 und 0x4E oder 0xEB, 0x34 und 0x90 eingetragen werden; auf diese Art und Weise behandelte Disketten sind unter TOS dann allerdings nicht mehr bootbar. | ||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||||||||||||||
Verfügbar: | Alle TOS Versionen.
| ||||||||||||||||||||||||||||
Gruppe: | Laufwerksfunktionen
| ||||||||||||||||||||||||||||
Querverweis: | Binding Flopfmt
|
C: | #include <tos.h>
void Protobt( void *buf, int32_t serialno, int16_t disktype, int16_t execflag ); |
Assembler: |
move.w execflag,-(sp) ; Offset 12 move.w disktype,-(sp) ; Offset 10 move.l serialno,-(sp) ; Offset 6 pea buf ; Offset 2 move.w #18,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $E(sp),sp ; Stack korrigieren |
GFA-Basic | Fehler%=Xbios(18,L:buf%,L:serialno%,W:disktype%,W:execflag%)
|