;==================================== ; wait for keypress or a few seconds ;==================================== ; SPECIAL CASE ; $FF = wait until sound pattern 1 ; $FE = wait until DONE_PLAYING ; $FD = wait until text done wait_a_bit: cmp #$FF beq wait_a_bit_pattern1 cmp #$FE beq wait_a_bit_end_song wait_a_bit_time: bit KEYRESET tax keyloop: lda #200 ; delay a bit jsr WAIT lda KEYPRESS bmi done_keyloop dex bne keyloop done_keyloop: sta LAST_KEY bit KEYRESET rts ;===================== ; wait for pattern 1 wait_a_bit_pattern1: bit KEYRESET keyloop2: lda current_pattern_smc+1 bne done_keyloop2 lda KEYPRESS bmi done_keyloop2 bpl keyloop2 done_keyloop2: sta LAST_KEY bit KEYRESET rts ;===================== ; wait for song done wait_a_bit_end_song: bit KEYRESET keyloop3: lda DONE_PLAYING bne done_keyloop3 lda KEYPRESS bmi done_keyloop3 bpl keyloop3 done_keyloop3: sta LAST_KEY bit KEYRESET rts