Die Eingabefunktionen ermöglichen es einem Programm, unter
Berücksichtigung der Eingabemodi, Tastatur und Maus abzufragen.
Außerdem bieten sie Routinen zum einklinken in Timer- und
Maus-Interrupts. Es stehen die folgenden Funktionen zur Verfügung:
• v_hide_c |
Grafikcursor abschalten.
|
• v_show_c |
Grafikcursor darstellen.
|
• vex_butv |
Serviceroutine für Maustasteninterrupt verlegen.
|
• vex_curv |
Mauszeiger selbst zeichnen.
|
• vex_motv |
Serviceroutine für Mausbewegungsinterrupt verlegen.
|
• vex_timv |
Serviceroutine des Timerinterrupts verlegen.
|
• vex_wheelv |
Serviceroutine für Mausradereignisse.
|
• vq_key_s |
Tastaturstatus abfragen.
|
• vq_mouse |
Position des Grafikcursors ermitteln.
|
• vrq_choice |
Tastendruck abwarten (REQUEST).
|
• vrq_locator |
Position des Grafikcursor ermitteln (REQUEST).
|
• vrq_string |
String von Tastatur einlesen (REQUEST).
|
• vrq_valuator |
Überwachung von Eingabegeräten (REQUEST).
|
• vsc_form |
Grafikcursor definieren.
|
• vsin_mode |
Umschalten zwischen REQUEST- und SAMPLE-Modus.
|
• vsm_choice |
Ermittelt die zuletzt gedrückte Taste (SAMPLE).
|
• vsm_locator |
Position des Grafikcursor ermitteln (SAMPLE).
|
• vsm_string |
String von Tastatur einlesen (SAMPLE).
|
• vsm_valuator |
Ermittlung des Status von Eingabegeräten (SAMPLE).
|
Name: |
»Exchange Cursor Change Vector« - stellt den Interruptvector
für Cursorbewegungen um.
|
VDI-Nummer: |
127
|
Deklaration: |
void vex_curv ( int16_t handle, int16_t (*pusrcode)(), int16_t
(**psavcode)() );
|
Beschreibung: |
Die Funktion erlaubt es, eine eigene Routine in den
Cursor-Change-Vektor zu hängen. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
pusrcode |
Adresse der neuen Routine
|
psavcode |
Adresse der alten Routine
|
Der Aufruf dieser Routine erfolgt, nachdem die über vex_motv
eingetragene Routine aufgerufen und die Mauszeiger-Koordinaten, die
man in d0.w und d1.w erhält, geclippt wurden. Alle veränderten
Register müssen wiederhergestellt werden. Anschließend sollte die
alte Routine aufgerufen werden.
Hinweis: Die Eingabefunktionen des VDI arbeiten nur auf
der physikalischen Workstation, die im Normalfall von den AES
benutzt wird.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all screen drivers.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vex_timv vex_butv vex_motv
|
Name: |
»Exchange Timer Interrupt Vector« - stellt den
Interruptvektor für den Zeitgeber um.
|
VDI-Nummer: |
118
|
Deklaration: |
void vex_timv ( int16_t handle, int16_t (*tim_addr)(), int16_t
(**otim_addr)(), int16_t *tim_conv );
|
Beschreibung: |
Die Funktion ermöglicht es, eine eigene Routine in den
Timer-Interrupt zu hängen. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
tim_addr |
Adresse der neuen Routine
|
otim_addr |
Adresse der alten Routine
|
tim_conv |
Intervall des Interrupts (msec).
|
Die neue Routine muß an ihrem Ende alle veränderten Register
restaurieren und die alte Timerinterrupt-Routine anspringen.
Hinweis: Die Eingabefunktionen des VDI arbeiten nur auf
der physikalischen Workstation, die im Normalfall von den AES
benutzt wird.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Supported by all screen drivers.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vex_butv vex_motv vex_curv
|
Name: |
»Exchange wheel interrupt vector« - stellt den
Interruptvektor für die Mausradbewegung um.
|
VDI-Nummer: |
134
|
Deklaration: |
void vex_wheelv ( int16_t handle, void *new, void **old );
|
Beschreibung: |
The call vex_wheelv installs a routine which is called by the
VDI every time a mouse wheel event occurs. d0.w contain the
wheel_number, d1.w contain the wheel_amount of the wheel from the
mouse. The subroutine must save and restore modified registers and
call the old interrupt routine.
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
new |
Adresse der neuen Routine
|
old |
Adresse der alten Routine
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Seit dem MilanTOS 4.08 Release 5.10.2002, not yet documented,
internals may still change.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vex_butv vex_motv vex_curv vex_timv
|
Name: |
»Input Choice, Request Mode« - liefert den Status der
Funktionstasten, wenn eine gedrückt wurde.
|
VDI-Nummer: |
30
|
Deklaration: |
void vrq_choice ( int16_t handle, int16_t ch_in, int16_t
*ch_out );
|
Beschreibung: |
Die Funktion ermittelt die Betätigung einer Auswahltaste (z.B.
Funktionstaste). Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
ch_in |
initialisierende Auswahltaste
|
ch_out |
ausgewählte Taste bzw. Codenummer
|
Die Anzahl der Funktionstasten ist abhängig vom jeweiligen
Gerät. Falls eine andere Taste gedrückt wird, wird die entsprechende
Codenummer zurückgeliefert.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Die Funktion ist zwar im ROM implementiert, scheint aber in
keiner Weise zu funktionieren. Die Funktion wird nicht von
allen Gerätetreibern unterstützt.
Die Eingabefunktionen des VDI arbeiten nur auf der
physikalischen Workstation, die im Normalfall von den AES
benutzt wird.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vsm_choice vsin_mode
|
Name: |
»Input Locator, Request Mode« - ermittel die Mausposition,
wenn eine Taste gedrückt wurde.
|
VDI-Nummer: |
28
|
Deklaration: |
void vrq_locator ( int16_t handle, int16_t x, int16_t y,
int16_t *xout, int16_t *yout, int16_t *term );
|
Beschreibung: |
Die Funktion ermittelt bzw. setzt die Position des
Grafik-Cursors. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
x |
x-Koordinate
|
y |
y-Koordinate des Grafikcursors
|
xout |
x-Koordinate
|
yout |
y-Koordinate des Grafikcursors bei der Rückgabe
|
term |
im Low-Byte wird der Code der Abbruch-Taste eingetragen. Dies
ist normalerweise der ASCII-Code. Spezielle Werte wie z.B. die
Maustasten erhalten jedoch Werte ab 32 und können so nicht direkt von
Tasten der Tastatur unterschieden werden.
|
Das Ergebnis erhält der Benutzer erst, wenn eine Taste
gedrückt wird. Der Grafikcursor wird stets an der angegebenen
Position in der aktuellen Form auf dem Bildschirm sichtbar. Zu
beachten ist, daß jede beliebige Taste (also auch die Maustasten)
gedrückt werden darf.
Normalerweise erfolgt eine Bewegung des Grafikcursors in großen
Schritten, wenn die Cursortasten gedrückt werden, bzw. in kleinen
Schritten, wenn diese in Verbindung mit der Shift-Taste gedrückt
werden. Auf dem Atari wird jedoch zusätzlich die Alternate-Taste
benötigt.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Die Funktion wird nicht von allen Gerätetreibern unterstützt.
Die Eingabefunktionen des VDI arbeiten nur auf der
physikalischen Workstation, die im Normalfall von den AES
benutzt wird.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vsm_locator vsin_mode
|
Name: |
»Input String, Request Mode« - liest einen String im
REQUEST-Modus ein.
|
VDI-Nummer: |
31
|
Deklaration: |
void vrq_string ( int16_t handle, int16_t max_length, int16_t
echo_mode, int16_t *echo_xy, int8_t *string );
|
Beschreibung: |
Die Funktion liest einen String von der Tastatur ein, wobei
optional ein Echo auf dem Bildschirm erfolgen kann. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
max_length |
maximale Länge des Strings
|
echo_mode |
Modus
0 = |
kein Echo
|
1 = |
Echo benutzen
|
|
echo_xy[0] |
x-Koordinate
|
echo_xy[1] |
y-Koordinate für den Startpunkt der Echoausgabe
|
string |
Adresse der Zeichenkette
|
Die Echoausgabe ist nicht auf allen Geräten verfübar; im Falle
eines Echos werden die Text-Attribute jedoch berücksichtigt.
Ist max_length negativ, so wird der Absolutbetrag als
Länge betrachtet, und statt der ASCII-Codes werden Scan-Codes
übergeben.
Hinweis: Die Eingabefunktionen des VDI arbeiten nur auf
der physikalischen Workstation, die im Normalfall von den AES
benutzt wird.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
This call is not guaranteed to be available with any driver and
its use should therefore be restricted.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vswr_mode vs_color vst_alignment vst_height
vst_point vst_rotation vst_font vst_color vst_effects
vsm_string
|
Name: |
»Input Valuator, Request Mode« - stellt Wertveränderungen im
REQUEST-Modus fest.
|
VDI-Nummer: |
29
|
Deklaration: |
void vrq_valuator ( int16_t handle, int16_t valuator_in,
int16_t *valuator_out, int16_t *terminator );
|
Beschreibung: |
Die Funktion ermittelt eine Wertveränderung, die sich aus
verschiedenen Tastenbetätigungen ergibt. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
valuator_in |
Anfangswert
|
valuator_out |
Ausgabewert
|
terminator |
betätigte Taste
|
Es werden immer Werte zwischen 1 und 100 zurückgegeben.
Typische Tasten für Wertveränderung sind Cursor-hoch bzw.
Cursor-runter. Hier erhält man folgende Wertveränderung zum jeweils
aktuellen Wert:
Tastendruck |
Wert |
Cursor hoch |
+ 10 |
Cursor runter |
- 10 |
Shift + Cursor hoch |
+ 01 |
Shift + Cursor runter |
- 01 |
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Die Funktion wird nicht von allen Gerätetreibern (auch
nicht dem im ROM) unterstützt. Die Eingabefunktionen des VDI arbeiten
nur auf der physikalischen Workstation, die im Normalfall von
den AES benutzt wird.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vsm_valuator vsin_mode
|
Name: |
»Input choice, Sample Mode« - ermittelt welche Funktionstaste
zuletzt gedrückt wurde.
|
VDI-Nummer: |
30
|
Deklaration: |
int16_t vsm_choice ( int16_t handle, int16_t *choice );
|
Beschreibung: |
Die Funktion ermittelt die Nummer der zuletzt betätigten
Auswahltaste. Es gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
choice |
betätigte Auswahltaste oder 0, falls keine solche gedrückt
worden ist
|
Die Anzahl der Funktionstasten ist vom jeweiligen Gerät
abhängig. Falls eine andere Taste betätigt worden ist, wird die
zugehörige Codenummer zurückgeliefert.
|
Ergebnis: |
Die Funktion liefert den Auswahlstatus (0 = keine Taste
betätigt, 1 = Taste betätigt) zurück.
|
Verfügbar: |
Die Funktion ist zwar im ROM implementiert, scheint aber nicht
richtig zu funktionieren. Die Funktion wird nicht von allen
Gerätetreibern unterstützt. Die Eingabefunktionen des VDI arbeiten
nur auf der physikalischen Workstation, die im Normalfall von
den AES benutzt wird.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vrq_choice vsin_mode
|
Name: |
»Input Locator, Sample Mode« - bestimmt die Position des
Grafikcursors.
|
VDI-Nummer: |
28
|
Deklaration: |
int16_t vsm_locator ( int16_t handle, int16_t x, int16_t y,
int16_t *xout, int16_t *yout, int16_t *term );
|
Beschreibung: |
Die Funktion setzt bzw. ermittelt die Position des
Grafikcursors. Es gilt:
Position |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
x |
x-Koordinate
|
y |
y-Koordinate des Grafikcursors
|
xout |
x-Koordinate
|
yout |
y-Koordinate des Grafikcursors bei Rückgabe
|
term |
im Low-Byte wird der Code der Abbruch-Taste eingegeben.
Spezielle Tasten (Maustasten etc.) erhalten Werte ab 32 aufwärts, und
können daher nicht direkt von Tasten der Tastatur unterschieden
werden.
|
Der Grafikcursor wird durch diese Funktion nicht
sichtbar; Tastenbetätigungen oder Cursorbewegungen werden nur dann
gemeldet, wenn diese tatsächlich erfolgt sind.
Hinweis: Die Eingabefunktionen des VDI arbeiten nur auf
der physikalischen Workstation, die im Normalfall von den AES
benutzt wird.
|
Ergebnis: |
Die Funktion liefert kodiert Informationen darüber, ob sich
die Position verändert hat (Bit 0 gesetzt) und ob eine Taste
gedrückt wurde (Bit 1 gesetzt).
|
Verfügbar: |
Die Funktion wird nicht von allen Gerätetreibern unterstützt.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vrq_locator vsin_mode
|
Name: |
»Input String, Sample Mode« - liest einen String im
SAMPLE-Modus ein.
|
VDI-Nummer: |
31
|
Deklaration: |
int16_t vsm_string ( int16_t handle, int16_t max_length,
int16_t echo_mode, int16_t *echo_xy, int8_t *string );
|
Beschreibung: |
Die Funktion gibt einen String von der Tastatur zurück. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
max_length |
maximale Länge des Strings
|
echo_mode |
Modus
0 = |
kein Echo
|
1 = |
Echo benutzen
|
|
echo_xy[0] |
x-Koordinate
|
echo_xy[1] |
y-Koordinate für den Startpunkt der Echoausgabe
|
string |
Adresse der Zeichenkette
|
Die Echoausgabe ist nicht auf allen Geräten verfübar; im Falle
eines Echos werden die Text-Attribute jedoch berücksichtigt.
Ist max_length negativ, so wird der Absolut-Betrag als
Länge benutzt und statt der ASCII-Codes werden Scan-Codes übergeben.
Die Eingabe der Zeichenkette wird abgebrochen durch:
- Return
- erreichen der maximalen Eingabelänge
- nicht verfügbare Datenwerte
Falls die Zeichenkette grundsätzlich mit Return abgeschlossen
werden soll, ist der Request-Modus per vrq_string zu wählen.
Hinweis: Die Eingabefunktionen des VDI arbeiten nur auf
der physikalischen Workstation, die im Normalfall von den AES
benutzt wird.
|
Ergebnis: |
Die Funktion liefert entweder die Anzahl der gelesen Zeichen
oder Null, falls die Eingabe durch eine ungültige Taste abgebrochen
wurde. Der eingegebene Text steht in string.
|
Verfügbar: |
Die Funktion wird nicht von allen Gerätetreibern unterstützt.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vswr_mode vs_color vst_alignment vst_height
vst_point vst_rotation vst_font vst_color vst_effects
vrq_string
|
Name: |
»Input Valuator, Sample Mode« - stellt Wertveränderungen im
SAMPLE-Modus fest.
|
VDI-Nummer: |
29
|
Deklaration: |
void vsm_valuator ( int16_t handle, int16_t val_in, int16_t
*val_out, int16_t *term, int16_t *status );
|
Beschreibung: |
Die Funktion ermittelt Wertveränderungen im Sample-Modus. Es
gilt:
Parameter |
Bedeutung
|
|
|
handle |
Kennung der Workstation
|
val_in |
Anfangswert
|
val_out |
Ausgabewert
|
term |
ASCII-Code der gedrückten Taste
|
status |
Auswertung
0 = |
keine Veränderung
|
1 = |
Wert verändert
|
2 = |
Taste betätigt
|
|
Es werden Werte zwischen 1 und 100 zurückgegeben, falls ein
entsprechendes Ereignis aufgetreten ist; anderenfalls wird kein Wert
zurückgeliefert.
Hinweis: Die Funktion wird nicht von allen
Gerätetreibern (auch nicht dem im ROM) unterstützt. Die
Eingabefunktionen des VDI arbeiten nur auf der physikalischen
Workstation, die im Normalfall von den AES benutzt wird.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis.
|
Verfügbar: |
Die Funktion wird nicht von allen Gerätetreibern unterstützt.
|
Gruppe: |
Eingabefunktionen
|
Querverweis: |
Binding vrq_valuator vsin_mode
|