; Waits for all held inputs to be released, then waits the given number of ; [frames] for an inputto be pressed. Set [frames] to 0 or 9999 to wait ; forever. ; void pascal input_wait_for_change(int frames); _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