/data/eng/settings/autorun.dat |
---|
4,7 → 4,7 |
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait |
# |
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen |
#/SYS/LOADDRV "COM_MOUSE" 1 # serial mouse driver |
#/SYS/LOADDRV "COMMOUSE" 1 # serial mouse driver |
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board |
#/SYS/refrscrn "" 1 # Refresh screen |
/SYS/LOADDRV "RDC" 1 # videodriver for RDC M2010/M2012 |
/data/et/settings/autorun.dat |
---|
4,7 → 4,7 |
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait |
# |
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen |
#/SYS/LOADDRV "COM_MOUSE" 1 # serial mouse driver |
#/SYS/LOADDRV "COMMOUSE" 1 # serial mouse driver |
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board |
#/SYS/refrscrn "" 1 # Refresh screen |
/SYS/LOADDRV "RDC" 1 # videodriver for RDC M2010/M2012 |
/data/it/settings/autorun.dat |
---|
4,7 → 4,7 |
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait |
# |
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen |
#/SYS/LOADDRV "COM_MOUSE" 1 # serial mouse driver |
#/SYS/LOADDRV "COMMOUSE" 1 # serial mouse driver |
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board |
#/SYS/refrscrn "" 1 # Refresh screen |
/SYS/LOADDRV "RDC" 1 # videodriver for RDC M2010/M2012 |
/data/rus/settings/autorun.dat |
---|
4,7 → 4,7 |
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait |
# |
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen |
#/SYS/LOADDRV "COM_MOUSE" 1 # serial mouse driver |
#/SYS/LOADDRV "COMMOUSE" 1 # serial mouse driver |
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board |
#/SYS/refrscrn "" 1 # Refresh screen |
/SYS/LOADDRV "RDC" 1 # videodriver for RDC M2010/M2012 |
/data/sp/settings/autorun.dat |
---|
4,7 → 4,7 |
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait |
# |
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen |
#/SYS/LOADDRV "COM_MOUSE" 1 # serial mouse driver |
#/SYS/LOADDRV "COMMOUSE" 1 # serial mouse driver |
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board |
#/SYS/refrscrn "" 1 # Refresh screen |
/SYS/LOADDRV "RDC" 1 # videodriver for RDC M2010/M2012 |
/drivers/mouse/commouse.asm |
---|
31,6 → 31,9 |
; 2nd byte 0 X5 X4 X3 X2 X1 X0 |
; 3rd byte 0 Y5 Y4 Y3 Y2 Y1 Y0 |
; optional: (logitech extension protocol) |
; 4th byte 0 MB 0 0 0 0 0 |
struct com_mouse_data |
port dw ? |
244,24 → 247,23 |
sub dx, 5 |
in al, dx |
and al, 01111111b ; clear MSB (use 7 bit words) |
test al, 01000000b ; First byte indicator set? |
jnz .FirstByte |
; Check which data byte we are reading |
cmp [esi + com_mouse_data.offset], 2 |
ja .reset |
cmp [esi + com_mouse_data.offset], 1 |
jb .SecondByte |
je .ThirdByte |
jp .SecondByte |
ja .FourthByte |
; read first data byte |
test al, 01000000b ; First byte indicator set? |
jz .reset |
.FirstByte: |
mov [esi + com_mouse_data.data+0], al |
inc [esi + com_mouse_data.offset] |
mov [esi + com_mouse_data.offset], 0 |
jmp .read_loop |
; read second data byte |
.SecondByte: |
test al, 01000000b ; First byte indicator set? |
jnz .reset |
mov [esi + com_mouse_data.data+1], al |
inc [esi + com_mouse_data.offset] |
jmp .read_loop |
268,13 → 270,12 |
; read third data byte |
.ThirdByte: |
test al, 01000000b ; First byte indicator set? |
jnz .reset |
mov [esi + com_mouse_data.data+2], al |
inc [esi + com_mouse_data.offset] |
; Data packet is complete, parse it and set mouse data |
; Buttons |
; Left and Right Buttons |
mov al, [esi + com_mouse_data.data+0] |
mov ah, al |
shr al, 3 ; right mouse button |
303,8 → 304,18 |
invoke SetMouseData, [BTN_DOWN], [MOUSE_X], [MOUSE_Y], 0, 0 |
.reset: |
mov [esi + com_mouse_data.offset], 0 |
pop esi |
mov al, 1 |
ret |
.FourthByte: |
inc [esi + com_mouse_data.offset] |
test al, 00100000b |
jz .end |
or [BTN_DOWN], 100b |
invoke SetMouseData, [BTN_DOWN], [MOUSE_X], [MOUSE_Y], 0, 0 |
.end: |
pop esi |
mov al, 1 |
311,6 → 322,8 |
ret |
; End of code |
data fixups |