ReC98/th03/hardware/input_wait.asm

47 lines
670 B
NASM
Raw Normal View History

public INPUT_WAIT_FOR_CHANGE
input_wait_for_change proc far
@@frames = word ptr 6
push bp
mov bp, sp
push si
push di
mov si, [bp+@@frames]
xor di, di
@@release_loop:
call input_mode_interface
cmp _input_sp, INPUT_NONE
jz short @@forever?
push 1
nopcall frame_delay
jmp short @@release_loop
@@forever?:
or si, si
jnz short @@longer?
mov si, 9999
jmp short @@longer?
@@press_loop:
call input_mode_interface
cmp _input_sp, INPUT_NONE
jnz short @@ret
inc di
push 1
nopcall frame_delay
cmp si, 9999
jnz short @@longer?
xor di, di
@@longer?:
cmp di, si
jl short @@press_loop
@@ret:
pop di
pop si
pop bp
retf 2
input_wait_for_change endp