2 ; unsigned char kbhit (void);
9 lda #%11111110 ; Select first keyboard row
11 sta KBD ; Select keyboard row
13 lda KBD ; Read keyboard columns
14 ora #$01 ; Mask out lsb (Shift Lock), since we ignore it
15 cmp #$FF ; No keys pressed?
18 sec ; Want to shift in ones
19 rol a ; Rotate row select to next bit position
21 bne scan ; If not, continue
22 lda #$00 ; Return false
23 tax ; High byte of return is also zero
24 sta CHARBUF ; No character in buffer
27 jsr INPUTC ; Get input character in A
28 sta CHARBUF ; Save in buffer
29 ldx #$00 ; High byte of return is always zero
30 lda #$01 ; Return true