X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdos%2Fmouse.asm;h=3a68966d8caee2cbab1a36feb9349938a782267b;hb=86aa9bdd85243207bbd7e888d73c2b865d805265;hp=92b4f492aed40ed7662de0d70c30f8dcc244ad4b;hpb=b4512666bb27febff4a3e17d1f1dd06a9f2168a9;p=retroray diff --git a/src/dos/mouse.asm b/src/dos/mouse.asm index 92b4f49..3a68966 100644 --- a/src/dos/mouse.asm +++ b/src/dos/mouse.asm @@ -9,6 +9,7 @@ WRITE equ 4 PIXRATE equ 15 XLIM equ 7 YLIM equ 8 +READREL equ 0xb PUSHA_EAX_OFFS equ 28 PUSHA_ECX_OFFS equ 24 @@ -61,6 +62,19 @@ _show_mouse: pop ebp ret +; int read_mouse_bn(void) + global read_mouse_bn_ + global _read_mouse_bn +read_mouse_bn_: +_read_mouse_bn: + pusha + mov ax, READ + int 0x33 + xor eax, eax + mov ax, bx + popa + ret + ; int read_mouse(int *xp, int *yp) global read_mouse_ read_mouse_: @@ -102,6 +116,42 @@ _read_mouse: pop ebp ret +; void read_mouse_rel(int *xp, int *yp) + global read_mouse_rel_ +read_mouse_rel_: + pusha + mov esi, eax ; xp + mov edi, edx ; yp + mov ax, READREL + int 0x33 + movsx eax, cx + mov [esi], eax + movsx eax, dx + mov [edi], eax + popa + ret + + global _read_mouse_rel +_read_mouse_rel: + push ebp + mov ebp, esp + push ebx + push esi + push edi + mov ax, READREL + int 0x33 + mov ebx, [ebp + 8] + movsx eax, cx + mov [ebx], eax + mov ebx, [ebp + 12] + movsx eax, dx + mov [ebx], eax + pop edi + pop esi + pop ebx + pop ebp + ret + ; void set_mouse(int x, int y) global set_mouse_ set_mouse_: