Squeezed bytes and cycles out of the kbhit functions for almost all platforms.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4480 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -1,17 +1,23 @@
|
|||||||
;
|
;
|
||||||
; Christian Groessler, 19-Feb-2000
|
; Christian Groessler, 19-Feb-2000
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
.import return1
|
||||||
|
|
||||||
.include "atari.inc"
|
.include "atari.inc"
|
||||||
|
|
||||||
_kbhit:
|
.proc _kbhit
|
||||||
ldx CH ; last pressed key
|
|
||||||
inx ; 255 means "no key"
|
ldx CH ; last pressed key
|
||||||
bne L1
|
inx ; 255 means "no key"
|
||||||
jmp return0
|
bne L1
|
||||||
L1: jmp return1
|
txa ; X = A = 0
|
||||||
|
rts
|
||||||
|
L1: jmp return1
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,25 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 18.08.1998
|
; Ullrich von Bassewitz, 18.08.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
|
|
||||||
.include "c128.inc"
|
.include "c128.inc"
|
||||||
|
|
||||||
_kbhit:
|
|
||||||
|
.proc _kbhit
|
||||||
|
|
||||||
|
ldx #0 ; High byte of return is always zero
|
||||||
lda KEY_COUNT ; Get number of characters
|
lda KEY_COUNT ; Get number of characters
|
||||||
; ora FKEY_COUNT ; Or with number of chars from function keys
|
; ora FKEY_COUNT ; Or with number of chars from function keys
|
||||||
bne L1
|
beq L9
|
||||||
jmp return0
|
lda #1
|
||||||
L1: jmp return1
|
L9: rts
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,25 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 06.08.1998
|
; Ullrich von Bassewitz, 06.08.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
|
|
||||||
.include "plus4.inc"
|
.include "plus4.inc"
|
||||||
|
|
||||||
_kbhit:
|
|
||||||
|
.proc _kbhit
|
||||||
|
|
||||||
|
ldx #0 ; High byte of return is always zero
|
||||||
lda KEY_COUNT ; Get number of characters
|
lda KEY_COUNT ; Get number of characters
|
||||||
ora FKEY_COUNT ; Or with number of chars from function keys
|
ora FKEY_COUNT ; Or with number of chars from function keys
|
||||||
bne L1
|
beq L9
|
||||||
jmp return0
|
lda #1
|
||||||
L1: jmp return1
|
L9: rts
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,23 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 06.08.1998
|
; Ullrich von Bassewitz, 06.08.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
|
|
||||||
.include "c64.inc"
|
.include "c64.inc"
|
||||||
|
|
||||||
_kbhit:
|
|
||||||
|
.proc _kbhit
|
||||||
|
|
||||||
|
ldx #0 ; High byte of return is always zero
|
||||||
lda KEY_COUNT ; Get number of characters
|
lda KEY_COUNT ; Get number of characters
|
||||||
bne L1
|
beq L9
|
||||||
jmp return0
|
lda #1
|
||||||
L1: jmp return1
|
L9: rts
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,24 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 06.08.1998
|
; Ullrich von Bassewitz, 06.08.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
.import keyidx: zp
|
.import keyidx: zp
|
||||||
|
|
||||||
|
|
||||||
.proc _kbhit
|
.proc _kbhit
|
||||||
lda keyidx ; Get number of characters
|
|
||||||
bne L1
|
ldx #0 ; High byte of return is always zero
|
||||||
jmp return0
|
lda keyidx ; Get number of characters
|
||||||
L1: jmp return1
|
beq L9
|
||||||
|
lda #1
|
||||||
|
L9: rts
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,22 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 06.08.1998
|
; Ullrich von Bassewitz, 06.08.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
.import keyidx: zp
|
.import keyidx: zp
|
||||||
|
|
||||||
|
|
||||||
.proc _kbhit
|
.proc _kbhit
|
||||||
lda keyidx ; Get number of characters
|
|
||||||
bne L1
|
ldx #0 ; High byte of return is always zero
|
||||||
jmp return0
|
lda keyidx ; Get number of characters
|
||||||
L1: jmp return1
|
beq L9
|
||||||
|
lda #1
|
||||||
|
L9: rts
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,16 @@
|
|||||||
; unsigned char kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
|
|
||||||
.include "../inc/geossym.inc"
|
.include "../inc/geossym.inc"
|
||||||
|
|
||||||
_kbhit:
|
.proc _kbhit
|
||||||
lda pressFlag
|
|
||||||
bmi L1
|
ldx #0 ; High byte of result
|
||||||
jmp return0
|
lda pressFlag
|
||||||
L1: jmp return1
|
rol ; Bit 7 is new key flag
|
||||||
|
txa ; A = 0
|
||||||
|
rol
|
||||||
|
rts
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
.export _kbhit
|
.export _kbhit
|
||||||
.export KBEDG
|
.export KBEDG
|
||||||
.export KBSTL
|
.export KBSTL
|
||||||
.import return0, return1
|
.import return1
|
||||||
|
|
||||||
; --------------------------------------------------------------------------
|
; --------------------------------------------------------------------------
|
||||||
; The Atari Lynx has a very small keyboard - only 3 keys
|
; The Atari Lynx has a very small keyboard - only 3 keys
|
||||||
@@ -49,7 +49,8 @@ _kbhit:
|
|||||||
sta KBNPR ; inverted previous ones pressed
|
sta KBNPR ; inverted previous ones pressed
|
||||||
stx KBPRV
|
stx KBPRV
|
||||||
lda KBEDG
|
lda KBEDG
|
||||||
beq @L1
|
beq @L1
|
||||||
jmp return1 ; Key hit
|
jmp return1 ; Key hit
|
||||||
@L1:
|
|
||||||
jmp return0 ; No new keys hit
|
@L1: tax ; No new keys hit
|
||||||
|
rts
|
||||||
|
|||||||
@@ -1,20 +1,22 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 26.11.1998
|
; Ullrich von Bassewitz, 26.11.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
|
|
||||||
.include "pet.inc"
|
.include "pet.inc"
|
||||||
|
|
||||||
_kbhit:
|
|
||||||
lda KEY_COUNT ; Get number of characters
|
.proc _kbhit
|
||||||
bne L1
|
|
||||||
jmp return0
|
ldx #0 ; High byte of return is always zero
|
||||||
L1: jmp return1
|
lda KEY_COUNT ; Get number of characters
|
||||||
|
beq L9
|
||||||
|
lda #1
|
||||||
|
L9: rts
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,24 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 06.08.1998
|
; Ullrich von Bassewitz, 06.08.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
|
|
||||||
.include "plus4.inc"
|
.include "plus4.inc"
|
||||||
|
|
||||||
_kbhit:
|
|
||||||
|
.proc _kbhit
|
||||||
|
|
||||||
|
ldx #0 ; High byte of return is always zero
|
||||||
lda KEY_COUNT ; Get number of characters
|
lda KEY_COUNT ; Get number of characters
|
||||||
ora FKEY_COUNT ; Or with number of chars from function keys
|
ora FKEY_COUNT ; Or with number of chars from function keys
|
||||||
bne L1
|
beq L9
|
||||||
jmp return0
|
lda #1
|
||||||
L1: jmp return1
|
L9: rts
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,23 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 06.08.1998
|
; Ullrich von Bassewitz, 06.08.1998
|
||||||
;
|
;
|
||||||
; int kbhit (void);
|
; unsigned char kbhit (void);
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _kbhit
|
.export _kbhit
|
||||||
.import return0, return1
|
|
||||||
|
|
||||||
.include "vic20.inc"
|
.include "vic20.inc"
|
||||||
|
|
||||||
_kbhit:
|
|
||||||
|
.proc _kbhit
|
||||||
|
|
||||||
|
ldx #0 ; High byte of return is always zero
|
||||||
lda KEY_COUNT ; Get number of characters
|
lda KEY_COUNT ; Get number of characters
|
||||||
bne L1
|
beq L9
|
||||||
jmp return0
|
lda #1
|
||||||
L1: jmp return1
|
L9: rts
|
||||||
|
|
||||||
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user