dos33fsprogs/games/mist/wait_a_bit.s

73 lines
967 B
ArmAsm
Raw Permalink Normal View History

2020-12-14 00:49:00 +00:00
;====================================
; wait for keypress or a few seconds
;====================================
2021-09-23 01:53:43 +00:00
; SPECIAL CASE
; $FF = wait until sound pattern 1
; $FE = wait until DONE_PLAYING
; $FD = wait until text done
2020-12-14 00:49:00 +00:00
wait_a_bit:
2021-09-23 01:53:43 +00:00
cmp #$FF
beq wait_a_bit_pattern1
cmp #$FE
beq wait_a_bit_end_song
wait_a_bit_time:
2020-12-14 00:49:00 +00:00
bit KEYRESET
tax
keyloop:
lda #200 ; delay a bit
jsr WAIT
lda KEYPRESS
bmi done_keyloop
dex
bne keyloop
done_keyloop:
2021-09-23 01:53:43 +00:00
; 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
2020-12-14 00:49:00 +00:00
bit KEYRESET
rts
2021-09-23 01:53:43 +00:00
;=====================
; 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