📄 8733_tp.lst
字号:
167 000BB 1254 CALL ReleaseOldKeyVa
168 000BC 1824 MOV A, @TP2_RlTm_VAL
169 000BD 125F CALL StoreRLKeyVa
170 000BE 11EA CALL CMP_TWO_Value
171 000BF 0C03 JBC status, c
172 000C0 0A92 BS TP_Psd_Flag, TP2
173 ;---------------------------------------
174 ; Check TP3
175 000C1 Main_Chk_TP3:
176 000C1 1E94 BANK 4
177 000C2 1823 MOV A, @0X23 ; TP3 switch on
178 000C3 0045 MOV TPCR1, A
179 000C4 1808 MOV A, @0X08 ; Select TP3, Other pin as IO pin
180 000C5 004C MOV TPEPCR0, A
181 000C6 1297 CALL TPVaRoutine
182 000C7 1826 MOV A, @TP3_NPsd_VAL
183 000C8 1254 CALL ReleaseOldKeyVa
184 000C9 1826 MOV A, @TP3_RlTm_VAL
185 000CA 125F CALL StoreRLKeyVa
186 000CB 11EA CALL CMP_TWO_Value
187 000CC 0C03 JBC status, c
188 000CD 0AD2 BS TP_Psd_Flag, TP3
189 ;---------------------------------------
190 ; Check TP4
191 000CE Main_Chk_TP4:
192 000CE 1E94 BANK 4
193 000CF 1824 MOV A, @0X24 ; TP4 switch on
194 000D0 0045 MOV TPCR1, A
195 000D1 1810 MOV A, @0X10 ; Select TP4, Other pin as IO pin
196 000D2 004C MOV TPEPCR0, A
197 000D3 1297 CALL TPVaRoutine
198 000D4 1828 MOV A, @TP4_NPsd_VAL
199 000D5 1254 CALL ReleaseOldKeyVa
200 000D6 1828 MOV A, @TP4_RlTm_VAL
201 000D7 125F CALL StoreRLKeyVa
202 000D8 11EA CALL CMP_TWO_Value
203 000D9 0C03 JBC status, c
204 000DA 0B12 BS TP_Psd_Flag, TP4
205 ;---------------------------------------
206 ; Check TP5
207 000DB Main_Chk_TP5:
208 000DB 1E94 BANK 4
209 000DC 1825 MOV A, @0X25 ; TP5 switch on
210 000DD 0045 MOV TPCR1, A
211 000DE 1820 MOV A, @0X20 ; Select TP5, Other pin as IO pin
212 000DF 004C MOV TPEPCR0, A
213 000E0 1297 CALL TPVaRoutine
214 000E1 182A MOV A, @TP5_NPsd_VAL
215 000E2 1254 CALL ReleaseOldKeyVa
216 000E3 182A MOV A, @TP5_RlTm_VAL
217 000E4 125F CALL StoreRLKeyVa
218 000E5 11EA CALL CMP_TWO_Value
219 000E6 0C03 JBC status, c
220 000E7 0B52 BS TP_Psd_Flag, TP5
221 ;---------------------------------------
222 ; Check TP6
223 000E8 Main_Chk_TP6:
224 000E8 1E94 BANK 4
225 000E9 1826 MOV A, @0X26 ; TP6 switch on
226 000EA 0045 MOV TPCR1, A
227 000EB 1840 MOV A, @0X40 ; Select TP6, Other pin as IO pin
228 000EC 004C MOV TPEPCR0, A
229 000ED 1297 CALL TPVaRoutine
230 000EE 182C MOV A, @TP6_NPsd_VAL
231 000EF 1254 CALL ReleaseOldKeyVa
232 000F0 182C MOV A, @TP6_RlTm_VAL
233 000F1 125F CALL StoreRLKeyVa
234 000F2 11EA CALL CMP_TWO_Value
235 000F3 0C03 JBC status, c
236 000F4 0B92 BS TP_Psd_Flag, TP6
237 ;---------------------------------------
238 ; Check TP7
239 000F5 Main_Chk_TP7:
240 000F5 1E94 BANK 4
241 000F6 1827 MOV A, @0X27 ; TP7 switch on
242 000F7 0045 MOV TPCR1, A
243 000F8 1880 MOV A, @0X80 ; Select TP7, Other pin as IO pin
244 000F9 004C MOV TPEPCR0, A
245 000FA 1297 CALL TPVaRoutine
246 000FB 182E MOV A, @TP7_NPsd_VAL
247 000FC 1254 CALL ReleaseOldKeyVa
248 000FD 182E MOV A, @TP7_RlTm_VAL
249 000FE 125F CALL StoreRLKeyVa
250 000FF 11EA CALL CMP_TWO_Value
251 00100 0C03 JBC status, c
252 00101 0BD2 BS TP_Psd_Flag, TP7
253 ;
254 ;---------------------------------------
255 00102 0FD3 JBS Key_Tone, PWON_AD
256 00103 150D JMP Main_Chk_Ret
257 00104 0554 INC PWON_CNT
258 00105 0414 MOV A, PWON_CNT
259 00106 1FFA ADD A, @255-5
260 00107 0C03 JBC status, C
261 00108 150D JMP Main_Chk_Ret
262 00109 1820 MOV A, @0x20
263 0010A 1268 CALL SwapKeyValue
264 0010B 00D4 CLR PWON_CNT
265 0010C 09D3 BC Key_Tone, PWON_AD
266 0010D Main_Chk_Ret:
267 0010D 0012 RET
268 ;-----------------------------------------------------------------
269 0010E MainScanKey:
270 0010E 0000 NOP
271 0010F 00E3 CLR KeyValue
272 00110 00F0 CLR buffer
273 00111 0412 MOV A, Tp_Psd_Flag
274 00112 0C83 JBC status, z
275 00113 153A JMP CheckKeyLoos
276 00114 0993 BC Key_Tone, SYSKEYLOOS
277 ;---------------------------------------
278 ; Check whether two key are Pressed.
279 00115 0071 MOV buffer+1, A
280 00116 1808 MOV A, @0x08
281 00117 0072 MOV buffer+2, A
282 00118 RRC_Lp:
283 00118 0803 BC status, C
284 00119 0671 RRC buffer+1
285 0011A 0C03 JBC status, C
286 0011B 0570 INC buffer
287 0011C 05F2 DJZ BUFFER+2
288 0011D 1518 JMP RRC_Lp
289 0011E 18FE MOV A, @255-1
290 0011F 03B0 ADD A, buffer
291 00120 0C03 JBC status, C
292 00121 1554 JMP NoKey_Pressed2 ; Two key pressed, treat as no key pressed
293 ;---------------------------------------
294 00122 Key_Pressed:
295 00122 0993 BC Key_Tone, SYSKEYLOOS
296 00123 0412 MOV A, Tp_Psd_Flag
297 00124 0124 SUB A, OldKey
298 00125 0C83 JBC status, z
299 00126 152C JMP Check_Key_Up
300 00127 SetNewKeyDithering:
301 ; New key checked
302 00127 0412 MOV A, Tp_Psd_Flag
303 00128 0064 MOV OldKey, A
304 00129 1806 MOV A, @DitheringTM ; 10
305 0012A 0060 MOV DitheringR, A ; 5ms * 10 = 50ms
306 0012B 1556 JMP ScanKey_Out
307 0012C Check_Key_Up:
308 0012C 0420 MOV A, DitheringR
309 0012D 0E83 JBS STATUS, Z
310 0012E 1556 JMP ScanKey_Out
311 0012F NewKeyDown:
312 0012F 0953 BC Key_Tone, STYKey
313 00130 0AD3 BS Key_Tone, KeyPressed
314 00131 00D5 CLR NOKeyPCNT
315 00132 0424 MOV A, OldKey
316 00133 0063 MOV KeyValue, A
317 00134 0125 SUB A, OldKeyValue
318 00135 0C83 JBC STATUS, Z ; = 0 Skip
319 00136 1554 JMP NoKey_Pressed2
320 ; sure new key pressed
321 00137 SetOldKeyValue:
322 00137 0424 MOV A, OldKey
323 00138 0065 MOV OldKeyValue, A
324 00139 1556 JMP ScanKey_Out
325 0013A CheckKeyLoos:
326 0013A 0425 MOV A, OldKeyValue
327 0013B 0C83 JBC Status, z
328 0013C 1547 JMP NoKey_Pressed
329 ;
330 0013D 0D93 JBC Key_Tone, SYSKEYLOOS
331 0013E 1543 JMP Check_Key_Loos_Up
332 0013F 0B93 BS Key_Tone, SYSKEYLOOS
333 00140 1805 MOV A, @LOOSDitheringTM ;10*5ms
334 00141 0061 MOV LOOSDitheringR, A
335 00142 1556 JMP ScanKey_Out
336 00143 Check_Key_Loos_Up:
337 00143 0421 MOV A, LOOSDitheringR
338 00144 0E83 JBS STATUS, Z
339 00145 1556 JMP ScanKey_Out
340 00146 0993 BC Key_Tone, SYSKEYLOOS
341 00147 NoKey_Pressed:
342 00147 18F0 MOV A, @0xF0
343 00148 02C5 AND Port5, A
344 00149 02C8 and port8,a
345 0014A 00E5 CLR OldKeyValue
346 0014B 0415 MOV A, NOKeyPCNT
347 0014C 1FEC ADD A, @256-20
348 0014D 0CD3 JBC Key_Tone, KeyPressed
349 0014E 1FB5 ADD A, @256-75
350 0014F 0E03 JBS status, C
351 00150 1554 JMP NoKey_Pressed2
352 00151 08D3 BC Key_Tone, KeyPressed
353 00152 0B53 BS Key_Tone, STYKey
354 00153 00D5 CLR NOKeyPCNT
355 00154 NoKey_Pressed2:
356 00154 00E4 CLR OldKey
357 00155 00E3 CLR KeyValue
358 00156 ScanKey_Out:
359 00156 0423 MOV A, KeyValue
360 00157 0C83 JBC STATUS, Z ;
361 00158 155A JMP Key_Check_Ret ; no key pressed
362 00159 115C CALL Main_Key_Do
363 0015A Key_Check_Ret:
364 0015A 0000 NOP
365 0015B 0012 RET
366 ;-----------------------------------------------------------------
367 0015C Main_Key_Do:
368 0015C 1801 MOV A, @0x01
369 0015D 0123 SUB A, KeyValue
370 0015E 0C83 JBC status, Z
371 0015F 157C JMP main_key1_psd ; key1
372 ;
373 00160 1802 MOV A, @0x02
374 00161 0123 SUB A, KeyValue
375 00162 0C83 JBC status, Z
376 00163 157E JMP main_key2_psd ; key2
377 ;
378 00164 1804 MOV A, @0x04
379 00165 0123 SUB A, KeyValue
380 00166 0C83 JBC status, Z
381 00167 1580 JMP main_key3_psd ; key3
382 ;
383 00168 1808 MOV A, @0x08
384 00169 0123 SUB A, KeyValue
385 0016A 0C83 JBC status, Z
386 0016B 1582 JMP main_key4_psd ; key4
387 ;
388 0016C 1810 MOV A, @0x10
389 0016D 0123 SUB A, KeyValue
390 0016E 0C83 JBC status, Z
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -