|
|
073ecbe |
From 78d660da5571f29605dfdafe359527bf3c102823 Mon Sep 17 00:00:00 2001
|
|
|
073ecbe |
From: Fabrizio Caruso <fabrizio_caruso@hotmail.com>
|
|
|
073ecbe |
Date: Wed, 30 Oct 2019 09:14:17 +0100
|
|
|
a4f04fe |
Subject: [PATCH 084/170] kbhit checks KBEDG and getc resets KBEDG
|
|
|
073ecbe |
|
|
|
073ecbe |
---
|
|
|
073ecbe |
libsrc/lynx/cgetc.s | 16 ++++++++++------
|
|
|
073ecbe |
libsrc/lynx/kbhit.s | 4 +++-
|
|
|
073ecbe |
2 files changed, 13 insertions(+), 7 deletions(-)
|
|
|
073ecbe |
|
|
|
073ecbe |
diff --git a/libsrc/lynx/cgetc.s b/libsrc/lynx/cgetc.s
|
|
|
073ecbe |
index 17943e2d..368a0e8d 100644
|
|
|
073ecbe |
--- a/libsrc/lynx/cgetc.s
|
|
|
073ecbe |
+++ b/libsrc/lynx/cgetc.s
|
|
|
073ecbe |
@@ -20,6 +20,7 @@
|
|
|
073ecbe |
; So the keyboard returns '1', '2', '3', 'P', 'R', 'F' or '?'.
|
|
|
073ecbe |
|
|
|
073ecbe |
_cgetc:
|
|
|
073ecbe |
+ lda KBEDG
|
|
|
073ecbe |
bne _start
|
|
|
073ecbe |
jsr _kbhit ; Check for char available
|
|
|
073ecbe |
beq _cgetc
|
|
|
073ecbe |
@@ -39,19 +40,19 @@ _start:
|
|
|
073ecbe |
bit #$08
|
|
|
073ecbe |
beq @L4 ; Pause + Opt 2 = Flip
|
|
|
073ecbe |
lda #'?' ; All buttons pressed
|
|
|
073ecbe |
- rts
|
|
|
073ecbe |
+ bra reset_and_exit
|
|
|
073ecbe |
@L2:
|
|
|
073ecbe |
lda KBSTL ; Pause alone was the last placed button
|
|
|
073ecbe |
and #$0c
|
|
|
073ecbe |
bne @L1
|
|
|
073ecbe |
lda #'P' ; Pause pressed
|
|
|
073ecbe |
- rts
|
|
|
073ecbe |
+ bra reset_and_exit
|
|
|
073ecbe |
@L3:
|
|
|
073ecbe |
lda #'R' ; Reset pressed
|
|
|
073ecbe |
- rts
|
|
|
073ecbe |
+ bra reset_and_exit
|
|
|
073ecbe |
@L4:
|
|
|
073ecbe |
lda #'F' ; Flip pressed
|
|
|
073ecbe |
- rts
|
|
|
073ecbe |
+ bra reset_and_exit
|
|
|
073ecbe |
@L5:
|
|
|
073ecbe |
lda KBEDG ; No Pause pressed
|
|
|
073ecbe |
stz KBEDG
|
|
|
073ecbe |
@@ -61,10 +62,13 @@ _start:
|
|
|
073ecbe |
bit #$04
|
|
|
073ecbe |
beq @L6
|
|
|
073ecbe |
lda #'3' ; opt 1 + opt 2 pressed
|
|
|
073ecbe |
- rts
|
|
|
073ecbe |
+ bra reset_and_exit
|
|
|
073ecbe |
@L6:
|
|
|
073ecbe |
lda #'1' ; opt 1 pressed
|
|
|
073ecbe |
- rts
|
|
|
073ecbe |
+ bra reset_and_exit
|
|
|
073ecbe |
@L7:
|
|
|
073ecbe |
lda #'2' ; opt 2 pressed
|
|
|
073ecbe |
+
|
|
|
073ecbe |
+reset_and_exit:
|
|
|
073ecbe |
+ stz KBEDG
|
|
|
073ecbe |
rts
|
|
|
073ecbe |
diff --git a/libsrc/lynx/kbhit.s b/libsrc/lynx/kbhit.s
|
|
|
073ecbe |
index a5126a7d..a846c43e 100644
|
|
|
073ecbe |
--- a/libsrc/lynx/kbhit.s
|
|
|
073ecbe |
+++ b/libsrc/lynx/kbhit.s
|
|
|
073ecbe |
@@ -29,6 +29,8 @@ KBNPR: .byte 0
|
|
|
073ecbe |
|
|
|
073ecbe |
.code
|
|
|
073ecbe |
_kbhit:
|
|
|
073ecbe |
+ lda KBEDG
|
|
|
073ecbe |
+ bne L1
|
|
|
073ecbe |
lda $FCB0 ; Read the Opt buttons
|
|
|
073ecbe |
and #$0c
|
|
|
073ecbe |
sta KBTMP
|
|
|
073ecbe |
@@ -49,6 +51,6 @@ _kbhit:
|
|
|
073ecbe |
sta KBNPR ; inverted previous ones pressed
|
|
|
073ecbe |
stx KBPRV
|
|
|
073ecbe |
lda KBEDG
|
|
|
073ecbe |
-@L1: tax ; No new keys hit
|
|
|
073ecbe |
+L1: ldx #$00
|
|
|
073ecbe |
rts
|
|
|
073ecbe |
|
|
|
073ecbe |
--
|
|
|
a4f04fe |
2.26.0
|
|
|
073ecbe |
|