XBIOS
PCI-BIOS
Soundroutinen
| • Bconmap |
Auswählen einer seriellen Schnittstelle.
|
| • Dosound |
Soundgenerator programmieren.
|
| • ExtRsConf |
Konfiguration der RS232/RS485-Schnittstelle
|
| • Giaccess |
Register des GI-Soundchips lesen und schreiben.
|
| • Ikbdws |
Programmierung des Tastatur-Chips.
|
| • Iorec |
Interruptpuffer für RS232, Tastatur-Chip und
MIDI-Schnittstelle abfragen.
|
| • Kbdvbase |
Puffer und Interruptvektoren für Maus-, MIDI- und
Tastaturschnittstelle abfragen.
|
| • Mfpint |
Programmierung des Multifunktionsperipherie-Chips.
|
| • Midiws |
Strings lesen und schreiben auf MIDI-Schnittstelle.
|
| • Offgibit |
Bit im Port A-Register des GI-Chips löschen.
|
| • Ongibit |
Bit im Port A-Register des GI-Chips setzen.
|
| • Rsconf |
Konfiguration der RS232-Schnittstelle.
|
Querverweis: Interruptfunktionen
| Name: |
»Select serial port« - wählt eine Default-Schnittstelle aus.
|
| Xbiosnummer: |
44
|
| Deklaration: |
int32_t Bconmap( int16_t devno );
|
| Beschreibung: |
Die XBIOS-Routine Bconmap wählt eine der seriellen
Schnittstellen für die Biosausgabe aus. Darüber hinaus kann ein
Zeiger auf die BCONMAP-Struktur abgefragt werden, über die man die
maximale BIOS Gerätenummer abfragen und außerdem neue
Gerätetreiber installieren kann. devno kann die folgenden
Werte annehmen:
| devno |
Bedeutung |
| -402 |
device / RSVF-list remove (HSMODA) |
| -401 |
Eintrag anhängen (HSMODA) |
| -400 |
ausgewählten Eintrag überschreiben (HSMODA) |
| -2 |
Zeiger auf BCONMAP-Struktur liefern |
| -1 |
nur aktuellen Kanal abfragen |
| 0 |
Test, ob Bconmap vorhanden ist |
| 6 |
ST-kompatibler RS232-Port (U:\dev\modem1) |
| 7 |
SCC Kanal B (U:\dev\modem2) |
| 8 |
TTMFP RS232-Port (U:\dev\serial1) |
| 9 |
SCC Kanal A (U:\dev\serial2) |
| >10 |
eigene Treiber |
Die Funktion beeinflußt sowohl die BIOS-Vektortabelle in den
Systemvariablen, als auch das Verhalten der Funktionen Rsconf und Iorec.
Note: In TOS 4.04, und wenn kein TT-MFP vorhanden ist,
wird SCC Kanal A als Device #8 bereitgestellt.
HSMODA
Diese Funktionen sind nur vorhanden falls das Paket HSMODA
installiert ist.
int32_t Bconmap((int16_t)-400, (int16_t)dev_nr,
(int32_t)ptr_to_6_longs)
Die Konstante MAPT_OVE wird als -400 definiert. Diese Funktion
dient dem Überschreiben bereits existierender MAPTAB-Einträge.
dev_nr ist eine Gerätenummer ab 6 aufwärts, die in der
MAPTAB bereits existieren muß, andernfalls wird der Fehlercode -15
EUNDEV zurückgegeben. ptr_to_6_longs zeigt auf eine Struktur,
die einem MAPTAB-Eintrag entspricht. Diese Struktur wird auf den
entsprechenden Platz in der MAPTAB kopiert. Ist das angesprochende
Gerät das aktuell per Bconmap für AUX eingestellte, so werden die
eben eingehängten Routinen auch nach xco* und in die aktuellen Rsconf
und Iorec-Zellen kopiert. Diese Funktion dient nur zum Einhängen
MagiC-freundlicher Routinen. Als Erfolgsmeldung wird die Gerätenummer
zurückgegeben, auf die der Eintrag erfolgte, also dev_nr.
Um Geräte auf den BIOS-Nummern zu installieren, die fest zu
einem Computer gehören, ist immer MAPT_OVE zu benutzen. Für den ST
betrifft das z.B. #6, beim MegaSTE #6 bis #8 und beim TT #6 bis #9.
int32_t Bconmap((int16_t)-401, (int32_t)ptr_to_6_longs)
Die Konstante MAPT_APP wird als -401 definiert. Diese Funktion
dient dem Anfügen eines Kanals an die MAPTAB oder dem Beschreiben
eines leeren Kanals. ptr_to_6_longs zeigt auf eine Struktur,
die einem MAPTAB-Eintrag entspricht. Rückmeldung ist entweder die von
dieser Funktion für den Eintrag gewählte Kanalnummer, oder der
Fehlercode -12 EGENRL, falls kein Platz für eine
MAPTAB-Vergrößerung ist. Hier kann es nicht vorkommen, das die
Vektoren sofort nach xco* übertragen werden, da ein bisher nicht
vorhandener oder belegter Kanal nicht als AUX eingestellt sein kann.
MAPT_APP sucht sich den ersten freien Kanal hinter den fest zum
Computer gehörenden BIOS-Nummern und kann deshalb nur zum
Installieren zusätzlicher Geräte benutzt werden.
int32_t Bconmap((int16_t)-402, (int16_t)dev_nr,
(int32_t)ptr_to_listentry)
Die Konstante MAPT_DEL wird als -402 definiert. Diese Funktion
dient zum Löschen eines Gerätes aus der MAPTAB und zum Aushängen
einer RSVF-Liste aus der RSVF-Verkettung.
dev_nr ist entweder die BIOS-Kanalnummer des aus der
MAPTAB zu entfernenden Gerätes oder -1 für Nichtstun. Der
entsprechende MAPTAB-Eintrag wird freigeben indem spezielle
Dummy-Routinenzeiger eingetragen werden, die auf den Assemblerbefehl
RTS zeigen. Der Iorec-Zeiger-Eintrag wird auf 0 gesetzt. Ist der
gelöschte Kanal auch als BIOS-AUX-Device eingestellt gewesen, so wird
BIOS-AUX auf Nummer 6 umgestellt, auch wenn gerade Nummer 6 gelöscht
wurde.
ptr_to_listentry ist entweder der Zeiger auf die auszuhängende
RSVF-Liste oder 0 für Nichtstun. Der Zeiger muß auf den Anfang einer
Liste verweisen, die daraufhin komplett entfernt wird, auch wenn sie
mehr als ein Schnittstellenobjekt und End- oder Verkettungsobjekt
enthält.
Im Erfolgsfall gibt MAPT_DEL 1 zurück, im Fehlerfall -1.
|
| Ergebnis: |
Bconmap liefert die alte Einstellung. Falls devno gleich
-2 ist liefert die Funktion einen Zeiger auf BCONMAP zurück.
|
| Verfügbar: |
Laut Atari sollte man seine TOS-Version folgendermaßen auf das
Vorhandensein von Bconmap testen:
WORD has_bconmap ( VOID )
{
return (0L == Bconmap (0));
}
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding Bconout Bconin Bcostat Bconstat Iorec Rsconf
|
| C: |
#include <tos.h>
int32_t Bconmap( int16_t devno );
|
| Assembler: |
move.w devno,-(sp) ; Offset 2
move.w #44,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #4,sp ; Stack korrigieren
|
| Name: |
»Dosound« - programmiert den Sound-Generator.
|
| Xbiosnummer: |
32
|
| Deklaration: |
void *Dosound( const int8_t *buf );
|
| Beschreibung: |
Die XBIOS-Routine Dosound startet einen Prozeß zur Steuerung
des Soundgenerators. Der Puffer buf enthält Befehle für die
Programmierung des Sound-Generators. Die folgenden Befehle werden
unterstützt:
| Befehl |
Bedeutung
|
| |
|
| 0x0x byte |
Byte in Register x des Soundchips schreiben
|
| 0x80 byte |
Bytes in temporäres Register laden
|
| 0x81 byte1 |
Nummer des Soundregisters, in das der Wert des temporären
Registers übertragen werden soll.
|
| byte2 |
wird zum temporären Register addiert.
|
| byte3 |
Wert des temporären Registers, bei dem die Schleife
abgebrochen wird.
|
| 0x82 byte |
Anzahl der Jiffies (20 ms), die bis zum nächsten Kommando
vergehen sollen. Enhält byte den Wert 0, so wird vollständig
abgebrochen.
|
| ... |
|
| 0xff byte |
|
|
| Ergebnis: |
Die Funktion liefert den momentan abgespielten Sound-Puffer.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding
|
| C: |
#include <tos.h>
void Dosound( const int8_t *buf );
|
| Assembler: |
pea buf ; Offset 2
move.w #32,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #6,sp ; Stack korrigieren
move.l d0,a0
|
| Name: |
»RS-232/RS485 configuration« - konfiguriert die
RS-232/RS485-Schnittstelle.
|
| Xbiosnummer: |
162
|
| Deklaration: |
int32_t Xbios( 162, int16_t command, int16_t device, int32_t
param );
|
| Beschreibung: |
Die XBIOS-Routine ExtRsConf konfiguriert die serielle
Schnittstelle
| Parameter |
Bedeutung |
| command |
0x0000 - return 0 to check that ExtRsConf |
| |
is present |
| |
0x0001 - set port driver mode: |
| |
param = 0 -> RS232 |
| |
param = 1 -> RS422 |
| |
param = 2 -> RS485 |
| |
|
| device |
BIOS device (6 = MFP serial, ...) |
| |
|
| param |
s.o. |
Hinweis: Die Funktion ist für die Hardware des Milans
2.1. Die Version gibt es allerdings nur als Spezialversion und ist
nicht frei verfügbar.
|
| Ergebnis: |
E_OK (0) - OK
EUNCMD (-3) - unknown command
ERROR (-1) - general error
EUNDEV (-15) - unknown device
|
| Verfügbar: |
Die Funktion ist ab dem MilanTOS mit dem Datum 9.6.2002
vorhanden.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding
|
| C: |
#include <tos.h>
int32_t Xbios( 162, int16_t command, int16_t device, int32_t
param );
|
| Assembler: |
move.l param,-(sp) ; Offset 6
move.w device,-(sp) ; Offset 4
move.w command,-(sp) ; Offset 2
move.w #162,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
lea 10(sp),sp ; Stack korrigieren
|
| Name: |
»access GI sound chip« - ermöglicht den Zugriff auf die
Register des GI-Sound-Chips.
|
| Xbiosnummer: |
28
|
| Deklaration: |
int8_t Giaccess( int16_t data, int16_t regno );
|
| Beschreibung: |
Die XBIOS-Routine Giaccess liest bzw. setzt Register im
GI-Soundchip. Es gilt:
| Parameter |
Bedeutung
|
| |
|
| data |
wird beim Schreibzugriff in das durch regno angegebene
Register geschrieben.
|
| regno |
Nummer des gewünschten Registers (0..15). Beim Schreibzugriff
wird zusätzlich Bit-7 gesetzt.
|
|
| Ergebnis: |
Die Funktion liefert als Ergebnis den Inhalt des angegebenen
Registers.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding
|
| C: |
#include <tos.h>
int8_t Giaccess( int16_t data, int16_t regno );
|
| Assembler: |
move.w regno,-(sp) ; Offset 4
move.w data,-(sp) ; Offset 2
move.w #28,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #6,sp ; Stack korrigieren
|
| Name: |
»write string to keyboard« - programmiert den Tastatur-Chip.
|
| Xbiosnummer: |
25
|
| Deklaration: |
void Ikbdws( int16_t count, const int8_t *ptr );
|
| Beschreibung: |
Die XBIOS-Routine Ikbdws übergibt einen String an die
intelligente Tastatur. Es gilt:
| Parameter |
Bedeutung |
| count |
Anzahl der auszugebenden Bytes - 1 |
| ptr |
Zeiger auf die Bytes im Speicher |
|
| Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding
|
| C: |
#include <tos.h>
void Ikbdws( int16_t count, const int8_t *ptr );
|
| Assembler: |
pea ptr ; Offset 4
move.w count,-(sp) ; Offset 2
move.w #25,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #8,sp ; Stack korrigieren
|
| Name: |
»input output record« - Adresse des Ein-/Ausgabepuffers
ermitteln.
|
| Xbiosnummer: |
14
|
| Deklaration: |
IOREC *Iorec( int16_t dev );
|
| Beschreibung: |
Die XBIOS-Routine Iorec liefert die Adresse des
Ein-/Ausgabe-Puffers eines seriellen Gerätes. Der Parameter
dev kann folgende Werte annehmen:
| dev |
Bedeutung |
| 0 |
RS-232 |
| 1 |
Tastatur |
| 2 |
MIDI-Port |
|
| Ergebnis: |
Die Funktion liefert als Ergebnis einen Zeiger auf die Struktur
IOREC.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding Bconmap
|
| C: |
#include <tos.h>
IOREC *Iorec( int16_t dev );
|
| Assembler: |
move.w dev,-(sp) ; Offset 2
move.w #14,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #4,sp ; Stack korrigieren
|
| Name: |
»keyboard vectors« - liefert einen Zeiger auf die
Tastatur-Interruptvektoren.
|
| Xbiosnummer: |
34
|
| Deklaration: |
KBDVBASE *Kbdvbase( void );
|
| Beschreibung: |
Die XBIOS-Routine Kbdvbase liefert einen Zeiger auf eine KBDVBASE
Struktur.
Hinweis: Bevor einer der in der Struktur angegebenen
Vektoren verändert wird, muß sichergestellt sein, daß nicht gerade
ein Paket verschickt wird (Komponente drvstat = 0).
Anschließend sollten alle Interrupts gesperrt, und dann getestet
werden ob wirklich kein Paket mehr unterwegs ist.
|
| Ergebnis: |
Die Funktion liefert einen Zeiger auf eine KBDVBASE Struktur
zurück.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding
|
| C: |
#include <tos.h>
KBDVBASE *Kbdvbase( void );
|
| Assembler: |
move.w #34,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #2,sp ; Stack korrigieren
|
| Name: |
»init MFP interrupt« - Interrupt initialisieren.
|
| Xbiosnummer: |
13
|
| Deklaration: |
void Mfpint( int16_t number, int16_t (*vector)() );
|
| Beschreibung: |
Die XBIOS-Routine Mfpint initialisiert den
Multifunktions-Interrupt für die angeschlossenen Peripherie-Geräte.
Damit können Hardware-Interrupts abgefangen werden. Das Argument
vector gibt die Interrupt-Service-Routine an. Im Parameter
number wird die Nummer des Interrupt von 0 bis 15 angegeben:
| number |
Beschreibung |
| 0 |
I/O-Port Bit 0 Busy par. Schnittstelle |
| 1 |
RS-232 DCD |
| 2 |
RS-232 CTS |
| 3 |
Blitter |
| 4 |
Timer D, RS232-232 Baud-Generator |
| 5 |
Timer C, 200-Hz System-Uhr |
| 6 |
Tastatur und MIDI |
| 7 |
FDC und DMA |
| 8 |
Timer B Zeilenrücklauf |
| 9 |
RS-232 Sendefehler |
| 10 |
RS-232 Sendepuffer leer |
| 11 |
RS-232 Empfangspuffer voll |
| 12 |
RS-232 Puffer voll |
| 13 |
Timer A |
| 14 |
RS-232 RI |
| 15 |
Monochrom-Monitor Detect |
|
| Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding Jdisint Jenabint
|
| C: |
#include <tos.h>
void Mfpint( int16_t number, int16_t (*vector)() );
|
| Assembler: |
pea vector ; Offset 4
move.w number,-(sp) ; Offset 2
move.w #13,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #8,sp ; Stack korrigieren
|
| Name: |
»Midi write string« - gibt eine Zeichenfolge über die
Midi-Schnittstelle aus.
|
| Xbiosnummer: |
12
|
| Deklaration: |
void Midiws( int16_t cnt, void *ptr );
|
| Beschreibung: |
Die XBIOS-Routine Midiws gibt einen String über die
Midi-Schnittstelle aus. Es gilt:
| Parameter |
Bedeutung
|
| |
|
| cnt |
Anzahl der auszugebenden Bytes - 1
|
| ptr |
Zeiger auf Bytefolge
|
|
| Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding
|
| C: |
#include <tos.h>
void Midiws( int16_t cnt, void *ptr );
|
| Assembler: |
pea ptr ; Offset 4
move.w cnt,-(sp) ; Offset 2
move.w #12,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #8,sp ; Stack korrigieren
|
| Name: |
»GI bit off« - löscht ein Bit im Register A des Soundchips.
|
| Xbiosnummer: |
29
|
| Deklaration: |
void Offgibit( int16_t bitno );
|
| Beschreibung: |
Die XBIOS-Routine Offgibit löscht ein Bit im Register A des
Soundchips GI. bitno gibt den Wert an, mit dem das Register
verUNDet werden soll. Die Bits in diesem Register haben folgende
Bedeutung:
| Bit |
Beschreibung
|
| |
|
| 0 |
Floppy Sideselect
|
| 1 |
Drive Select A
|
| 2 |
Drive Select B
|
| 3 |
RS-232 RTS
|
| 4 |
RS-232 DTR
|
| 5 |
Centronics Strobe
|
| 6 |
PIN 3 Monitor Buchse
|
| 7 |
unbenutzt
ab TOS030 des TT jedoch Modem 4 (1) oder LAN (0)
|
|
| Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding Ongibit
|
| C: |
#include <tos.h>
void Offgibit( int16_t bitno );
|
| Assembler: |
move.w bitno,-(sp) ; Offset 2
move.w #29,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #4,sp ; Stack korrigieren
|
| Name: |
»GI bit on« - setzt ein Bit im Register A des Soundchips.
|
| Xbiosnummer: |
30
|
| Deklaration: |
void Ongibit( int16_t bitno );
|
| Beschreibung: |
Die XBIOS-Routine Ongibit setzt ein Bit im Register A des
Soundchips GI. bitno gibt den Wert an, mit dem das Register
verODERt werden soll. Die Bits in diesem Register haben folgende
Bedeutung:
| Bit |
Beschreibung
|
| |
|
| 0 |
Floppy Sideselect
|
| 1 |
Drive Select A
|
| 2 |
Drive Select B
|
| 3 |
RS-232 RTS
|
| 4 |
RS-232 DTR
|
| 5 |
Centronics Strobe
|
| 6 |
PIN 3 Monitor Buchse
|
| 7 |
unbenutzt
ab TOS030 des TT jedoch Modem 4 (1) oder LAN (0)
|
|
| Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding Offgibit
|
| C: |
#include <tos.h>
void Ongibit( int16_t bitno );
|
| Assembler: |
move.w bitno,-(sp) ; Offset 2
move.w #30,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
addq.l #4,sp ; Stack korrigieren
|
| Name: |
»RS-232 configuration« - konfiguriert die
RS-232-Schnittstelle.
|
| Xbiosnummer: |
15
|
| Deklaration: |
int32_t Rsconf( int16_t baud, int16_t ctr, int16_t ucr, int16_t
rsr, int16_t tsr, int16_t scr );
|
| Beschreibung: |
Die XBIOS-Routine Rsconf konfiguriert die serielle
Schnittstelle. Da auf unterschiedlichen Rechnern unterschiedliche
Hardwarebausteine zum Einsatz kommen können, muß die Funktion
vorsichtig eingesetzt werden, d.h:
- aktuelle Einstellungen sollten mit Hilfe von Rsconf
(-1,-1,-1,-1,-1,-1) abgefragt werden
- nur die notwendigen Bits manipulieren
- anschließend die neuen Werte setzen
Aufgrund der Möglichkeit unterschiedliche Bausteine zum Einsatz
kommen zu lassen, wurden die benutzbaren Werte folgendermaßen
eingeschränkt:
| Parameter |
Einschränkung |
| ucr |
Bit 1: Art der Parität |
| |
0 = ungerade |
| |
1 = gerade |
| |
|
| |
2: Parität |
| |
0 = nein |
| |
1 = ja |
| |
|
| |
3+4: Anzahl der Stopbits |
| |
0 = ungültig |
| |
1 = 1 Stopbit |
| |
2 = 1,5 Stopbits |
| |
3 = 2 Stopbits |
| |
|
| |
5+6: Wortlänge |
| |
0 = 8 Bits |
| |
1 = 7 Bits |
| |
2 = 6 Bits |
| |
3 = 5 Bits |
| |
|
| rsr |
nicht anwendbar |
| tsr |
Bit-3: (1 = Break) |
| scr |
nicht anwendbar |
Technisch nicht möglich Werte müssen daher ignoriert werden.
Ansonsten gilt folgende Belegung:
| Parameter |
Bedeutung |
| baud |
Baudrate |
| |
-1: nicht verändern |
| |
0: 19200 Baud |
| |
1: 9600 Baud |
| |
2: 4800 Baud |
| |
3: 3600 Baud |
| |
4: 2400 Baud |
| |
5: 2000 Baud |
| |
6: 1800 Baud |
| |
7: 1200 Baud |
| |
8: 600 Baud |
| |
9: 300 Baud |
| |
10: 200 Baud |
| |
11: 150 Baud |
| |
12: 134 Baud |
| |
13: 110 Baud |
| |
14: 75 Baud |
| |
15: 50 Baud |
| |
|
| ctr |
Art der Flußkontrolle |
| |
-1: nicht verändern |
| |
0: keine Flußkontrolle |
| |
1: XON/XOFF (Control-S, Control-Q) |
| |
2: RTS/CTS |
| |
3: RTS/CTS und XON/XOFF |
| |
|
| ucr |
neuer Wert für Register, oder -1 |
| tsr |
neuer Wert für Register, oder -1 |
| rsr |
neuer Wert für Register, oder -1 |
| scr |
neuer Wert für Register, oder -1 |
Hinweis: Ab TOS 1.04 kann die zuletzt eingestellte
Baudrate per Rsconf (-2,-1,-1,-1,-1) abgefragt werden. Man sollte sich
niemals darauf verlassen, daß alle Einstellungen tatsächlich wie
gewünscht vorgenommen werden konnten, und deshalb den Rückgabewert
der Funktion beachten.
|
| Ergebnis: |
Die Funktion liefert in gepackter Form die Werte der Register
ucr, rsr, scr, tsr und zwar wie folgt:
| Bits |
0..7: |
scr-Register |
| Bits |
8..15: |
tsr-Register |
| Bits |
16..23: |
rsr-Register |
| Bits |
24..31: |
ucr-Register |
|
| Verfügbar: |
Alle TOS Versionen.
|
| Gruppe: |
Schnittstellenprogrammierung
|
| Querverweis: |
Binding Bconmap
|
| C: |
#include <tos.h>
int32_t Rsconf( int16_t baud, int16_t ctr, int16_t ucr, int16_t
rsr, int16_t tsr, int16_t scr );
|
| Assembler: |
move.w scr,-(sp) ; Offset 12
move.w tsr,-(sp) ; Offset 10
move.w rsr,-(sp) ; Offset 8
move.w ucr,-(sp) ; Offset 6
move.w ctr,-(sp) ; Offset 4
move.w baud,-(sp) ; Offset 2
move.w #15,-(sp) ; Offset 0
trap #14 ; XBIOS aufrufen
lea $E(sp),sp ; Stack korrigieren
|
XBIOS
PCI-BIOS
Soundroutinen