• Cursconf | Cursordarstellung ändern oder ermitteln. |
• EgetPalette | Farbtabelle lesen. |
• EgetShift | Shift Mode Register lesen. |
• EsetBank | Farbtabelle setzen. |
• EsetColor | Farbtabelleneintrag setzen. |
• EsetGray | Farbinterpretation setzen. |
• EsetPalette | Farbtabelle laden. |
• EsetShift | Shift Mode Register setzen. |
• EsetSmear | Farbverwischung setzen. |
• Getrez | Auflösung ermitteln. |
• Initmouse | Mauszeiger initialisieren. |
• Logbase | Adresse des logischen Bildschirmspeichers ermitteln. |
• mon_type | Monitortyp ermitteln. |
• Physbase | Adresse des physikal. Bildschirmspeichers ermitteln. |
• Setcolor | Farbe einstellen. |
• Setpalette | Farbpalette auswählen. |
• Setscreen | Festlegen der Bildschirmauflösung und -adressen. |
• ValidMode | Validates a mode code. |
• VgetRGB | RGB-Wert einer Farbe ermitteln. |
• VsetScreen | Festlegen der Bildschirmauflösung und -adressen |
• VgetSize | Größe des Bildschirmpuffers ermitteln. |
• VsetMask | Transparenz für True-Color setzen. |
• VsetMode | Videohardwareregister setzen. |
• VsetRGB | RGB-Wert einer Farbe setzen. |
• VsetSync | Synchronisationsart setzen. |
• Vsync | Vertikales Synchronisationssignal abfragen. |
Name: | »cursor configuration« - legt die Arbeitsweise des Cursors
fest.
| ||||||||||||||||
Xbiosnummer: | 21
| ||||||||||||||||
Deklaration: | int16_t Cursconf( int16_t func, int16_t rate );
| ||||||||||||||||
Beschreibung: | Die XBIOS-Routine Cursconf verändert das Aussehen und
wahlweise die Blinkgeschwindigkeit des Cursors. Der Parameter
func kann folgende Werte annehmen:
Hinweis: Der Parameter rate soll in Schritten der Wiederholfrequenz des Bildschirms verwendet werden. | ||||||||||||||||
Ergebnis: | Die Funktion liefert nur dann ein definiertes Ergebnis,
nämlich die Blinkfrequenz, wenn im Parameter func die Zahl 5
übergeben wurde.
| ||||||||||||||||
Verfügbar: | Alle TOS Versionen
| ||||||||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||||||||
Querverweis: | Binding
|
C: | #include <tos.h>
int16_t Cursconf( int16_t func, int16_t rate ); |
Assembler: |
move.w rate,-(sp) ; Offset 4 move.w func,-(sp) ; Offset 2 move.w #21,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Get look up table registers« - Liest mehrere Einträge aus
der Farbtabelle.
| ||||||||||
Xbiosnummer: | 85
| ||||||||||
Deklaration: | void EgetPalette( int16_t colorNum, int16_t count, int16_t
*palettePtr );
| ||||||||||
Beschreibung: | Die XBIOS-Routine EgetPalette liest einen zusammenhängenden
Bereich aus den TT-Farbregistern aus.
| ||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||||
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung.
| ||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||
Querverweis: | Binding EsetPalette
|
C: | #include <tos.h>
void EgetPalette( int16_t colorNum, int16_t count, int16_t *palettePtr ); |
Assembler: |
pea palettePtr ; Offset 6 move.w count,-(sp) ; Offset 4 move.w colorNum,-(sp) ; Offset 2 move.w #85,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »Get current shift mode value« - Liest das Shift Mode
Register.
|
Xbiosnummer: | 81
|
Deklaration: | int16_t EgetShift( void );
|
Beschreibung: | Die XBIOS-Routine EgetShift liest das Shift Mode Register aus
und liefert den Inhalt des Registers als Ergebnis zurück.
|
Ergebnis: | Die Funktion liefert den Wert des Registers gemäß folgender
Belegung:
|
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding EsetShift
|
C: | #include <tos.h>
int16_t EgetShift( void ); |
Assembler: |
move.w #81,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #2,sp ; Stack korrigieren |
Name: | »Set color look up bank« - Setzt Bank für Farbtabelle.
|
Xbiosnummer: | 82
|
Deklaration: | int16_t EsetBank( int16_t bankNum );
|
Beschreibung: | Die XBIOS-Routine EsetBank setzt die Banknummer für die
Farbtabelle des TT auf den Wert bankNum. Der erlaubte Wert von
bankNum liegt zwischen 0 und 15. Ist bankNum negativ, wird die
aktuelle Einstellung nicht verändert.
|
Ergebnis: | Die Funktion liefert die vorherige Einstellung.
|
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding
|
C: | #include <tos.h>
int16_t EsetBank( int16_t bankNum ); |
Assembler: |
move.w bankNum,-(sp) ; Offset 2 move.w #82,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Set color entry« - Schreibt einen Eintrag in die
Farbtabelle.
|
Xbiosnummer: | 83
|
Deklaration: | int16_t EsetColor( int16_t colorNum, int16_t color );
|
Beschreibung: | Die XBIOS-Routine EsetColor setzt den Farbeintrag
colorNum (0..255) in der Farbtabelle auf den Wert
color; ein negativer Wert verändert den Eintag nicht.
|
Ergebnis: | Die Funktion liefert die vorherige Einstellung.
|
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding Setcolor
|
C: | #include <tos.h>
int16_t EsetColor( int16_t colorNum, int16_t color ); |
Assembler: |
move.w color,-(sp) ; Offset 4 move.w colorNum,-(sp) ; Offset 2 move.w #83,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Set/clear gray mode« - Schaltet die Farbinterpretation ein
bzw. aus.
|
Xbiosnummer: | 86
|
Deklaration: | int16_t EsetGray( int16_t switch );
|
Beschreibung: | Die XBIOS-Routine EsetGray schaltet die Farbinterpretation in
der Farbtabelle als Graustufe ein (1) bzw. aus (0). Ein negativer Wert
verändert die Einstellung nicht.
Im Graustufen-Modus kann anstelle von 4096 Farbtönen aus einer Palette von 256 Graustufen gewählt werden. |
Ergebnis: | Die Funktion liefert die bisherige Einstellung.
|
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung (when
the high word of the '_VDO' cookie has the value of 2).
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding
|
C: | #include <tos.h>
int16_t EsetGray( int16_t switch ); |
Assembler: |
move.w switch,-(sp) ; Offset 2 move.w #86,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Set palette registers« - Setzt mehrere Einträge in der
Farbtabelle.
|
Xbiosnummer: | 84
|
Deklaration: | void EsetPalette( int16_t colorNum, int16_t count, int16_t
*palettePtr );
|
Beschreibung: | Die XBIOS-Routine EsetPalette setzt count Farbeinträge
ab colorNum in der Farbtabelle auf die Werte im Array
palettePtr.
|
Ergebnis: | Die Funktion hat kein Ergebnis.
|
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding EgetPalette
|
C: | #include <tos.h>
void EsetPalette( int16_t colorNum, int16_t count, int16_t *palettePtr ); |
Assembler: |
pea palettePtr ; Offset 6 move.w count,-(sp) ; Offset 4 move.w colorNum,-(sp) ; Offset 2 move.w #84,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »Set shift mode register« - Setzt das Shift Mode Register.
|
Xbiosnummer: | 80
|
Deklaration: | int16_t EsetShift( int16_t shftMode );
|
Beschreibung: | Die XBIOS-Routine EsetShift schreibt in das Shift Mode
Register des TT den Wert shftMode. shftMode ist ein Bitfeld
mit folgender Bedeutung:
|
Ergebnis: | Die Funktion liefert den vorherigen Wert des Registers.
|
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding EgetShift
|
C: | #include <tos.h>
int16_t EsetShift( int16_t shftMode ); |
Assembler: |
move.w shftMode,-(sp) ; Offset 2 move.w #80,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Set/clear video smear mode« - Schaltet die Farbverwischung
ein bzw. aus.
| ||||||||
Xbiosnummer: | 87
| ||||||||
Deklaration: | int16_t EsetSmear( int16_t switch );
| ||||||||
Beschreibung: | Die XBIOS-Routine EsetSmear erlaubt die Umschaltung des
Smear-Modus des TT-Videobausteins. Im Smear-Modus wird anstelle der
Hintergrundfarbe (Farbe 0) die jeweils zuletzt dargestellte Farbe
gezeichnet. Es gilt:
| ||||||||
Ergebnis: | Die Funktion liefert die bisherige Einstellung.
| ||||||||
Verfügbar: | Die Funktion steht nur im TOS des Atari-TT zur Verfügung.
| ||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||
Querverweis: | Binding
|
C: | #include <tos.h>
int16_t EsetSmear( int16_t switch ); |
Assembler: |
move.w switch,-(sp) ; Offset 2 move.w #87,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »get resolution« - ermittelt die Auflösung des Bildschirms.
| ||||||||||||||
Xbiosnummer: | 4
| ||||||||||||||
Deklaration: | int16_t Getrez( void );
| ||||||||||||||
Beschreibung: | Die XBIOS-Routine Getrez ermittelt die Auflösung des
Bildschirms.
| ||||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis folgende Werte:
Alle anderen Werte sind für zukünftige Erweiterungen reserviert. Hinweis: Vom Standpunkt der sauberen Programmierung betrachtet, sollte diese Funktion auf keinen Fall benutzt werden. Insbesondere beim Einsatz von Grafikkarten hat sie praktisch keinen Aussagewert. Stattdessen sollte die Auflösung des Bildschirms über das VDI (v_opnvwk) ermittelt werden. | ||||||||||||||
Verfügbar: | Alle TOS Versionen
| ||||||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||||||
Querverweis: | Binding v_opnvwk
|
C: | #include <portab.h>
#include <tos.h> int16_t Getrez( void ); |
Assembler: |
move.w #4,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #2,sp ; Stack korrigieren |
Name: | »initialize mouse« - initialisiert die Maus.
| ||||||||||||
Xbiosnummer: | 0
| ||||||||||||
Deklaration: | void Initmouse( int16_t type, MOUSE *par, void (*mousevec)() );
| ||||||||||||
Beschreibung: | Initmouse ist eine XBIOS-Routine zur Low-Level-Initialisierung
der Maus. Der Parameter type legt die Betriebsart der Maus
fest. Es gilt:
Die Bytes von 4 bis 11 des Parameters par werden nur dann verwendet, wenn die Maus im Absolut-Modus arbeiten soll. Mit mousevec kann ein neuer Interrupt-Vektors der Maus gesetzt werden. Der Vektor wird zurückgesetzt wenn die Maus abgeschaltet wird (type=0). | ||||||||||||
Ergebnis: | Die Funktion liefert -1 alles OK ist oder 0 falls ein Fehler
aufgetreten ist.
| ||||||||||||
Verfügbar: | Alle TOS Versionen
| ||||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||||
Querverweis: | Binding MOUSE
|
C: | #include <tos.h>
void Initmouse( int16_t type, MOUSE *par, void (*mousevec)() ); |
Assembler: |
pea mousevec ; Offset 8 pea par ; Offset 4 move.w type,-(sp) ; Offset 2 move.w #0,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea 12(sp),sp ; Stack korrigieren |
Name: | »logical screen RAM base« - ermittelt die logische
Anfangsadresse des Videospeichers.
|
Xbiosnummer: | 3
|
Deklaration: | void *Logbase( void );
|
Beschreibung: | Die XBIOS-Routine Logbase ermittelt die logische
Anfangsadresse des momentan als Videospeicher verwendeten
RAM-Bereichs.
|
Ergebnis: | Die Funktion liefert als Ergebnis die Anfangsadresse des
logischen Bildschirmspeichers.
|
Verfügbar: | Alle TOS Versionen
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding Physbase Setscreen
|
C: | #include <tos.h>
void *Logbase( void ); |
Assembler: |
move.w #3,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #2,sp ; Stack korrigieren |
Name: | »mon_type« - Typ des Monitors ermitteln
| |||||||||||||||||||||
Xbiosnummer: | 89
| |||||||||||||||||||||
Deklaration: | int16_t mon_type( void );
| |||||||||||||||||||||
Beschreibung: | Die XBIOS-Funktion mon_type ermittelt den angeschlossenen
Monitortyp anhand von Pin 18(M1) und 19(M0) des Video-Ports. Ein 0-Bit
bedeutet Masse am entsprechenden Pin, 1-Bit bedeutet keine Verbindung.
| |||||||||||||||||||||
Ergebnis: | Die Funktion liefert den angeschlossenen Monitortyp zurück.
Dabei gilt:
Die Werte vier und fünf sind nur verfügbar mit dem ct60 und Radeon Treiber. | |||||||||||||||||||||
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
| |||||||||||||||||||||
Gruppe: | Bildschirmfunktionen
| |||||||||||||||||||||
Querverweis: | Binding VsetSync VsetMode VgetSize VgetRGB VsetRGB
VsetMask
|
C: | #include <tos.h>
int16_t mon_type( void ); |
Assembler: |
move.w #89,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #2,sp ; Stack korrigieren |
Name: | »physical screen ram base« - ermittelt die Anfangsadresse des
Video-Speichers.
|
Xbiosnummer: | 2
|
Deklaration: | void *Physbase( void );
|
Beschreibung: | Die XBIOS-Routine Physbase ermittelt die physikalische
Anfangsadresse des momentan als Videospeicher verwendeten
RAM-Bereichs.
|
Ergebnis: | Die Funktion Physbase liefert als Ergebnis die Adresse des
physikalischen Bildschirmspeichers.
|
Verfügbar: | Alle TOS Versionen
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding Logbase Setscreen
|
C: | #include <tos.h>
void *Physbase( void ); |
Assembler: |
move.w #2,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #2,sp ; Stack korrigieren |
Name: | »Setcolor« - legt eine von 16 Farben fest.
| ||||||
Xbiosnummer: | 7
| ||||||
Deklaration: | int16_t Setcolor( int16_t colornum, int16_t color );
| ||||||
Beschreibung: | Die XBIOS-Routine Setcolor erfragt den Wert eines Farbregisters
bzw. setzt dieses auf einen neuen Wert. Es gilt:
| ||||||
Ergebnis: | Die Funktion liefert den bisherigen Wert des Farbregisters.
| ||||||
Verfügbar: | Alle TOS Versionen
| ||||||
Gruppe: | Bildschirmfunktionen
| ||||||
Querverweis: | Binding Setpalette
|
C: | #include <tos.h>
int16_t Setcolor( int16_t colornum, int16_t color ); |
Assembler: |
move.w color,-(sp) ; Offset 4 move.w colornum,-(sp) ; Offset 2 move.w #7,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »set palette« - wählt 16 Farben aus.
|
Xbiosnummer: | 6
|
Deklaration: | void Setpalette( void *pallptr );
|
Beschreibung: | Die XBIOS-Routine Setpalette erlaubt es, eine neue Farbpalette
an die Videohardware zu übergeben.
Der Parameter pallptr zeigt auf eine Tabelle von sechzehn 16-Bit Worten, die die neue Palette enthalten. Die untersten 12-Bits werden dabei für die RGB-Werte benutzt. pallptr muß auf eine gerade Adresse zeigen. Da die Daten von der Funktion nicht sofort verarbeitet werden, muß dafür gesorgt werden, daß der Zeiger pallptr selbst im nächsten Vertical Blank noch auf etwas sinnvolles zeigt. Hinweis: Es sollte besser auf die entsprechenden Funktionen des VDI zurückgegriffen werden. |
Ergebnis: | Die Funktion liefert keinen Wert.
|
Verfügbar: | Alle TOS Versionen
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding
|
C: | #include <tos.h>
void Setpalette( void *pallptr ); |
Assembler: |
pea pallptr ; Offset 2 move.w #6,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »set screen« - initialisiert den Bildschirm.
| ||||||||||||
Xbiosnummer: | 5
| ||||||||||||
Deklaration: | void Setscreen( void *laddr, void *paddr, int16_t rez );
| ||||||||||||
Beschreibung: | Die XBIOS-Routine Setscreen dient dazu, Auflösung und
Bildschirmspeicheradressen zu verändern. Es gilt:
Ein Wert von -1 bedeutet in diesem Zusammenhang, daß die entsprechende Adresse bzw. Auflösung nicht verändert wird. Hinweis: Es sollte stets kontrolliert werden, ob eventuelle Veränderungen wirklich erfolgreich ausgeführt werden konnten. Bei einer Änderung der Auflösung wird automatisch der VT-52 Emulator initialisiert. Unter bestimmten Umständen gibt es eine erweiterte Version dieser Funktion (VsetScreen). | ||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||
Verfügbar: | Alle TOS Versionen
| ||||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||||
Querverweis: | Binding Physbase Logbase Getrez
|
C: | #include <tos.h>
void Setscreen( void *laddr, void *paddr, int16_t rez ); |
Assembler: |
move.w rez,-(sp) ; Offset 10 move.l paddr,-(sp) ; Offset 6 move.l laddr,-(sp) ; Offset 2 move.w #5,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $C(sp),sp ; Stack korrigieren |
Name: | »set screen« - initialisiert den Bildschirm.
| ||||||||||
Xbiosnummer: | 5
| ||||||||||
Deklaration: | void Setscreen( void *par1, void *par2, int16_t rez, int16_t
command );
| ||||||||||
Beschreibung: | Diese XBIOS-Routine entspricht der Funktion Setscreen
allerdings mit einem zusätzlichen Parameter und dient dazu,
Auflösung und Bildschirmspeicheradressen zu verändern.
Folgende Werte sind für command definiert:
| ||||||||||
Ergebnis: | Return value undefined.
| ||||||||||
Verfügbar: | Die Funktion ist ab dem MilanTOS 4.08 verfügbar.
| ||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||
Querverweis: | Setscreen VsetScreen Setscreen, ct60
|
Name: | »set screen« - initialisiert den Bildschirm.
| ||||||||||
Xbiosnummer: | 5
| ||||||||||
Deklaration: | void Setscreen( void *par1, void *par2, int16_t rez, int16_t
command );
| ||||||||||
Beschreibung: | Diese XBIOS-Routine entspricht der Funktion Setscreen
allerdings mit einem zusätzlichen Parameter und dient dazu,
Auflösung und Bildschirmspeicheradressen zu verändern.
Folgende Werte sind für command definiert:
| ||||||||||
Ergebnis: | Nothing (or current modecode in TOS mode)
| ||||||||||
Verfügbar: | Only valid with internal TOS Radeon driver (PCI.HEX) for the
ct60 (2007-01-24).
| ||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||
Querverweis: | Setscreen VsetScreen Setscreen, Milan
|
Name: | »ValidMode« - Validates a mode code.
| ||||||||||||||||||||||||||||||||||||||||
Xbiosnummer: | 95
| ||||||||||||||||||||||||||||||||||||||||
Deklaration: | int16_t ValidMode( int16_t mode );
| ||||||||||||||||||||||||||||||||||||||||
Beschreibung: | The XBIOS function ValidMode returns a valid version of the
specified mode code, depending on the monitor that is connected. The
bits of the parameter mode have the following meaning:
Note: This function is not officially documented and some development tools may also call it Validmode or VcheckMode. | ||||||||||||||||||||||||||||||||||||||||
Ergebnis: | The function returns a valid mode code.
| ||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie, Milan und
CT60 verfügbar.
| ||||||||||||||||||||||||||||||||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding mon_type VsetSync VgetSize VgetRGB VsetRGB
VsetMask VsetMode
|
C: | int16_t ValidMode( int16_t mode );
|
Assembler: |
move.w mode,-(sp) ; Offset 2 move.w #95,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »VgetRGB« - RGB Wert einer Farbe ermitteln
|
Xbiosnummer: | 94
|
Deklaration: | void VgetRGB( int16_t index, int16_t count, int32_t *array );
|
Beschreibung: | Die XBIOS-Funktion VgetRGB ermittelt die RGB-Werte für
count Farben ab dem Farbindex index. Die
resultierenden Werte werden in array abgelegt.
|
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding mon_type VsetMode VsetSync VgetSize VsetRGB
VsetMask
|
C: | #include <tos.h>
void VgetRGB( int16_t index, int16_t count, int32_t *array ); |
Assembler: |
move.l array,-(sp) ; Offset 6 move.w count,-(sp) ; Offset 4 move.w index,-(sp) ; Offset 2 move.w #94,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »set screen« - initialisiert den Bildschirm.
| ||||||||||||||||
Xbiosnummer: | 5
| ||||||||||||||||
Deklaration: | void VsetScreen( void *laddr, void *paddr, int16_t rez, int16_t
mode );
| ||||||||||||||||
Beschreibung: | Die XBIOS-Routine VsetScreen entspricht der Funktion Setscreen
allerdings mit einem zusätzlichen Parameter und dient dazu,
Auflösung und Bildschirmspeicheradressen zu verändern. Es gilt:
Ein Wert von -1 bedeutet in diesem Zusammenhang, daß die entsprechende Adresse bzw. Auflösung nicht verändert wird. Hinweis: Es sollte stets kontrolliert werden, ob eventuelle Veränderungen wirklich erfolgreich ausgeführt werden konnten. Bei einer Änderung der Auflösung wird automatisch der VT-52 Emulator initialisiert. Der zusätzliche Parameter mode steht nur zur Verfügung, wenn der Cookie '_VDO' den Wert 0x00030000 oder größer hat. Beim TOS des Milans gibt es zusätzliche Funktionen bei Setscreen, entsprechendes gilt auch für den ct60. | ||||||||||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis.
| ||||||||||||||||
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
| ||||||||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||||||||
Querverweis: | Binding
|
C: | #include <tos.h>
void VsetScreen( void *laddr, void *paddr, int16_t rez, int16_t mode ); |
Assembler: |
move.w mode,-(sp) ; Offset 12 move.w rez,-(sp) ; Offset 10 move.l paddr,-(sp) ; Offset 6 move.l laddr,-(sp) ; Offset 2 move.w #5,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea 14(sp),sp ; Stack korrigieren |
Name: | »VgetSize« - Größe des Bildschirmpuffers ermitteln
|
Xbiosnummer: | 91
|
Deklaration: | int32_t VgetSize( int16_t mode );
|
Beschreibung: | Die XBIOS-Funktion VgetSize ermittelt die Größe des
Bildschirmpuffers in Bytes für den Grafikmodus mode.
|
Ergebnis: | Die Funktion liefert die Größe des Bildschirmpuffers in Bytes
zurück.
|
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding mon_type VsetMode VsetSync VgetRGB VsetRGB
VsetMask
|
C: | #include <tos.h>
int32_t VgetSize( int16_t mode ); |
Assembler: |
move.w mode,-(sp) ; Offset 2 move.w #91,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »VsetMask« - Transparenz für TrueColor setzen
|
Xbiosnummer: | 150
|
Deklaration: | void VsetMask( int32_t ormask, int32_t andmask, int16_t overlay
);
|
Beschreibung: | Die XBIOS-Funktion VsetMask setzt Masken, die benutzt werden,
um die durch die VDI-Funktion vs_color gesetzten Farben zu
modifizieren. vs_color ermittelt zu seinem Parameter einen RGB-Wert.
Dieser wird bitweise mit ormask verodert und mit
andmask verundet. Somit können Farben im True-Color-Modus
transparent erscheinen. Ist overlay ungleich Null, wird in den
Overlaymodus geschalten bzw. mit Null zurück.
|
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding mon_type VsetMode VsetSync VgetSize VgetRGB
VsetRGB
|
C: | #include <tos.h>
void VsetMask( int32_t ormask, int32_t andmask, int16_t overlay ); |
Assembler: |
move.w overlay,-(sp) ; Offset 10 move.l andmask,-(sp) ; Offset 6 move.l ormask,-(sp) ; Offset 2 move.w #150,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea 12(sp),sp ; Stack korrigieren |
Name: | »VsetMode« - Videohardwareregister setzen
| ||||||||||||||||||||||||||||||||||||||||
Xbiosnummer: | 88
| ||||||||||||||||||||||||||||||||||||||||
Deklaration: | int16_t VsetMode( int16_t mode );
| ||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die XBIOS-Funktion VsetMode programmiert das
Videohardwareregister der Falcon-Computer. Die Bits des Parameters
mode haben folgende Bedeutung:
Wird als mode VM_INQUIRE (-1) übergeben erhält man die aktuelle Auflösung, ohne das etwas verändert wird. Hinweis: Es findet keine Überprüfung auf die Richtigkeit der Kodierung für den angeschlossenen Monitor statt. | ||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert den alten Inhalt des
Videohardwareregisters zurück.
| ||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
| ||||||||||||||||||||||||||||||||||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding mon_type VsetSync VgetSize VgetRGB VsetRGB
VsetMask
|
C: | #include <tos.h>
int16_t VsetMode( int16_t mode ); |
Assembler: |
move.w mode,-(sp) ; Offset 2 move.w #88,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »VsetRGB« - RGB Wert einer Farbe setzen
|
Xbiosnummer: | 93
|
Deklaration: | void VsetRGB( int16_t index, int16_t count, int32_t *array );
|
Beschreibung: | Die XBIOS-Funktion VsetRGB setzt die RGB-Werte für
count Farben ab dem Farbindex index. Die Farbwerte
sind in array abgelegt.
|
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding mon_type VsetMode VsetSync VgetSize VgetRGB
VsetMask
|
C: | #include <tos.h>
void VsetRGB( int16_t index, int16_t count, int32_t *array ); |
Assembler: |
move.l array,-(sp) ; Offset 6 move.w count,-(sp) ; Offset 4 move.w index,-(sp) ; Offset 2 move.w #93,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »VsetSync« - Art der Synchronisation setzen
| ||||||||
Xbiosnummer: | 90
| ||||||||
Deklaration: | void VsetSync( int16_t flag );
| ||||||||
Beschreibung: | Die XBIOS-Funktion VsetSync legt fest, auf welche Art eine
Synchronisation erfolgen soll. Der Parameter flag wird wie
folgt kodiert:
| ||||||||
Ergebnis: | Die Funktion liefert kein Ergebnis zurück.
| ||||||||
Verfügbar: | Die Funktion ist nur auf Computern der Falcon-Serie verfügbar.
| ||||||||
Gruppe: | Bildschirmfunktionen
| ||||||||
Querverweis: | Binding mon_type VsetMode VgetSize VgetRGB VsetRGB
VsetMask
|
C: | #include <tos.h>
void VsetSync( int16_t flag ); |
Assembler: |
move.w flag,-(sp) ; Offset 2 move.w #90,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »vertical sync« - wartet auf das nächste vertikale
Sync-Signal.
|
Xbiosnummer: | 37
|
Deklaration: | void Vsync( void );
|
Beschreibung: | Die XBIOS-Routine Vsync wartet auf den nächsten
Bildschirm-Refresh (Vertical-Blank Interrupt). Damit ist es möglich,
Bildschirmoperationen mit dem Betriebssystem synchronisieren.
Hinweis: Für zeitkritische Abfragen (Scrolling) sollte besser direkt auf den Zeilenzähler im Shifter zurückgegriffen werden. |
Ergebnis: | Die Funktion liefert kein Ergebnis.
|
Verfügbar: | Alle TOS Versionen
|
Gruppe: | Bildschirmfunktionen
|
Querverweis: | Binding
|
C: | #include <tos.h>
void Vsync( void ); |
Assembler: |
move.w #37,-(sp) ; Offset 0 trap #14 ; XBIOS aufrufen addq.l #2,sp ; Stack korrigieren |
Zur vereinfachten Programmierung des Videohardwareregisters des Falcons mittels der Funktion VsetMode sind in der Headerdatei tos.h die folgenden Konstanten definiert, die mit | kombiniert werden:
#define VERTFLAG 0x0100 /* Interlace aktivieren */ #define STMODES 0x0080 /* ST-kompatible Grafik */ #define OVERSCAN 0x0040 /* Overscan aktivieren */ #define PAL 0x0020 /* PAL-Modus */ #define FALC_VGA 0x0010 /* VGA-Modus */ #define TV 0x0000 /* TV-Modus */ #define COL80 0x0008 /* Bildbreite mind. 640 Pixel */ #define COL40 0x0000 /* Bildbreite 320 Pixel */ #define BPS16 4 /* 16 Farbebenen: 65536 Farben */ #define BPS8 3 /* 8 Farbebenen: 256 Farben */ #define BPS4 2 /* 4 Farbebenen: 16 Farben */ #define BPS2 1 /* 2 Farbebenen: 4 Farben */ #define BPS1 0 /* 1 Farbebenen: 2 Farben */
Mit der folgenden Konstante kann die Anzahl der Farbebenen ausmaskiert werden:
#define NUMCOLS 7 /* if (( mode & NUMCOLS ) == 0 ) */ /* puts( "monochrome mode" ); */