Xbios Dokumentation MilanBlaster.
Treiber Version 2.1
Berlin 11.5.2000
Rainer Mannigel.

Folgende XBIOS/BIOS Funktionen stehen mit dem MilanBlaster Bios
zur Verfgung.
Sound:
Locksound()    Xbiosnummer 128.
Unlocksound()  Xbiosnummer 129.
Soundcmd()     Xbiosnummer 130.
Setbuffer()    Xbiosnummer 131.
Setmode()      Xbiosnummer 132.
Settracks()    Xbiosnummer 133.
Setmontracks() Xbiosnummer 134.
Setinterrupt() Xbiosnummer 135.
Buffoper()     Xbiosnummer 136.
Dsptristate()  Xbiosnummer 137.
Gpio()         Xbiosnummer 138.
Devconnect()   Xbiosnummer 139.
Sndstatus()    Xbiosnummer 140.
Buffptr()      Xbiosnummer 141.
WavePlay()     Xbiosnummer 165.

Midi:
Midiws()       Xbiosnummer 12.
Bconstat(3)    Biosnummer 1.
Bconin(3)      Biosnummer 2.
Bconout(3, x)  Biosnummer 3.
Bcostat(4)     Biosnummer 8.

Zum konfigurieren der PnP-Karten, bitte das ISA-PnP-Tool benutzen
und die readme's vor gebrauch lesen. Fr die verschiedenen Soundkarten
sind voreingestellte ISAPNP.CNF Dateien beigelegt.
Mit dem beim Milan beiliegendem Programm MSetup lassen sich auch die
vom ISA-Bus benutzten IRQs auf dem PCI-Bus ausmaskieren!

Bei Unklarheiten einfach das PNPDUMP.TOS Programm starten und auf
Laufwerk c: die ISAPNP.DMP Datei anschauen.

-
Der '_SND' Cookie: (gilt fr alle ATARI und ATARI-kompatible Rechner)
Der '_SND' Cookie steht im Milan default auf 0x00000000l.
Mit dem MilanBlaster Xbios hat der Cookie zustzlich ein gesetztes
Bit Nr. 2 und Nr. 5. (0x00000024l)
Ein Programm kann daran erkennen, das ein 16Bit Codec vorhanden ist
(ist eigentlich unwichtig, viel wichtiger ist:) und die Soundhardware
(nur) ber die von ATARI Dokumentierten XBIOS Soundroutinen benutzt
werden kann!
Das gesetzte Bit Nr. 5 sagt aus das es erweiterte XBiosroutinen gibt
und der return Wert der Funktionen auch einen Fehler signalisieren
wird.
Da im '_SND' Cookie Bit Nr. 1 nicht gesetzt ist, sollten jegliche
Versuche die (Falcon/TT/STE) Soundhardware zu Fu zu Programmieren
unterbleiben!
(Ein gesetztes Bit Nr. 1 sagt aus das eine STE/TT kompatible 8 Bit
 Hardware vorhanden ist und die (bekannten) Hardwareregister auch
 vorhanden sein mssen!)

Am '_SND' Cookie der MilanBlaster Erweiterung ist ausserdem noch zu
erkennen das:
a). Kein DSP vorhanden ist (Bit Nr. 3* ist gelscht).
b). Keine Soundmatrix vorhanden ist (Bit Nr. 4* ist gelscht).

*): in der ATARI-Compendium Beschreibung sind die Bits 3 und 4
    vertauscht! Die Org. ATARI Unterlagen sollten aber wissen
    welche Bits fr was stehen.

-
Der DMA-Speicher: (gilt fr alle ATARI und ATARI-kompatible Rechner)
Speicher zum abspielen von Samples ist generell nur im DMA-Speicher
mglich!
DMA-Speicher (wird flschlicherweise auch als ST-Ram bezeichnet.)
kann ber die Gemdos Funktion Mxalloc(size, mode) angefordert werden,
wobei mode auf 0 + (wenn ntig) den MiNT Speicherschutz Flags stehen
mu.
Mit TOS Versionen ohne Mxalloc() Funktion ist der mit Malloc()
angeforderte Speicher generell DMA-Ram.
Die Lage des Speicherbereichs im Adressraum der verwendeten CPU ist
dabei unerheblich! Ein mit Mxalloc(size, 0) angeforderter Speicher
ist DMA-fhig.
zZ. nur im Milan:
Durch die verwendeten PC-Standardbauteile im Milan ist es nicht
mglich DMA-Ram im Bereich zwischen 540kB und 1MB zu benutzen.
 Ich stelle bei mir dafr bei allen AUTO-Ordner Programmen und
 Accessories die Speicheranforderung in den Programmflags auf
 ST-Ram (DMA-Ram), sodas der spter angeforderte Speicher schon gefllt
 und oberhalb von 1MB liegt.

Sollte noch eine Milan-Bootblock Version <= 0.98 benutzt werden, mu
das mitgelieferte Programm SET_MEM.PRG* gestartet werden! (Am besten
im AUTO-Ordner als erstes.)
In den lteren Bootblockroutinen wird der Ramspeicher fr DMA
Zugriffe oberhalb 1MB nicht freigeschaltet.
Mit dem zum Milan beiliegendem Programm MSetup kann diese Einstellung
im Dialog Einstellung->Speicher... gemacht werden.

*): SET_MEM.PRG liegt den neueren MilanBlaster Versionen nicht mehr
    bei!

-
Das Sample Format:
Im Falcon030 und den STE/TT Modellen ist das Sampleformat immer
signed (mit Vorzeichen) im Bereich -128 bis 127 8Bit und -32768 bis
32767 16Bit. Mit der MilanBlaster Hardware kann dies aber abweichen.
Die mglichen Formate knnen mit der XBiosroutine sndstatus(8/9/10/11)
erfragt, mit der XBiosroutine soundcmd(8/9/10/11, x) evtl. gendert
und mit der XBiosroutine soundcmd(8/9/10/11, -1) berprft werden.
Bei allen Karten war das 16 Bit Format bisher signed Intel.
Das 8 Bit Format war je nach Karte signed oder unsigned.

-
Programmierung:
Alle MilanBlaster Xbiosfunktionen sind reentrant und knnen auch
innerhalb eines Interrupts aufgerufen werden!
('_SND' Cookie Bit Nr. 1 nicht gesetzt, Bit Nr. 2 gesetzt)

MFP und Timer A Interrupt werden beim Start: buffoper( > 0)
und 16 Sample vor Ende aufgerufen (nicht ganz Falcon kompatible).
Die Interruptroutinen sollten so kurz wie mglich sein, da nach
16 Samples ein neuer Interrupt auftritt der aber nicht aufgerufen
werden kann sofern der alte noch bearbeitet wird.

Bei alle Xbiosfunktionen wird im Fehlerfall ein negativer Wert
zurckgeliefert.
Infos ber Soundeigenschaften lassen sich grtenteils ber die
Returnwerte (Falscher Vehler) herrauslesen.
Wenn settracks(1, 0) -1 liefert werden wohl 2 Tracks nicht gehen!


>-----------------------------------------------------------------<
Name           locksnd - Soundsystem fr andere Anwendungen sperren

Xbiosnummer    128

Deklaration    LONG locksnd ( VOID );

Beschreibung   Die XBIOS-Routine locksnd sperrt das Soundsystem
               fr andere Anwendungen.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert
               1 zurck. Ist das Soundsystem bereits vergeben,
               so wird ein negativer Wert zurckgeliefert.

>-----------------------------------------------------------------<
Name           unlocksnd - Soundsystem fr andere Anwendungen
               freigeben

Xbiosnummer    129

Deklaration    LONG unlocksnd ( VOID );

Beschreibung   Die XBIOS-Routine unlocksnd gibt das Soundsystem
               fr andere Anwendungen frei, nachdem es zuvor ge-
               sperrt wurde.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert
               0 zurck. War das Soundsystem bereits verfgbar,
               so wird ein negativer Wert zurckgeliefert.

>-----------------------------------------------------------------<
Name           soundcmd - Parameter des A/D und D/A-Wandlers setzen
               bzw. ermitteln

Xbiosnummer    130

Deklaration    LONG soundcmd ( WORD mode, WORD data );
               LONG NSoundcmd ( WORD mode, WORD data, LONG data2);

Beschreibung   Die XBIOS-Routine soundcmd setzt bzw. ermittelt
               die Parameter des A/D- und D/A-Wandlers. Der Pa-
               rameter mode bestimmt das Kommando und data die
               vorzunehmende Einstellung.

               mode    Bedeutung

                0      Abschwchung des linken (DAC) Ausgabekanals um
                       1,5 Db Einheiten:
                       data = Einheiten << 4; (oder 0 - 255)

                1      Abschwchung des rechten (DAC) Ausgabekanals um
                       1,5 Db Einheiten:
                       data = Einheiten << 4; (oder 0 - 255)

                2      Verstrkung des linken (ADC) Eingabekanals um
                       1,5 Db Einheiten:
                       data = Einheiten << 4; (oder 0 - 255)

                3      Verstrkung des rechten (ADC) Eingabekanals um
                       1,5 Db Einheiten:
                       data = Einheiten << 4; (oder 0 - 255)

                4      Eingabequellen des 16-Bit-Hardware-
                       addierers. Bit 0 von data reprsentiert
                       den A/D-Wandler und Bit 1 den Multiplexer.

                       Ist Bit 5 im '_SND' Cookie gesetzt stehen
                       noch weitere (Master) Eingnge zur Verfgung.
                       Die Eingnge werden eingeschaltet sowie das
                       entsprechende Bit auf 1 gesetzt und Bit 14
                       in data gesetzt ist.
                       Bit 2 von data reprsentiert den Mikrofon Eingang.
                       Bit 3 von data reprsentiert den FM-Generator.
                             (FrequenzModulator, OPLx/Wavetable)
                       Bit 4 von data reprsentiert den Line Eingang.
                       Bit 5 von data reprsentiert den CD Eingang.
                       Bit 6 von data reprsentiert den TV Eingang.
                       Bit 7 von data reprsentiert den Aux1 Eingang.

                5      Eingabequellen des A/D-Wandlers. Bit 0
                       steht fr den rechten und Bit 1 fr den
                       linken Kanal. Ist ein Bit gesetzt,
                       werden die Daten dem Soundchip entnommen,
                       sonst dem Mikrofon.

                       Ist Bit 5 im '_SND' Cookie gesetzt stehen evtl.
                       noch weitere (A/D-Wandler) Eingnge zur
                       Verfgung. Die Eingnge werden eingeschaltet
                       sowie das entsprechende Bit auf 0 gesetzt und Bit
                       14 von data auf 1 gesetzt ist.
                       Bit  2 ist der rechte FM-Generator.
                       Bit  3 ist der linke FM-Generator.
                       Bit  4 ist der rechte Line Eingang.
                       Bit  5 ist der linke Line Eingang.
                       Bit  6 ist der rechte CD Eingang.
                       Bit  7 ist der linke CD Eingang.
                       Bit  8 ist der rechte TV Eingang.
                       Bit  9 ist der linke TV Eingang.
                       Bit 10 ist der rechte Aux1 Eingang.
                       Bit 11 ist der linke Aux1 Eingang.
                       Bit 12 ist der rechte Mixer Ausgang.
                       Bit 13 ist der linke Mixer Ausgang.
                       Ist Bit 14 von data auf 1 gesetzt, werden
                       weitere Eingnge des A/D-Wandlers in data2
                       erwartet.
                       Bit 14 ist der rechte D/A-Wandler Ausgang.
                       Bit 15 ist der linke D/A-Wandler Ausgang.

                6      Kompatibilitt zum STE-Soundsystem. data
                       wird als Vorteiler genommen, falls der
                       mittels devconnect eingestellte Vorteiler
                       gleich Null ist:

                       0      Vorteiler ist 1280
                       1      Vorteiler ist 640
                       2      Vorteiler ist 320
                       3      Vorteiler ist 160

               Zustzliche mode Kommandos wenn Bit 5 im '_SND'
               Cookie gesetzt ist.

                7      Direkteingabe der Samplefrequenz.
                       data wird als unsigned short interpretiert
                       und kann dann einen Wertebereich von 0 bis
                       65534 Hz. einnehmen.

                8      Setzen des 8Bit Sampleformat.
                9      Setzen des 16Bit Sampleformat.
               10      Setzen des 24Bit Sampleformat.
               11      Setzen des 32Bit Sampleformat.

                       Folgende Bits stehen zZ. zur Verfgung:
                       Bit 0 = signed.
                       Bit 1 = unsigned.
                       Bit 2 = Motorola bigendian wenn > 8Bit.
                       Bit 3 = Intel littleendian wenn > 8Bit.

               12      Verstrkung des linken Master Ausgabekanals.
                       data = 0 - 255;

               13      Verstrkung des rechten Master Ausgabekanals.
                       data = 0 - 255;

               14      Verstrkung des linken Mic Eingabekanals.
                       data = 0 - 255;

               15      Verstrkung des rechten Mic Eingabekanals.
                       data = 0 - 255;

               16      Verstrkung des linken FM-Generator Eingabekanals.
                       data = 0 - 255;

               17      Verstrkung des rechten FM-Generator Eingabekanals.
                       data = 0 - 255;

               18      Verstrkung des linken Line Eingabekanals.
                       data = 0 - 255;

               19      Verstrkung des rechten Line Eingabekanals.
                       data = 0 - 255;

               20      Verstrkung des linken CD Eingabekanals.
                       data = 0 - 255;

               21      Verstrkung des rechten CD Eingabekanals.
                       data = 0 - 255;

               22      Verstrkung des linken TV Eingabekanals.
                       data = 0 - 255;

               23      Verstrkung des rechten TV Eingabekanals.
                       data = 0 - 255;

               24      Verstrkung des linken Aux1 Eingabekanals.
                       data = 0 - 255;

               25      Verstrkung des rechten Aux1 Eingabekanals.
                       data = 0 - 255;

               Wird fr den Parameter data der Wert -1 ber-
               geben, so bleibt die Einstellung unverndert.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar. Es sind immer die Werte
               eingestellt, die zurckgeliefert werden.

Ergebnis       Die Funktion liefert die aktuelle Einstellung zurck.

>-----------------------------------------------------------------<
Name           setbuffer - Setzen des Aufnahme und Wiedergabepuffers

Xbiosnummer    131

Deklaration    LONG setbuffer ( WORD reg, VOID *begaddr,
                                VOID *endaddr );

Beschreibung   Die XBIOS-Routine setbuffer setzt den Puffer fr
               die Wiedergabe- (reg = 0) bzw. Aufnahmedaten
               (reg = 1). Der Parameter begaddr zeigt auf
               den Anfang des Puffers und endaddr auf das
               letzte Byte + 1 des Puffers.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar. Der Speicher mu mit der
               Gemdos Funktion Mxalloc(size, 0) angefordert werden.

Ergebnis       Die Funktion liefert im positiven Fall den Wert
               0 zurck.

>-----------------------------------------------------------------<
Name           setmode - Modus fr Aufnahme bzw. Wiedergabe whlen

Xbiosnummer    132

Deklaration    LONG setmode ( WORD mode );

Beschreibung   Die XBIOS-Routine setmode gibt die Art des Aufnahme-
               und Wiedergabemodus an:

               mode    Bedeutung

                0        8 Bit Stereo
                1       16 Bit Stereo
                2        8 Bit Mono

               Ist Bit 5 im '_SND' Cookie gesetzt stehen evtl.
               noch weitere modi zur Verfgung, die getrennt
               in low und high byte von mode den Wiedergabe
               und Aufnahme modus einstellen. Wird fr mode
               der Wert -1 bergeben, wird die aktuelle
               Einstellung ohne nderung zurckgegeben.

                0x0003   16 Bit Mono Wiedergabe
                0x0004   24 Bit Stereo Wiedergabe
                0x0005   32 Bit Stereo Wiedergabe
                0x0006   24 Bit Mono Wiedergabe
                0x0007   32 Bit Mono Wiedergabe

                0x0000   16 Bit Stereo Aufnahme
                0x0100    8 Bit Stereo Aufnahme
                0x0200    8 Bit Mono Aufnahme
                0x0300   16 Bit Mono Aufnahme
                0x0400   24 Bit Stereo Aufnahme
                0x0500   32 Bit Stereo Aufnahme
                0x0600   24 Bit Mono Aufnahme
                0x0700   32 Bit Mono Aufnahme

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert 0
               zurck.

>-----------------------------------------------------------------<
Name           settracks - Anzahl der Spuren festlegen

Xbiosnummer    133

Deklaration    LONG settracks ( WORD playtracks, WORD rectracks );

Beschreibung   Die XBIOS-Routine settracks setzt die Anzahl der
               Aufnahme- (rectracks) und Wiedergabespuren (play-
               tracks). Es stehen maximal je 4 Spuren zur Verf-
               gung. Als Argument wird die Anzahl - 1 bergeben!

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert 0
               zurck.

>-----------------------------------------------------------------<
Name           setmontracks - Wiedergabespur fr internen Lautsprecher
               festlegen

Xbiosnummer    134

Deklaration    LONG setmontracks ( WORD montrack );

Beschreibung   Die XBIOS-Routine setmontracks legt fest, da die
               Ausgabe einer bestimmten Spur ber den internen
               Lautsprecher erfolgen soll. Dieser kann jeweils
               nur eine Spur wiedergeben.

               montrack bestimmt eine der vier mglichen Spuren.
               Diese sind von 0 bis 3 durchnumeriert.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert 0
               zurck.

>-----------------------------------------------------------------<
Name           setinterrupt - Interrupt am Ende einer Aufnahme bzw.
               einer Wiedergabe festlegen

Xbiosnummer    135

Deklaration    LONG setinterrupt ( WORD src_inter, WORD cause );

Beschreibung   Die XBIOS-Routine setinterrupt bestimmt, welcher
               Interrupt nach dem Aufnehmen bzw. Abspielen aus-
               gelst werden soll.

               src_inter     Bedeutung

               0             Timer-A-Interrupt
               1             MFP-Interrupt 7


               cause     Bedeutung

               0         Kein Interrupt
               1         Interrupt nach dem Abspielen
               2         Interrupt nach dem Aufnehmen
               3         Interrupt nach Aufnehmen und Ab-
                         spielen

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert 0
               zurck.

>-----------------------------------------------------------------<
Name           buffoper - Setzen des Aufnahme bzw. Wiedergabemodus

Xbiosnummer    136

Deklaration    LONG buffoper ( WORD mode );

Beschreibung   Die XBIOS-Routine buffoper legt den Aufnahme- und
               Wiedergabemodus fest.

               Wird fr mode der Wert -1 bergeben, wird die
               aktuelle Einstellung ermittelt. Sonst wird
               mode wie folgt kodiert:

               Bit     Operation

                0      Wiedergabe
                1      Wiedergabewiederholung
                2      Aufnahme
                3      Aufnahmewiederholung

               Gesetzte Bits schalten eine Operation ein, ge-
               lschte Bits aus.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Im Erfolgsfall liefert die Funktion den Wert 0.
               Wurde fr mode -1 bergeben, erhlt man die
               aktuelle Einstellung, deren Kodierung der des
               Parameters mode entspricht.

>-----------------------------------------------------------------<
Name           dsptristate - Externe DSP Hardware koordinieren

Xbiosnummer    137

Deklaration    LONG dsptristate ( WORD dspxmit, WORD dsprec );

Beschreibung   Die XBIOS-Routine dsptristate koppelt Leitungen vom
               Multiplexer ab, wenn externe Hardware am SSI-Port des
               DSP angeschlossen wird.

               Parameter    Bedeutung

               dspxmit      Der Wert 0 koppelt den Multiplexer
                            von der entsprechenden Leitung ab,
                            1 erlaubt die Verbindung

               dsprec       Der Wert 0 koppelt den Multiplexer
                            von der entsprechenden Leitung ab,
                            1 erlaubt die Verbindung

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert 0
               zurck.

>-----------------------------------------------------------------<
Name           gpio - Kommunikation ber externe DSP-Buchse

Xbiosnummer    138

Deklaration    LONG gpio ( WORD mode, WORD data );

Beschreibung   Die XBIOS-Routine gpio dient der Kommunikation ber
               die externen DSP-Buchse.

               mode     Bedeutung

                0       Setzen der Ein-/Ausgaberichtung
                        Die unteren drei Bits von data reprsen-
                        tieren die Mehrzweckleitungen. Ein ge-
                        setztes Bit steht fr eine Ausgabe- und
                        ein gelschtes fr eine Eingabeleitung.

                1       Lesen der Mehrzweckleitungen
                        Den Status der Leitungen erhlt man als
                        Funktionsresultat.

                2       Schreiben auf den Mehrzweckleitungen
                        Der Parameter data enthlt den neuen
                        Status der Mehrzweckleitungen.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Im Erfolgsfall liefert die Funktion den Wert 0.
               Hatte der Parameter mode den Wert 1, so erhlt
               man den Status der Mehrzweckleitungen.

>-----------------------------------------------------------------<
Name           devconnect - Verbinden der Audiosubsystem-Komponenten

Xbiosnummer    139

Deklaration    LONG devconnect ( WORD src, WORD dst,
                                 WORD srcclk, WORD prescale,
                                 WORD protocol );

Beschreibung   Die XBIOS-Routine devconnect verbindet Komponenten
               des Audio-Subsystems.

               Parameter    Bedeutung

               src          Quellkomponente:
                            0   DMA-Ausgabe
                            1   DSP-Ausgabe
                            2   Externer Eingabekanal
                            3   A/D-Wandler - Mikrophon

               dst          Bitvektor der Zielkomponenten:
                            Bit 0   DMA-Eingabe
                            Bit 1   DSP-Eingabe
                            Bit 2   Externer Ausgabekanal
                            Bit 3   D/A-Wandler - Lautsprecher

               srcclk       Takt fr die Quellkomponente:
                            0   Interner 25,175 MHz Takt
                            1   Externer Takt
                                Fr MilanBlaster ist Externer Takt
                                24,576 MHz wenn gpio(1, 0) & 0x1l == 1l und
                                22,5792 MHz wenn gpio(1, 0) & 0x1l == 0l
                                ist!
                            2   Interner 32 MHz Takt

               prescale     Taktvorteiler. Die Sample-Rate ergibt
                            sich aus dem Takt geteilt durch 256
                            und geteilt durch Vorteiler + 1. Die
                            Werte fr den Vorteiler rangieren
                            von 0 bis 11.
                            Wird fr den Vorteiler 0 bergeben,
                            wird in den STE-Kompatibilittsmodus
                            geschaltet.

               protocol     Wird 0 bergeben, findet eine ber-
                            tragung mit Handshaking statt, bei
                            1 erfolgt kein Handshaking.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Die Funktion liefert im positiven Fall den Wert 0
               zurck.

>-----------------------------------------------------------------<
Name           sndstatus - Status des A/D und D/A Wandlers ermitteln

Xbiosnummer    140

Deklaration    LONG sndstatus ( WORD reset );

Beschreibung   Die XBIOS-Routine sndstatus ermittelt den aktuellen
               Status des A/D- und D/A-Wandlers. Sie kann diesen
               ebenfalls neu initialisieren.

               Hat reset den Wert 1 wird der A/D- und D/A-Wandler neu
               initialisiert (unteranderem werden die berlaufbits
               gelscht). Andernfalls wird der aktuelle Status er-
               mittelt.

               Ist Bit 5 im '_SND' Cookie gesetzt stehen noch weitere
               Statusabfragen zur Verfgung.
               reset  Funktion
                       return

                2     Bittiefen abfragen.
                       Bit  0 gesetzt: 8Bit
                       Bit  1 gesetzt: 16Bit
                       Bit  2 gesetzt: 24Bit
                       Bit  3 gesetzt: 32Bit

                3     Fr MasterMix-Ausgang vorhandene Eingnge erfragen.
                       Bit  0 gesetzt: A/D-Wandler (ADC-InMix bypass)
                       Bit  1 gesetzt: D/A-Wandler (DAC/Multiplexer)
                       Bit  2 gesetzt: Mic
                       Bit  3 gesetzt: FM-Generator
                       Bit  4 gesetzt: Line
                       Bit  5 gesetzt: CD
                       Bit  6 gesetzt: TV
                       Bit  7 gesetzt: Aux1

                4     Fr A/D-Wandler vorhandene Eingnge erfragen.
                       Bit  0 gesetzt: Mic rechts
                       Bit  1 gesetzt: Mic links
                       Bit  2 gesetzt: FM-Generator rechts
                       Bit  3 gesetzt: FM-Generator links
                       Bit  4 gesetzt: Line rechts
                       Bit  5 gesetzt: Line links
                       Bit  6 gesetzt: CD rechts
                       Bit  7 gesetzt: CD links
                       Bit  8 gesetzt: TV rechts
                       Bit  9 gesetzt: TV links
                       Bit 10 gesetzt: Aux1 rechts
                       Bit 11 gesetzt: Aux1 links
                       Bit 12 gesetzt: Mixer rechts (MasterMix)
                       Bit 13 gesetzt: Mixer links (MasterMix)

                       Bit 16 gesetzt: D/A-Wandler rechts
                       Bit 17 gesetzt: D/A-Wandler links

                5     Duplexbetrieb erfragen.
                       Bit  0 gesetzt: Aufnahme/Wiedergabe gleichzeitig mglich

                8     8 Bit Sampleformate erfragen.
                9     16 Bit Sampleformate erfragen.
               10     24 Bit Sampleformate erfragen.
               11     32 Bit Sampleformate erfragen.
                       Bit  0 gesetzt: signed.
                       Bit  1 gesetzt: unsigned.
                       Bit  2 gesetzt: Motorola bigendian wenn > 8Bit.
                       Bit  3 gesetzt: Intel littleendian wenn > 8Bit.

               0x8900 Wert der Falcon 030 Registers 0xff8900 und 0xff8901
                      abfragen.
                       %0000 xxxx 00xx 00xx
                             ||||   ||   ||
                             ||||   ||   ||>Playback enable
                             ||||   ||   |>Playback repeat
                             ||||   ||>Record enable
                             ||||   |>Record repeat
                             ||||>MFP-15 Int at Playback end
                             |||>MFP-15 Int at Record end
                             ||>Timer A Int at Playback end
                             |>Timer A Int at Record end

               0x8902 Wert der Falcon 030 Registers 0xff8902, 0xff8904 und 0xff8906
                      abfragen.
                       ret = Frame Base Address.

               0x890e Wert der Falcon 030 Registers 0xff890e, 0xff8910 und 0xff8912
                      abfragen.
                       ret = Frame End Address.

               0x8920 Wert der Falcon 030 Registers 0xff8920 und 0xff8921
                      abfragen.
                       %00xx 00xx xx00 00xx
                          ||   || ||     ||
                          ||   || ||     ||>00 = 6258 Hz
                          ||   || ||     ||>01 = 12517 Hz
                          ||   || ||     ||>10 = 25033 Hz
                          ||   || ||     ||>11 = 50066 Hz
                          ||   || ||>00 = 8-bit Stereo
                          ||   || ||>01 = 16-bit Stereo
                          ||   || ||>10 = 8-bit Mono
                          ||   || ||>11 = 16-bit Mono
                          ||   ||>Play Tracks
                          ||>Monitor Track

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Liegt kein Fehler vor erhlt man als Ergebnis den Wert
               Null. Ansonsten stellt das Resultat einen Bitvektor dar,
               der sich wie folgt entschlsselt:

               Bits      Bedeutung

                0-3      1  Ungltiges Kontrollfeld
                         2  Ungltiges Syncformat
                         3  Ungltiger Takt

                4        Linker berlauf
                5        Rechter berlauf

>-----------------------------------------------------------------<
Name           buffptr - Ermitteln der Aufnahme bzw. Wiedergabeposition

Xbiosnummer    141

Deklaration    LONG buffptr ( LONG *ptr );

Beschreibung   Die XBIOS-Routine buffptr ermittelt die aktuelle
               Wiedergabe- und Aufnahmepositionen in den ent-
               sprechenden Puffern.

               bptr zeigt auf einen mindestens 4 Langworte
               groen Puffer. In diesen werden die Positions-
               zeiger angelegt. Der erste LONG des Puffer
               enthlt einen Zeiger auf die aktuelle Wieder-
               gabeposition und der zweite LONG einen
               Zeiger auf die aktuelle Abspielposition.

               Hinweis: Die Funktion ist nicht nur auf Computern der
               Falcon-Serie verfgbar.

Ergebnis       Im Erfolgsfall liefert die Funktion den Wert 0.

>-----------------------------------------------------------------<
Name           WavePlay - Abspielen eines Samples

Xbiosnummer    165

Deklaration    LONG WavePlay(WORD flags, LONG rate, LONG sptr, LONG slen);

Beschreibung   Die XBIOS-Routine WavePlay startet das abspielen
               eines Samples.

               flags ist ein Bitvektor fr die Beschreibung
               des Samples bzw. auszufhrenden Funktion:
                Bit 0 gesetzt: Sample ist Mono.
                Bit 1 gesetzt: Sample ist 16Bit.
               Ist Bit 5 im '_SND' Cookie gesetzt.
                Bit 4 gesetzt: Sample ist, wenn 16Bit, Intelformat.
                Bit 5 gesetzt: Sample ist ohne Vorzeichen.
                Bit 6 gesetzt: Sampleformat ist so wie es von
                               MilanBlaster aufgenommen wurde.

                Bit 8 gesetzt: siehe Beschreibung im Atari Compendium
                               Band I, XBIOS 4.110-4.112. Wird vom
                               MilanBlaster-XBios nicht untersttzt.
               rate ist die Samplefrequenz in Hz.
               sptr ist die Startadresse des Samples. (kann bei MilanBlaster
                                                      auch im TT-Ram liegen)
               slen ist die lnge des Samples in Byte.

               Hinweis: Die Funktion ist verfgbar wenn Bit 5 im
               '_SND' Cookie gesetzt oder der 'SAM\0' Cookie
               vorhanden ist.

Ergebnis       Im Erfolgsfall liefert die Funktion den Wert 0, die
               Wiedergabe wurde dann gestartet und kann durch
               buffoper(0) jederzeit unterbrochen werden. Das Ende
               des Samples wurde erreicht wenn buffoper(-1) Bit 0
               gelscht ist.

>-----------------------------------------------------------------<

