📄 key.lst
字号:
290 06EA 0F76 incfsz btemp+6,w
291 06EB 02FA subwf btemp+10
292 06EC 0873 movf btemp+3,w
293 06ED 00FB movwf btemp+11
294 06EE 0877 movf btemp+7,w
295 06EF 1C03 btfss 3,0
296 06F0 0F77 incfsz btemp+7,w
297 06F1 02FB subwf btemp+11
298 06F2 0878 movf btemp+8,w
299 06F3 00D5 movwf ?a_checkKeyRepeat+9
300 06F4 0879 movf btemp+9,w
301 06F5 00D6 movwf ?a_checkKeyRepeat+10
302 06F6 087A movf btemp+10,w
303 06F7 00D7 movwf ?a_checkKeyRepeat+11
304 06F8 087B movf btemp+11,w
305 06F9 00D8 movwf ?a_checkKeyRepeat+12
306 ;key.c: 60: if ((time%tRepeat)==0)
307 06FA 084D movf ?a_checkKeyRepeat+1,w
308 06FB 00F4 movwf btemp+4
309 06FC 084E movf ?a_checkKeyRepeat+2,w
310 06FD 00F5 movwf btemp+5
311 06FE 01F6 clrf btemp+6
312 06FF 01F7 clrf btemp+7
313 0700 0855 movf ?a_checkKeyRepeat+9,w
314 0701 00F0 movwf btemp
315 0702 0856 movf ?a_checkKeyRepeat+10,w
316 0703 00F1 movwf btemp+1
317 0704 0857 movf ?a_checkKeyRepeat+11,w
318 0705 00F2 movwf btemp+2
319 0706 0858 movf ?a_checkKeyRepeat+12,w
320 0707 00F3 movwf btemp+3
321 0708 118A 2775 118A fcall llmod
322 070B 0877 movf btemp+7,w
323 070C 0476 iorwf btemp+6,w
324 070D 0475 iorwf btemp+5,w
325 070E 0474 iorwf btemp+4,w
326 070F 1D03 btfss 3,2
327 0710 2F3A goto l21
328 ;key.c: 61: rd=1; }
329 0711 01CC clrf ?a_checkKeyRepeat
330 0712 0ACC incf ?a_checkKeyRepeat
331 ;key.c: 62: else
332 0713 2F3A goto l21
333 0714 l19
334 ;key.c: 63: { time=time-tStart;
335 0714 0851 movf ?a_checkKeyRepeat+5,w
336 0715 02D5 subwf ?a_checkKeyRepeat+9
337 0716 0852 movf ?a_checkKeyRepeat+6,w
338 0717 1C03 btfss 3,0
339 0718 0F52 incfsz ?a_checkKeyRepeat+6,w
340 0719 02D6 subwf ?a_checkKeyRepeat+10
341 071A 0853 movf ?a_checkKeyRepeat+7,w
342 071B 1C03 btfss 3,0
343 071C 0F53 incfsz ?a_checkKeyRepeat+7,w
344 071D 02D7 subwf ?a_checkKeyRepeat+11
345 071E 0854 movf ?a_checkKeyRepeat+8,w
346 071F 1C03 btfss 3,0
347 0720 0A54 incf ?a_checkKeyRepeat+8,w
348 0721 02D8 subwf ?a_checkKeyRepeat+12
349 ;key.c: 64: if (time>=tDelay)
350 0722 0850 movf ?a_checkKeyRepeat+4,w
351 0723 00F1 movwf btemp+1
352 0724 084F movf ?a_checkKeyRepeat+3,w
353 0725 00F0 movwf btemp
354 0726 01F2 clrf btemp+2
355 0727 01F3 clrf btemp+3
356 0728 0873 movf btemp+3,w
357 0729 0258 subwf ?a_checkKeyRepeat+12,w
358 072A 1D03 btfss 3,2
359 072B 2F36 goto u85
360 072C 0872 movf btemp+2,w
361 072D 0257 subwf ?a_checkKeyRepeat+11,w
362 072E 1D03 btfss 3,2
363 072F 2F36 goto u85
364 0730 0871 movf btemp+1,w
365 0731 0256 subwf ?a_checkKeyRepeat+10,w
366 0732 1D03 btfss 3,2
367 0733 2F36 goto u85
368 0734 0870 movf btemp,w
369 0735 0255 subwf ?a_checkKeyRepeat+9,w
370 0736 u85
371 0736 1C03 btfss 3,0
372 0737 2F3A goto l21
373 ;key.c: 65: { keyCtlBlock.repeat=1;}
374 0738 01B7 clrf _keyCtlBlock+13
375 0739 0AB7 incf _keyCtlBlock+13
376 ;key.c: 66: }
377 073A l21
378 ;key.c: 67: return(rd);
379 073A 084C movf ?a_checkKeyRepeat,w
380 ;key.c: 68: }
381 073B 0008 return
382 ;key.c: 72: void userKeyScan(void)
383 ;key.c: 73: { extern const TYPE_KEY_REPEAT_CTL
+ KEY_REPEAT_CTL[5];
384 073C _userKeyScan
385 ; _input assigned to ?a_userKeyScan+0
386 0000 _userKeyScan$input set ?a_userKeyScan
387 ;key.c: 74: unsigned char input;
388 073C 2664 fcall _readKeyInput
389 073D 00CB movwf ?a_userKeyScan
390 ;key.c: 76: if (input!=keyCtlBlock.input)
391 073E 0631 xorwf _keyCtlBlock+7,w
392 073F 1903 btfsc 3,2
393 0740 2F45 goto l24
394 ;key.c: 77: { keyCtlBlock.input=input;
395 0741 084B movf ?a_userKeyScan,w
396 0742 00B1 movwf _keyCtlBlock+7
397 ;key.c: 78: keyCtlBlock.iDelay=0; }
398 0743 01B2 clrf _keyCtlBlock+8
399 ;key.c: 79: else if (keyCtlBlock.iDelay <5)
400 0744 0008 return
401 0745 l24
402 0745 3005 movlw 5
403 0746 0232 subwf _keyCtlBlock+8,w
404 0747 1803 btfsc 3,0
405 0748 2F4B goto l26
406 ;key.c: 80: keyCtlBlock.iDelay+=1;
407 0749 0AB2 incf _keyCtlBlock+8
408 ;key.c: 81: else
409 074A 0008 return
410 074B l26
411 ;key.c: 82: { if (keyCtlBlock.value ==keyCtlBlo
+ ck.input)
412 074B 0830 movf _keyCtlBlock+6,w
413 074C 0631 xorwf _keyCtlBlock+7,w
414 074D 1D03 btfss 3,2
415 074E 2F59 goto l28
416 ;key.c: 83: { if (keyCtlBlock.input!=0)
417 074F 08B1 movf _keyCtlBlock+7
418 0750 1903 btfsc 3,2
419 0751 0008 return
420 ;key.c: 84: { if (checkKeyRepeat())
421 0752 269A fcall _checkKeyRepeat
422 0753 3800 iorlw 0
423 0754 1903 btfsc 3,2
424 0755 0008 return
425 ;key.c: 85: keyCtlBlock.full=1;
426 0756 01AF clrf _keyCtlBlock+5
427 0757 0AAF incf _keyCtlBlock+5
428 ;key.c: 87: }
429 ;key.c: 88: }
430 ;key.c: 89: else
431 0758 0008 return
432 0759 l28
433 ;key.c: 90: { saveKeyCtlTime();
434 0759 263A fcall _saveKeyCtlTime
435 ;key.c: 91: keyCtlBlock.repeat=0;
436 075A 01B7 clrf _keyCtlBlock+13
437 ;key.c: 92: keyCtlBlock.full =1;
438 075B 01AF clrf _keyCtlBlock+5
439 075C 0AAF incf _keyCtlBlock+5
440 ;key.c: 93: keyCtlBlock.value =keyCtlBlock.inpu
+ t;
441 075D 0831 movf _keyCtlBlock+7,w
442 075E 00B0 movwf _keyCtlBlock+6
443 ;key.c: 94: keyCtlBlock.pRepeatCtl=&KEY_REPEAT_
+ CTL[keyCtlBlock.value];
444 075F 3005 movlw 5
445 0760 00F2 movwf btemp+2
446 0761 01F3 clrf btemp+3
447 0762 0830 movf _keyCtlBlock+6,w
448 0763 00F0 movwf btemp
449 0764 01F1 clrf btemp+1
450 0765 118A 226F 118A fcall lwmul
451 0768 3055 movlw low _KEY_REPEAT_CTL
452 0769 00F0 movwf btemp
453 076A 3000 movlw high _KEY_REPEAT_CTL
454 076B 00F1 movwf btemp+1
455 076C 0874 movf btemp+4,w
456 076D 07F0 addwf btemp
457 076E 1803 btfsc 3,0
458 076F 0AF1 incf btemp+1
459 0770 0875 movf btemp+5,w
460 0771 07F1 addwf btemp+1
461 0772 0870 movf btemp,w
462 0773 00B8 movwf _keyCtlBlock+14
463 ;key.c: 95: }
464 ;key.c: 96: }
465 ;key.c: 97: }
466 0774 0008 return
467
468 psect text5
469 ;key.c: 100: unsigned char checkKeyEvent(void)
470 ;key.c: 101: {
471 025B _checkKeyEvent
472 ; _event assigned to ?a_checkKeyEvent+0
473 0000 _checkKeyEvent$event set ?a_checkKeyEvent
474 ;key.c: 102: unsigned char event;
475 025B 30FF movlw -1
476 025C 0183 clrf 3 ;select bank 0
477 025D 00C7 movwf ?a_checkKeyEvent
478 ;key.c: 104: if (keyCtlBlock.full==1)
479 025E 0B2F decfsz _keyCtlBlock+5,w
480 025F 2A6D goto l33
481 ;key.c: 105: { if (keyCtlBlock.value ==0)
482 0260 08B0 movf _keyCtlBlock+6
483 0261 1D03 btfss 3,2
484 0262 2A66 goto l34
485 ;key.c: 106: { keyCtlBlock.full=0;
486 0263 01AF clrf _keyCtlBlock+5
487 ;key.c: 107: event =2; }
488 0264 3002 movlw 2
489 0265 2A69 goto L4
490 ;key.c: 108: else
491 0266 l34
492 ;key.c: 109: { if (keyCtlBlock.repeat==1)
493 0266 0B37 decfsz _keyCtlBlock+13,w
494 0267 2A6B goto l36
495 ;key.c: 110: event =3;
496 0268 3003 movlw 3
497 0269 L4
498 0269 00C7 movwf ?a_checkKeyEvent
499 ;key.c: 111: else
500 026A 2A6D goto l33
501 026B l36
502 ;key.c: 112: event =1; }
503 026B 01C7 clrf ?a_checkKeyEvent
504 026C 0AC7 incf ?a_checkKeyEvent
505 026D l33
506 ;key.c: 113: }
507 026D 0847 movf ?a_checkKeyEvent,w
508 ;key.c: 115: }
509 026E 0008 return
510
511 psect text6
512 02B5 _checkKeyCloseTime
513 ; _time assigned to ?a_checkKeyCloseTime+0
514 0000 _checkKeyCloseTime$time set ?a_checkKeyCloseTim
+ e
515 ;key.c: 119: time=loadSystemTime(6);
516 02B5 3006 movlw 6
517 02B6 118A 22EF 118A fcall _loadSystemTime
518 02B9 0870 movf btemp,w
519 02BA 00C2 movwf ?a_checkKeyCloseTime
520 02BB 0871 movf btemp+1,w
521 02BC 00C3 movwf ?a_checkKeyCloseTime+1
522 02BD 0872 movf btemp+2,w
523 02BE 00C4 movwf ?a_checkKeyCloseTime+2
524 02BF 0873 movf btemp+3,w
525 02C0 00C5 movwf ?a_checkKeyCloseTime+3
526 ;key.c: 120: if (keyCtlBlock.repeat==1)
527 02C1 0B37 decfsz _keyCtlBlock+13,w
528 02C2 3400 retlw 0
529 ;key.c: 121: { if (time-keyCtlBlock.sTime>=t)
530 02C3 0843 movf ?_checkKeyCloseTime+1,w
531 02C4 00F1 movwf btemp+1
532 02C5 0842 movf ?_checkKeyCloseTime,w
533 02C6 00F0 movwf btemp
534 02C7 01F2 clrf btemp+2
535 02C8 01F3 clrf btemp+3
536 02C9 0833 movf _keyCtlBlock+9,w
537 02CA 0242 subwf ?a_checkKeyCloseTime,w
538 02CB 00F4 movwf btemp+4
539 02CC 0843 movf ?a_checkKeyCloseTime+1,w
540 02CD 00F5 movwf btemp+5
541 02CE 0834 movf _keyCtlBlock+10,w
542 02CF 1C03 btfss 3,0
543 02D0 0F34 incfsz _keyCtlBlock+10,w
544 02D1 02F5 subwf btemp+5
545 02D2 0844 movf ?a_checkKeyCloseTime+2,w
546 02D3 00F6 movwf btemp+6
547 02D4 0835 movf _keyCtlBlock+11,w
548 02D5 1C03 btfss 3,0
549 02D6 0F35 incfsz _keyCtlBlock+11,w
550 02D7 02F6 subwf btemp+6
551 02D8 0845 movf ?a_checkKeyCloseTime+3,w
552 02D9 00F7 movwf btemp+7
553 02DA 0836 movf _keyCtlBlock+12,w
554 02DB 1C03 btfss 3,0
555 02DC 0F36 incfsz _keyCtlBlock+12,w
556 02DD 02F7 subwf btemp+7
557 02DE 0873 movf btemp+3,w
558 02DF 0277 subwf btemp+7,w
559 02E0 1D03 btfss 3,2
560 02E1 2AEC goto u185
561 02E2 0872 movf btemp+2,w
562 02E3 0276 subwf btemp+6,w
563 02E4 1D03 btfss 3,2
564 02E5 2AEC goto u185
565 02E6 0871 movf btemp+1,w
566 02E7 0275 subwf btemp+5,w
567 02E8 1D03 btfss 3,2
568 02E9 2AEC goto u185
569 02EA 0870 movf btemp,w
570 02EB 0274 subwf btemp+4,w
571 02EC u185
572 02EC 1803 btfsc 3,0
573 ;key.c: 122: return(1); }
574 02ED 3401 retlw 1
575 ;key.c: 123: return (0);
576 02EE 3400 retlw 0
577
578 psect text7
579 ;key.c: 126: unsigned char readKeyBuff(void)
580 ;key.c: 127: { keyCtlBlock.full =0;
581 023C _readKeyBuff
582 023C 0183 clrf 3 ;select bank 0
583 023D 01AF clrf _keyCtlBlock+5
584 ;key.c: 128: return(keyCtlBlock.value);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -