Slow down cursor speed

This commit is contained in:
Juhani Krekelä 2023-02-06 18:02:21 +02:00
parent 0692c75eab
commit 2805ae856b
1 changed files with 16 additions and 25 deletions

View File

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