📄 key.lst
字号:
298 06F1 0836 movf ?a_checkKeyRepeat+2,w
299 06F2 00F5 movwf btemp+5
300 06F3 01F6 clrf btemp+6
301 06F4 01F7 clrf btemp+7
302 06F5 083D movf ?a_checkKeyRepeat+9,w
303 06F6 00F0 movwf btemp
304 06F7 083E movf ?a_checkKeyRepeat+10,w
305 06F8 00F1 movwf btemp+1
306 06F9 083F movf ?a_checkKeyRepeat+11,w
307 06FA 00F2 movwf btemp+2
308 06FB 0840 movf ?a_checkKeyRepeat+12,w
309 06FC 00F3 movwf btemp+3
310 06FD 118A 2775 118A fcall llmod
311 0700 0877 movf btemp+7,w
312 0701 0476 iorwf btemp+6,w
313 0702 0475 iorwf btemp+5,w
314 0703 0474 iorwf btemp+4,w
315 0704 1D03 btfss 3,2
316 0705 2F31 goto l22
317 ;key.c: 61: rd=1; }
318 0706 01B4 clrf ?a_checkKeyRepeat
319 0707 0AB4 incf ?a_checkKeyRepeat
320 ;key.c: 62: else
321 0708 2F31 goto l22
322 0709 l20
323 ;key.c: 63: { time=time-tStart;
324 0709 1283 bcf 3,5
325 070A 0839 movf ?a_checkKeyRepeat+5,w
326 070B 02BD subwf ?a_checkKeyRepeat+9
327 070C 083A movf ?a_checkKeyRepeat+6,w
328 070D 1C03 btfss 3,0
329 070E 0F3A incfsz ?a_checkKeyRepeat+6,w
330 070F 02BE subwf ?a_checkKeyRepeat+10
331 0710 083B movf ?a_checkKeyRepeat+7,w
332 0711 1C03 btfss 3,0
333 0712 0F3B incfsz ?a_checkKeyRepeat+7,w
334 0713 02BF subwf ?a_checkKeyRepeat+11
335 0714 083C movf ?a_checkKeyRepeat+8,w
336 0715 1C03 btfss 3,0
337 0716 0A3C incf ?a_checkKeyRepeat+8,w
338 0717 02C0 subwf ?a_checkKeyRepeat+12
339 ;key.c: 64: if (time>=tDelay)
340 0718 0838 movf ?a_checkKeyRepeat+4,w
341 0719 00F1 movwf btemp+1
342 071A 0837 movf ?a_checkKeyRepeat+3,w
343 071B 00F0 movwf btemp
344 071C 01F2 clrf btemp+2
345 071D 01F3 clrf btemp+3
346 071E 0873 movf btemp+3,w
347 071F 0240 subwf ?a_checkKeyRepeat+12,w
348 0720 1D03 btfss 3,2
349 0721 2F2C goto u85
350 0722 0872 movf btemp+2,w
351 0723 023F subwf ?a_checkKeyRepeat+11,w
352 0724 1D03 btfss 3,2
353 0725 2F2C goto u85
354 0726 0871 movf btemp+1,w
355 0727 023E subwf ?a_checkKeyRepeat+10,w
356 0728 1D03 btfss 3,2
357 0729 2F2C goto u85
358 072A 0870 movf btemp,w
359 072B 023D subwf ?a_checkKeyRepeat+9,w
360 072C u85
361 072C 1C03 btfss 3,0
362 072D 2F31 goto l22
363 ;key.c: 65: { keyCtlBlock.repeat=1;}
364 072E 1683 bsf 3,5
365 072F 01C2 clrf (_keyCtlBlock+13)^(0+128)
366 0730 0AC2 incf (_keyCtlBlock+13)^(0+128)
367 ;key.c: 66: }
368 0731 l22
369 ;key.c: 67: return(rd);
370 0731 1283 bcf 3,5
371 0732 0834 movf ?a_checkKeyRepeat,w
372 ;key.c: 68: }
373 0733 0008 return
374 ;key.c: 72: void userKeyScan(void)
375 ;key.c: 73: { extern const TYPE_KEY_REPEAT_CTL
+ KEY_REPEAT_CTL[5];
376 0734 _userKeyScan
377 ; _input assigned to ?a_userKeyScan+0
378 0000 _userKeyScan$input set ?a_userKeyScan
379 ;key.c: 74: unsigned char input;
380 0734 2654 fcall _readKeyInput
381 0735 00B3 movwf ?a_userKeyScan
382 ;key.c: 76: if (input!=keyCtlBlock.input)
383 0736 1683 bsf 3,5
384 0737 083C movf (_keyCtlBlock+7)^(0+128),w
385 0738 1283 bcf 3,5
386 0739 0633 xorwf ?a_userKeyScan,w
387 073A 1903 btfsc 3,2
388 073B 2F41 goto l25
389 ;key.c: 77: { keyCtlBlock.input=input;
390 073C 0833 movf ?a_userKeyScan,w
391 073D 1683 bsf 3,5
392 073E 00BC movwf (_keyCtlBlock+7)^(0+128)
393 ;key.c: 78: keyCtlBlock.iDelay=0; }
394 073F 01BD clrf (_keyCtlBlock+8)^(0+128)
395 ;key.c: 79: else if (keyCtlBlock.iDelay <5)
396 0740 2F73 goto l24
397 0741 l25
398 0741 3005 movlw 5
399 0742 1683 bsf 3,5
400 0743 023D subwf (_keyCtlBlock+8)^(0+128),w
401 0744 1803 btfsc 3,0
402 0745 2F48 goto l27
403 ;key.c: 80: keyCtlBlock.iDelay+=1;
404 0746 0ABD incf (_keyCtlBlock+8)^(0+128)
405 ;key.c: 81: else
406 0747 2F73 goto l24
407 0748 l27
408 ;key.c: 82: { if (keyCtlBlock.value ==keyCtlBlo
+ ck.input)
409 0748 083B movf (_keyCtlBlock+6)^(0+128),w
410 0749 063C xorwf (_keyCtlBlock+7)^(0+128),w
411 074A 1D03 btfss 3,2
412 074B 2F57 goto l29
413 ;key.c: 83: { if (keyCtlBlock.input!=0)
414 074C 08BC movf (_keyCtlBlock+7)^(0+128)
415 074D 1903 btfsc 3,2
416 074E 2F73 goto l24
417 ;key.c: 84: { if (checkKeyRepeat())
418 074F 2681 fcall _checkKeyRepeat
419 0750 3800 iorlw 0
420 0751 1903 btfsc 3,2
421 0752 2F73 goto l24
422 ;key.c: 85: keyCtlBlock.full=1;
423 0753 1683 bsf 3,5
424 0754 01BA clrf (_keyCtlBlock+5)^(0+128)
425 0755 0ABA incf (_keyCtlBlock+5)^(0+128)
426 ;key.c: 87: }
427 ;key.c: 88: }
428 ;key.c: 89: else
429 0756 2F73 goto l24
430 0757 l29
431 ;key.c: 90: { saveKeyCtlTime();
432 0757 2639 fcall _saveKeyCtlTime
433 ;key.c: 91: keyCtlBlock.repeat=0;
434 0758 1683 bsf 3,5
435 0759 01C2 clrf (_keyCtlBlock+13)^(0+128)
436 ;key.c: 92: keyCtlBlock.full =1;
437 075A 01BA clrf (_keyCtlBlock+5)^(0+128)
438 075B 0ABA incf (_keyCtlBlock+5)^(0+128)
439 ;key.c: 93: keyCtlBlock.value =keyCtlBlock.inpu
+ t;
440 075C 083C movf (_keyCtlBlock+7)^(0+128),w
441 075D 00BB movwf (_keyCtlBlock+6)^(0+128)
442 ;key.c: 94: keyCtlBlock.pRepeatCtl=&KEY_REPEAT_
+ CTL[keyCtlBlock.value];
443 075E 3005 movlw 5
444 075F 00F2 movwf btemp+2
445 0760 01F3 clrf btemp+3
446 0761 083B movf (_keyCtlBlock+6)^(0+128),w
447 0762 00F0 movwf btemp
448 0763 01F1 clrf btemp+1
449 0764 158A 27EB 118A fcall lwmul
450 0767 30D3 movlw low _KEY_REPEAT_CTL
451 0768 00F0 movwf btemp
452 0769 3000 movlw high _KEY_REPEAT_CTL
453 076A 00F1 movwf btemp+1
454 076B 0874 movf btemp+4,w
455 076C 07F0 addwf btemp
456 076D 1803 btfsc 3,0
457 076E 0AF1 incf btemp+1
458 076F 0875 movf btemp+5,w
459 0770 07F1 addwf btemp+1
460 0771 0870 movf btemp,w
461 0772 00C3 movwf (_keyCtlBlock+14)^(0+128)
462 ;key.c: 95: }
463 ;key.c: 96: }
464 ;key.c: 97: }
465 0773 l24
466 0773 1283 bcf 3,5
467 0774 0008 return
468
469 psect text5
470 ;key.c: 100: unsigned char checkKeyEvent(void)
471 ;key.c: 101: {
472 00F4 _checkKeyEvent
473 ; _event assigned to ?a_checkKeyEvent+0
474 0000 _checkKeyEvent$event set ?a_checkKeyEvent
475 ;key.c: 102: unsigned char event;
476 00F4 30FF movlw -1
477 00F5 0183 clrf 3 ;select bank 0
478 00F6 00AF movwf ?a_checkKeyEvent
479 ;key.c: 104: if (keyCtlBlock.full==1)
480 00F7 1683 bsf 3,5
481 00F8 0B3A decfsz (_keyCtlBlock+5)^(0+128),w
482 00F9 2909 goto l34
483 ;key.c: 105: { if (keyCtlBlock.value ==0)
484 00FA 08BB movf (_keyCtlBlock+6)^(0+128)
485 00FB 1D03 btfss 3,2
486 00FC 2900 goto l35
487 ;key.c: 106: { keyCtlBlock.full=0;
488 00FD 01BA clrf (_keyCtlBlock+5)^(0+128)
489 ;key.c: 107: event =2; }
490 00FE 3002 movlw 2
491 00FF 2903 goto L4
492 ;key.c: 108: else
493 0100 l35
494 ;key.c: 109: { if (keyCtlBlock.repeat==1)
495 0100 0B42 decfsz (_keyCtlBlock+13)^(0+128),w
496 0101 2906 goto l37
497 ;key.c: 110: event =3;
498 0102 3003 movlw 3
499 0103 L4
500 0103 1283 bcf 3,5
501 0104 00AF movwf ?a_checkKeyEvent
502 ;key.c: 111: else
503 0105 2909 goto l34
504 0106 l37
505 ;key.c: 112: event =1; }
506 0106 1283 bcf 3,5
507 0107 01AF clrf ?a_checkKeyEvent
508 0108 0AAF incf ?a_checkKeyEvent
509 0109 l34
510 ;key.c: 113: }
511 0109 1283 bcf 3,5
512 010A 082F movf ?a_checkKeyEvent,w
513 ;key.c: 115: }
514 010B 0008 return
515
516 psect text6
517 0160 _checkKeyCloseTime
518 ; _time assigned to ?a_checkKeyCloseTime+0
519 0000 _checkKeyCloseTime$time set ?a_checkKeyCloseTim
+ e
520 ;key.c: 119: time=loadSystemTime(6);
521 0160 3006 movlw 6
522 0161 118A 21A7 118A fcall _loadSystemTime
523 0164 0870 movf btemp,w
524 0165 00AA movwf ?a_checkKeyCloseTime
525 0166 0871 movf btemp+1,w
526 0167 00AB movwf ?a_checkKeyCloseTime+1
527 0168 0872 movf btemp+2,w
528 0169 00AC movwf ?a_checkKeyCloseTime+2
529 016A 0873 movf btemp+3,w
530 016B 00AD movwf ?a_checkKeyCloseTime+3
531 ;key.c: 120: if (keyCtlBlock.repeat==1)
532 016C 1683 bsf 3,5
533 016D 0B42 decfsz (_keyCtlBlock+13)^(0+128),w
534 016E 29A4 goto l40
535 ;key.c: 121: { if (time-keyCtlBlock.sTime>=t)
536 016F 1283 bcf 3,5
537 0170 082B movf ?_checkKeyCloseTime+1,w
538 0171 00F1 movwf btemp+1
539 0172 082A movf ?_checkKeyCloseTime,w
540 0173 00F0 movwf btemp
541 0174 01F2 clrf btemp+2
542 0175 01F3 clrf btemp+3
543 0176 1683 bsf 3,5
544 0177 083E movf (_keyCtlBlock+9)^(0+128),w
545 0178 1283 bcf 3,5
546 0179 022A subwf ?a_checkKeyCloseTime,w
547 017A 00F4 movwf btemp+4
548 017B 082B movf ?a_checkKeyCloseTime+1,w
549 017C 00F5 movwf btemp+5
550 017D 1683 bsf 3,5
551 017E 083F movf (_keyCtlBlock+10)^(0+128),w
552 017F 1C03 btfss 3,0
553 0180 0F3F incfsz (_keyCtlBlock+10)^(0+128),w
554 0181 02F5 subwf btemp+5
555 0182 1283 bcf 3,5
556 0183 082C movf ?a_checkKeyCloseTime+2,w
557 0184 00F6 movwf btemp+6
558 0185 1683 bsf 3,5
559 0186 0840 movf (_keyCtlBlock+11)^(0+128),w
560 0187 1C03 btfss 3,0
561 0188 0F40 incfsz (_keyCtlBlock+11)^(0+128),w
562 0189 02F6 subwf btemp+6
563 018A 1283 bcf 3,5
564 018B 082D movf ?a_checkKeyCloseTime+3,w
565 018C 00F7 movwf btemp+7
566 018D 1683 bsf 3,5
567 018E 0841 movf (_keyCtlBlock+12)^(0+128),w
568 018F 1C03 btfss 3,0
569 0190 0F41 incfsz (_keyCtlBlock+12)^(0+128),w
570 0191 02F7 subwf btemp+7
571 0192 0873 movf btemp+3,w
572 0193 0277 subwf btemp+7,w
573 0194 1D03 btfss 3,2
574 0195 29A0 goto u185
575 0196 0872 movf btemp+2,w
576 0197 0276 subwf btemp+6,w
577 0198 1D03 btfss 3,2
578 0199 29A0 goto u185
579 019A 0871 movf btemp+1,w
580 019B 0275 subwf btemp+5,w
581 019C 1D03 btfss 3,2
582 019D 29A0 goto u185
583 019E 0870 movf btemp,w
584 019F 0274 subwf btemp+4,w
585 01A0 u185
586 01A0 1C03 btfss 3,0
587 01A1 29A4 goto l40
588 ;key.c: 122: return(1); }
589 01A2 3001 movlw 1
590 01A3 29A5 goto l39
591 01A4 l40
592 ;key.c: 123: return (0);
593 01A4 3000 movlw 0
594 ;key.c: 124: }
595 01A5 l39
596 01A5 1283 bcf 3,5
597 01A6 0008 return
598
599 psect text7
600 ;key.c: 126: unsigned char readKeyBuff(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -