-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy path11PINTEST_850V.asm
More file actions
208 lines (198 loc) · 3.15 KB
/
11PINTEST_850V.asm
File metadata and controls
208 lines (198 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
10 ORG 100H
20PUTSTR EQU 0BFF1H
30WAITK EQU 0BFCDH
40RPTCHR EQU 0BFEEH
50 CALL CLS
60 LD HL,GREET
70 CALL STRLN
80 LD DE,0000H
90 CALL PUTSTR
100 LD A,2
110 OUT (60H),A
120 LD A,1
130 OUT (74H),A
140 LD A,0
150 OUT (73H),A
160 LD A,1
170 OUT (73H),A
180 LD A,0
190 OUT (73H),A
200 LD A,0DH
210 OUT (70H),A
220 LD A,4EH
230 OUT (71H),A
240 LD A,10H
250 OUT (71H),A
260 LD A,0
270 OUT (63H),A
280 LD A,5
290 OUT (71H),A
300 LD A,14H
310 OUT (63H),A
320 LD HL,SDONE
330 CALL STRLN
340 LD DE,0100H
350 CALL PUTSTR
360LOOP00: IN A,(71H)
370 AND 2
380 CP 2
390 JP Z, RECV
400 IN A,(71H)
410 AND 4
420 CP 4
430 JP NZ, LOOP00
440 CALL WAITK
450 CP 0
460 JP Z,LOOP00
470 PUSH AF
480 LD HL,KEY01
490 CALL BYTE
500 LD HL,KEY00
510 CALL STRLN
520 LD DE,0300H
530 CALL PUTSTR
540 LD A,5
550 LD (CLSY),A
560 LD A,0
570 LD (CLSX),A
580 LD A,12
590 LD (CLSN),A
600 CALL CLS0
610 POP AF
620 CP 51H
630 JP Z,THEEND
640 CP 3AH
650 JP Z,THEEND
660 CALL MX2KEY
670 CP 8 ; BS
680 JP Z,THEEND
690 CP 0FFH ; FN KEYS
700 JP Z, LOOP00
710 OUT (72H),A
720 LD HL,KEY03
730 PUSH AF
740 LD (HL),A
750 LD HL,KEY02
760 LD A,'<'
770 LD (HL),A
780 CALL STRLN
790 LD DE,0400H
800 CALL PUTSTR
810 POP AF
820 CP 13
830 JP NZ,LOOP00
840 LD A,10
850 OUT (72H),A
860 JP LOOP00
1100WAIT: CALL WAITK
1110 CP 0
1120 JP Z,WAIT
1130 RET
1140THEEND: LD A,0
1150 OUT (67H),A
1160 LD HL,BYE
1170 CALL STRLN
1180 LD DE,0400H
1190 CALL PUTSTR
1200 RET
2000CLS: LD A,144
2010 LD (CLSN),A
2020 LD DE,0
2030 LD (CLSX),DE
2040 LD A,32
2050 LD (CHAR),A
2060CLS0: LD A,(CLSN)
2070 LD B,A
2080 LD A,(CLSY)
2090 LD D,A
2100 LD A,(CLSX)
2110 LD E,A
2120 LD A,(CHAR)
2130 CALL RPTCHR
2140 RET
2150CLSN: DB 144
2160CLSX: DB 0
2170CLSY: DB 0
2180CHAR: DB 32
3000BYTE: PUSH AF
3010 AND 0F0H
3020 RRCA
3030 RRCA
3040 RRCA
3050 RRCA
3060 CALL NIBBLE
3070 INC HL
3080 POP AF
3090 AND 15
3100 CALL NIBBLE
3110 INC HL
3120 RET
3130NIBBLE: SUB 10
3140 JP M, ZERO9
3150 ADD A, 7
3160ZERO9: ADD A, 58
3170 LD (HL), A
3180 RET
3190STRLN: LD B,0
3200 PUSH HL
3210STRLN0: LD A,(HL)
3220 CP 0
3230 JP Z,STRLN1
3240 INC HL
3250 INC B
3260 JP STRLN0
3270STRLN1: POP HL
3280 RET
3290MX2KEY: LD B,0
3300 LD C,A ; A IS KEY INDEX
3310 LD HL,MATRIX
3320 ADD HL,BC
3330 LD A,(HL)
3340 RET
4000RECV: IN A,(72H)
4010 LD BC,(INDEX)
4020 LD HL,BUFFER
4030 ADD HL,BC
4040 INC BC
4050 LD (INDEX),BC
4060 LD (HL),A
4070 LD HL,KEY03
4080 PUSH AF
4090 LD (HL),A
4100 LD HL,KEY02
4110 LD A,'>'
4120 LD (HL),A
4130 CALL STRLN
4140 LD DE,0500H
4150 CALL PUTSTR
4160 POP AF
4170 CP 10
4180 JP NZ,LOOP00
4190 INC HL
4200 LD A,0
4210 LD (HL),A
4220 LD HL,BUFFER
4230 CALL STRLN
4240 LD DE,0300H
4250 CALL PUTSTR
4260 LD BC,0
4270 LD (INDEX),BC
4280 JP LOOP00
5000GREET: DB '11-Pin UART test',0
5010SDONE: DB 'Setup done. Proceed.',0
5020BYE: DB 'Good Bye...',0
5030MATRIX: DB 0,0FFH,'QWERTYUASDFGHJ'
5040 DB 'KZXCVBNM,'
5050 DB 0FFH,0FFH,0FFH,0FFH,9,32,10 ; DOWN
5060 DB 11,14,15,0FFH,'0.=+',13,'L;',0FFH,'123-' ; UP LEFT RIGHT
5070 DB 0FFH,'IO',0FFH,'456*',0FFH,'P',8,0FFH,'789/'
5080 DB ')',0FFH,0FFH,0FFH,0FFH,0FFH,'(',0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
5090 DB 0,12,0FFH
5100BUFFER: DEFS 64
5110 DB 0
5120INDEX: DB 0,0
5130KEY00: DB '<Code: &H'
5140KEY01: DB 0,0,0
5150KEY02: DB ' Char: '
5160KEY03: DB 0,0