From a895e5bd48e88a330a0c2e162e7da8161d4b0521 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Wed, 27 Jan 2016 16:42:06 -0500 Subject: timed_getch now uses hardcoded 300 jiffies, all prompts are 5 sec --- timed_getch.s | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'timed_getch.s') diff --git a/timed_getch.s b/timed_getch.s index 1c5b418..9a0f9a1 100644 --- a/timed_getch.s +++ b/timed_getch.s @@ -25,31 +25,33 @@ _set_jiffy_timer: ; called by jsleep() also. cli rts -; like curses timeout() followed by getch(): sleep until either -; a key is pressed or the timer expires. -; extern int __fastcall__ timed_getch(unsigned int jiffies); +; like curses timeout(5000) followed by getch(): sleep until either +; a key is pressed or the timer expires. returns 0 if no key pressed. +; extern char __fastcall__ timed_getch(void); _timed_getch: + lda #$2c ; $012c jiffies = 5 sec (NTSC) or 6 sec (PAL) + ldx #$01 jsr _set_jiffy_timer -wait4key: +@wait4key: lda CDTMV3 ; has timer counted down to 0? ora CDTMV3+1 - beq done ; yes, return(-1) + beq @done ; yes, return(0) lda CH ; no, check for a keypress ; ...but don't let the capslock or inverse keys count ; as a keypress, here. cmp #$ff ; no key pressed - beq wait4key + beq @wait4key and #$3f ; mask shift/control bits cmp #$3c ; caps-lock - beq wait4key + beq @wait4key cmp #$27 ; inverse (atari) key - beq wait4key + beq @wait4key jmp _agetc ; user hit a key, read it. -done: - lda #$ff ; return -1 +@done: + ;lda #$00 ; return(0), A is already 0 here tax rts -- cgit v1.2.3