44 lines
707 B
NASM
44 lines
707 B
NASM
; vsync interrupt routine
|
|
|
|
system_vsync_handler:
|
|
add rsp, 4
|
|
push r0
|
|
push r1
|
|
push r2
|
|
push r3
|
|
push r4
|
|
push r5
|
|
push r6
|
|
push r7
|
|
|
|
call mouse_update
|
|
call keyboard_update
|
|
cmp.8 [UPDATE_ICON], 0
|
|
ifnz call icon_update
|
|
; check if monitor should be started
|
|
cmp r0, 0
|
|
ifnz jmp system_vsync_handler_breakpoint
|
|
|
|
pop r7
|
|
pop r6
|
|
pop r5
|
|
pop r4
|
|
pop r3
|
|
pop r2
|
|
pop r1
|
|
pop r0
|
|
reti
|
|
|
|
system_vsync_handler_breakpoint:
|
|
pop r7
|
|
pop r6
|
|
pop r5
|
|
pop r4
|
|
pop r3
|
|
pop r2
|
|
pop r1
|
|
pop r0
|
|
; breakpoint handler expects that there is an extra 4 bytes on the stack
|
|
sub rsp, 4
|
|
jmp system_breakpoint_handler
|