Slow down cursor speed
This commit is contained in:
parent
0692c75eab
commit
2805ae856b
41
ponydos.asm
41
ponydos.asm
|
@ -71,43 +71,33 @@ initialize_screen:
|
||||||
rep stosw
|
rep stosw
|
||||||
|
|
||||||
; Disable text cursor
|
; Disable text cursor
|
||||||
mov dx, 0x3d4
|
mov ah, 0x01
|
||||||
mov al, 0xa
|
mov ch, 0x20
|
||||||
out dx, al
|
int 0x10
|
||||||
inc dx
|
|
||||||
mov al, 0x20
|
|
||||||
out dx, al
|
|
||||||
|
|
||||||
xor ax, ax
|
|
||||||
call flip_mouse_cursor
|
call flip_mouse_cursor
|
||||||
|
|
||||||
mainloop:
|
mainloop:
|
||||||
mov bx, [mouse_x]
|
mov bx, [mouse_x]
|
||||||
|
shr bx, 1
|
||||||
mov cx, [mouse_y]
|
mov cx, [mouse_y]
|
||||||
cmp [mouse_x_old], bx
|
shr cx, 1
|
||||||
|
shr cx, 1
|
||||||
|
cmp [mouse_column], bl
|
||||||
jne .update_cursor
|
jne .update_cursor
|
||||||
cmp [mouse_y_old], cx
|
cmp [mouse_row], cl
|
||||||
jne .update_cursor
|
jne .update_cursor
|
||||||
|
|
||||||
hlt
|
hlt
|
||||||
jmp mainloop
|
jmp mainloop
|
||||||
|
|
||||||
.update_cursor:
|
.update_cursor:
|
||||||
mov ah, [mouse_x_old]
|
|
||||||
mov al, [mouse_y_old]
|
|
||||||
call flip_mouse_cursor
|
call flip_mouse_cursor
|
||||||
mov ah, [mouse_x]
|
mov [mouse_column], bl
|
||||||
mov al, [mouse_y]
|
mov [mouse_row], cl
|
||||||
call flip_mouse_cursor
|
call flip_mouse_cursor
|
||||||
|
|
||||||
mov [mouse_x_old], bx
|
|
||||||
mov [mouse_y_old], cx
|
|
||||||
|
|
||||||
jmp mainloop
|
jmp mainloop
|
||||||
|
|
||||||
; in:
|
|
||||||
; ah = column
|
|
||||||
; al = row
|
|
||||||
flip_mouse_cursor:
|
flip_mouse_cursor:
|
||||||
push ax
|
push ax
|
||||||
push bx
|
push bx
|
||||||
|
@ -119,10 +109,11 @@ flip_mouse_cursor:
|
||||||
|
|
||||||
; Column
|
; Column
|
||||||
xor bh, bh
|
xor bh, bh
|
||||||
mov bl, ah
|
mov bl, [mouse_column]
|
||||||
shl bx, 1
|
shl bx, 1
|
||||||
|
|
||||||
; Row
|
; Row
|
||||||
|
mov al, [mouse_row]
|
||||||
mov cl, COLUMNS*2
|
mov cl, COLUMNS*2
|
||||||
mul cl
|
mul cl
|
||||||
add bx, ax
|
add bx, ax
|
||||||
|
@ -146,8 +137,8 @@ Y_NEGATIVE equ 0x20
|
||||||
X_NEGATIVE equ 0x10
|
X_NEGATIVE equ 0x10
|
||||||
BUTTONS equ 0x03
|
BUTTONS equ 0x03
|
||||||
|
|
||||||
X_MAX_VALUE equ COLUMNS-1
|
X_MAX_VALUE equ 2*COLUMNS-1
|
||||||
Y_MAX_VALUE equ ROWS-1
|
Y_MAX_VALUE equ 4*ROWS-1
|
||||||
|
|
||||||
mouse_handler:
|
mouse_handler:
|
||||||
push ax
|
push ax
|
||||||
|
@ -254,7 +245,7 @@ mouse_x resw 1
|
||||||
mouse_y resw 1
|
mouse_y resw 1
|
||||||
mouse_buttons resb 1
|
mouse_buttons resb 1
|
||||||
|
|
||||||
mouse_x_old resw 1
|
mouse_column resb 1
|
||||||
mouse_y_old resw 1
|
mouse_row resw 1
|
||||||
|
|
||||||
_bss_end:
|
_bss_end:
|
||||||
|
|
Loading…
Reference in New Issue