oDOSseus hat geschrieben:Hat hier jemand eine Idee, wie man den Mouse-button status abfragt, ohne dass der buffer geleert wird?
Bin jetzt 6 tage weg, also könnt ihr euch mit der antwort zeit lassen.
Nach einer Abfrage empfielt es sich die Werte z.B. im Datenbereich zu retten, so das man jederzeit darauf zugreifen kann.
Aber was genau fragst du ab, es gibt ja verschiedene Abfragen?
[RBIL->inter61c.zip->INTERRUP.N]
--------
M-330003-----------------------------
INT 33 - MS MOUSE v1.0+ - RETURN POSITION AND BUTTON STATUS
AX = 0003h
Return: BX = button status (see
#03168)
CX = column
DX = row
Note: in text modes, all coordinates are specified as multiples of the cell
size, typically 8x8 pixels
SeeAlso: AX=0004h,AX=000Bh,INT 2F/AX=D000h"ZWmous"
Table 03168
Bitfields for mouse button status:
Bit(s) Description
0 left button pressed if 1
1 right button pressed if 1
2 middle button pressed if 1 (Mouse Systems/Logitech/Genius)
--------
M-330005-----------------------------
INT 33 - MS MOUSE v1.0+ - RETURN BUTTON PRESS DATA
AX = 0005h
BX = button number (see
#03169)
Return: AX = button states (see
#03168)
BX = number of times specified button has been pressed since last call
CX = column at time specified button was last pressed
DX = row at time specified button was last pressed
Note: at least for the Genius mouse driver, the number of button presses
returned is limited to 7FFFh
SeeAlso: AX=0006h,INT 62/AX=007Ch
Table 03169
Values for mouse button number:
0000h left
0001h right
0002h middle (Mouse Systems/Logitech/Genius mouse)
--------
M-330006-----------------------------
INT 33 - MS MOUSE v1.0+ - RETURN BUTTON RELEASE DATA
AX = 0006h
BX = button number (see
#03169)
Return: AX = button states (see
#03168)
BX = number of times specified button has been released since last call
CX = column at time specified button was last released
DX = row at time specified button was last released
Note: at least for the Genius mouse driver, the number of button releases
returned is limited to 7FFFh
SeeAlso: AX=0005h,INT 62/AX=007Ch
Dirk