public INPUT_WAIT_FOR_OK_OR_MEASURE input_wait_for_ok_or_measure proc far @@frames = word ptr 6 @@measure = word ptr 8 push bp mov bp, sp cmp _snd_active, 0 jnz short @@get_measure push [bp+@@frames] nopcall input_wait_for_ok pop bp retf 4 ; --------------------------------------------------------------------------- @@get_measure: mov ah, KAJA_GET_SONG_MEASURE cmp _snd_midi_active, 1 jz short @@MIDI_is_active int PMD jmp short @@poll_input ; --------------------------------------------------------------------------- @@MIDI_is_active: mov dx, MMD_TICKS_PER_QUARTER_NOTE * 4 ; yes, hardcoded to 4/4 int MMD @@poll_input: nopcall input_mode_interface test _input_sp.lo, low INPUT_SHOT jnz short @@got_input test _input_sp.hi, high INPUT_OK jz short @@measure_reached @@got_input: mov ax, 1 pop bp retf 4 ; --------------------------------------------------------------------------- @@measure_reached: cmp ax, [bp+@@measure] jb short @@get_measure xor ax, ax pop bp retf 4 input_wait_for_ok_or_measure endp public INPUT_WAIT_FOR_OK input_wait_for_ok proc far @@frames = word ptr 6 push bp mov bp, sp mov vsync_Count1, 0 @@poll_input: nopcall input_mode_interface test _input_sp.lo, low INPUT_SHOT jnz short @@got_input test _input_sp.hi, high INPUT_OK jz short @@frames_reached? @@got_input: mov ax, 1 pop bp retf 2 ; --------------------------------------------------------------------------- @@frames_reached?: mov ax, vsync_Count1 cmp ax, [bp+@@frames] jb short @@poll_input xor ax, ax pop bp retf 2 input_wait_for_ok endp