@@ -3,5 +3,90 @@ keyboard_test:
33 fdb start@
44 fcz "KEYBOARD TEST"
55start @:
6+ lbsr cls
7+ ldx #kb_title
8+ ldy #$0208
9+ lbsr print_string
10+ ldx #$0284
11+ lda hwflag
12+ anda #dragon_f
13+ bne dragon @
14+ ldy #cmatrix
15+ bra l0 @
16+ dragon @:
17+ ldy #dmatrix
18+ l0 @:
19+ ldb #8
20+ l1 @:
21+ lda ,y+
22+ ora #$40
23+ sta ,x
24+ leax 3 ,x
25+ decb
26+ bne l1 @
27+ leax 8 ,x
28+ cmpx #$0384
29+ blt l0 @
30+
31+ main @:
32+ lda #$fe
33+ ldx #$0284
34+ l0 @:
35+ ldb #$08
36+ stb TEMP
37+ sta KB_COL
38+ ldb KB_ROW
39+ l1 @:
40+ lsrb
41+ stb TEMP+1
42+ bcc skip @
43+ ldb ,x
44+ orb #$40
45+ bra cont @
46+ skip @:
47+ ldb ,x
48+ andb #$bf
49+ cont @:
50+ stb ,x
51+ ldb TEMP+1
52+ leax 32 ,x
53+ dec TEMP
54+ bne l1 @
55+ leax -253 ,x
56+ orcc #$01
57+ rola
58+ cmpa #$ff
59+ bne l0 @
60+ lda #$7f
61+ sta KB_COL
62+ lda KB_ROW
63+ cmpa #$bf ; shift
64+ bne main @
65+ lda #$fb
66+ sta KB_COL
67+ lda KB_ROW
68+ cmpa #$bf ; escape
69+ bne main @
670 rts
771
72+ kb_title:
73+ fcz "SHIFT+ESC TO END"
74+ cmatrix:
75+ fcb '@' ,'A' ,'B' ,'C' ,'D' ,'E' ,'F' ,'G'
76+ fcb 'H' ,'I' ,'J' ,'K' ,'L' ,'M' ,'N' ,'O'
77+ fcb 'P' ,'Q' ,'R' ,'S' ,'T' ,'U' ,'V' ,'W'
78+ fcb 'X' ,'Y' ,'Z' ,'^' ,'V' ,'<' ,'>' ,$ff
79+ fcb '0' ,'1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7'
80+ fcb '8' ,'9' ,':' ,';' ,'<' ,'-' ,'>' ,'/'
81+ fcb 'E' ,'C' ,'E' ,'A' ,'C' ,'1' ,'2' ,'S'
82+ fcb 'J' ,'J' ,'J' ,'J' ,'J' ,'J' ,'J' ,'J'
83+ dmatrix:
84+ fcb '0' ,'1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7'
85+ fcb '8' ,'9' ,':' ,';' ,'<' ,'-' ,'>' ,'/'
86+ fcb '@' ,'A' ,'B' ,'C' ,'D' ,'E' ,'F' ,'G'
87+ fcb 'H' ,'I' ,'J' ,'K' ,'L' ,'M' ,'N' ,'O'
88+ fcb 'P' ,'Q' ,'R' ,'S' ,'T' ,'U' ,'V' ,'W'
89+ fcb 'X' ,'Y' ,'Z' ,'^' ,'V' ,'<' ,'>' ,$ff
90+ fcb 'E' ,'C' ,'E' ,'A' ,'C' ,'1' ,'2' ,'S'
91+ fcb 'J' ,'J' ,'J' ,'J' ,'J' ,'J' ,'J' ,'J'
92+
0 commit comments