1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;; wait for keypress; return char
11 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
12 ;; don't wait for keypress; return char or carry reset
14 ;; A: key code or trash
16 ;; CARRY: set if key was decoded
21 ld hl,.keytab-1 ; Mascii values
23 ld c,#7F ; 1st half row
26 IN a,(#FE) ; Get half row
30 jr z,.nokey ; No keys pressed
33 inc hl ; Find key within row
35 jr nc,.loop1 ; Wow - No key if carry
36 ld a,(hl) ; Get mazcii value from table
42 ;ret nz ; Back with CARRY if valid key
47 rrc c ; Next row on keyboard (carry=1)
49 ret ; Go back with NO CARRY if no key pressed
51 .keytab: DEFM ' ',31,'MNB',13,'LKJHPOIUY0987612345QWERTASDFG',30,'ZXCV'