;
; Christian Groessler, 19-Feb-2000
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
+ .import return1
.include "atari.inc"
-_kbhit:
- ldx CH ; last pressed key
- inx ; 255 means "no key"
- bne L1
- jmp return0
-L1: jmp return1
+.proc _kbhit
+
+ ldx CH ; last pressed key
+ inx ; 255 means "no key"
+ bne L1
+ txa ; X = A = 0
+ rts
+L1: jmp return1
+
+.endproc
+
+
;
; Ullrich von Bassewitz, 18.08.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
.include "c128.inc"
-_kbhit:
+
+.proc _kbhit
+
+ ldx #0 ; High byte of return is always zero
lda KEY_COUNT ; Get number of characters
; ora FKEY_COUNT ; Or with number of chars from function keys
- bne L1
- jmp return0
-L1: jmp return1
+ beq L9
+ lda #1
+L9: rts
+.endproc
+
;
; Ullrich von Bassewitz, 06.08.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
.include "plus4.inc"
-_kbhit:
+
+.proc _kbhit
+
+ ldx #0 ; High byte of return is always zero
lda KEY_COUNT ; Get number of characters
ora FKEY_COUNT ; Or with number of chars from function keys
- bne L1
- jmp return0
-L1: jmp return1
+ beq L9
+ lda #1
+L9: rts
+
+.endproc
+
;
; Ullrich von Bassewitz, 06.08.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
.include "c64.inc"
-_kbhit:
+
+.proc _kbhit
+
+ ldx #0 ; High byte of return is always zero
lda KEY_COUNT ; Get number of characters
- bne L1
- jmp return0
-L1: jmp return1
+ beq L9
+ lda #1
+L9: rts
+.endproc
;
; Ullrich von Bassewitz, 06.08.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
.import keyidx: zp
-.proc _kbhit
- lda keyidx ; Get number of characters
- bne L1
- jmp return0
-L1: jmp return1
-.endproc
+.proc _kbhit
+
+ ldx #0 ; High byte of return is always zero
+ lda keyidx ; Get number of characters
+ beq L9
+ lda #1
+L9: rts
+.endproc
;
; Ullrich von Bassewitz, 06.08.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
.import keyidx: zp
-.proc _kbhit
- lda keyidx ; Get number of characters
- bne L1
- jmp return0
-L1: jmp return1
-.endproc
-
+.proc _kbhit
+ ldx #0 ; High byte of return is always zero
+ lda keyidx ; Get number of characters
+ beq L9
+ lda #1
+L9: rts
+.endproc
; unsigned char kbhit (void);
.export _kbhit
- .import return0, return1
.include "../inc/geossym.inc"
-_kbhit:
- lda pressFlag
- bmi L1
- jmp return0
-L1: jmp return1
+.proc _kbhit
+
+ ldx #0 ; High byte of result
+ lda pressFlag
+ rol ; Bit 7 is new key flag
+ txa ; A = 0
+ rol
+ rts
+
+.endproc
.export _kbhit
.export KBEDG
.export KBSTL
- .import return0, return1
+ .import return1
; --------------------------------------------------------------------------
; The Atari Lynx has a very small keyboard - only 3 keys
sta KBNPR ; inverted previous ones pressed
stx KBPRV
lda KBEDG
- beq @L1
+ beq @L1
jmp return1 ; Key hit
-@L1:
- jmp return0 ; No new keys hit
+
+@L1: tax ; No new keys hit
+ rts
;
; Ullrich von Bassewitz, 26.11.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
.include "pet.inc"
-_kbhit:
- lda KEY_COUNT ; Get number of characters
- bne L1
- jmp return0
-L1: jmp return1
+.proc _kbhit
+ ldx #0 ; High byte of return is always zero
+ lda KEY_COUNT ; Get number of characters
+ beq L9
+ lda #1
+L9: rts
+
+.endproc
;
; Ullrich von Bassewitz, 06.08.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
-
+
.include "plus4.inc"
-_kbhit:
+
+.proc _kbhit
+
+ ldx #0 ; High byte of return is always zero
lda KEY_COUNT ; Get number of characters
ora FKEY_COUNT ; Or with number of chars from function keys
- bne L1
- jmp return0
-L1: jmp return1
+ beq L9
+ lda #1
+L9: rts
+.endproc
;
; Ullrich von Bassewitz, 06.08.1998
;
-; int kbhit (void);
+; unsigned char kbhit (void);
;
.export _kbhit
- .import return0, return1
.include "vic20.inc"
-_kbhit:
+
+.proc _kbhit
+
+ ldx #0 ; High byte of return is always zero
lda KEY_COUNT ; Get number of characters
- bne L1
- jmp return0
-L1: jmp return1
+ beq L9
+ lda #1
+L9: rts
+.endproc