Slow down cursor speed
This commit is contained in:
parent
0692c75eab
commit
2805ae856b
1 changed files with 16 additions and 25 deletions
41
ponydos.asm
41
ponydos.asm
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue