?? modbus.lst
字號:
522 02AA 3485 retlw -123
523 02AB 3445 retlw 69
524 02AC 3487 retlw -121
525 02AD 3447 retlw 71
526 02AE 3446 retlw 70
527 02AF 3486 retlw -122
528 02B0 3482 retlw -126
529 02B1 3442 retlw 66
530 02B2 3443 retlw 67
531 02B3 3483 retlw -125
532 02B4 3441 retlw 65
533 02B5 3481 retlw -127
534 02B6 3480 retlw -128
535 02B7 3440 retlw 64
536
537 psect rdata_0
538 0062 _localAddr
539 0062 ds 1
540 0000 _crc16$usDataLen set ?_crc16
541
542 psect idata_0
543 0003 3401 retlw 1
544
545 psect text1
546 048B _beginSend
547 ;modbus.c: 85: void beginSend(void)
548 048B 0183 clrf 3 ;select bank 0
549 048C 1607 bsf 7,4
550 ;modbus.c: 90: sendPosi = 0;
551 048D 01C3 clrf _sendPosi
552 ;modbus.c: 93: TXEN = 1;
553 048E 1683 bsf 3,5
554 048F 1698 bsf 24,5
555 ;modbus.c: 94: TXIE =1;
556 0490 160C bsf 12,4
557 ;modbus.c: 96: }
558 0491 1283 bcf 3,5
559 0492 0008 return ;W free
560 0493 _setCoilVal
561 ; _result assigned to ?a_setCoilVal+0
562 0000 _setCoilVal$result set ?a_setCoilVal
563 ; _tempAddr assigned to ?a_setCoilVal+2
564 0000 _setCoilVal$tempAddr set ?a_setCoilVal+2
565 ;modbus.c: 441: uint16 setCoilVal(uint16 addr,u
+ int16 tempData)
566 0493 0183 clrf 3 ;select bank 0
567 0494 01D5 clrf ?a_setCoilVal
568 0495 01D6 clrf ?a_setCoilVal+1
569 ;modbus.c: 444: uint16 tempAddr;
570 0496 30FF movlw 255
571 0497 0551 andwf ?_setCoilVal,w
572 0498 00D7 movwf ?a_setCoilVal+2
573 0499 300F movlw 15
574 049A 0552 andwf ?_setCoilVal+1,w
575 049B 00D8 movwf ?a_setCoilVal+3
576 ;modbus.c: 448: switch(tempAddr & 0xfff)
577 ;modbus.c: 449: {
578 ;modbus.c: 452: break;
579 ;modbus.c: 453: case 131:
580 ;modbus.c: 455: break;
581 ;modbus.c: 456: case 132:
582 ;modbus.c: 458: break;
583 ;modbus.c: 459: case 133:
584 ;modbus.c: 461: break;
585 ;modbus.c: 462: case 134:
586 ;modbus.c: 464: break;
587 ;modbus.c: 469: default:
588 ;modbus.c: 470: break;
589 049C 00F3 movwf btemp+3
590 049D 0857 movf ?a_setCoilVal+2,w
591 049E 00F2 movwf btemp+2
592 049F 300F movlw 15
593 04A0 05F3 andwf btemp+3
594 04A1 2CB1 goto l30007
595 04A2 l30008
596 04A2 0872 movf btemp+2,w
597 04A3 3A82 xorlw 130
598 04A4 1903 btfsc 3,2
599 04A5 2CB4 goto l74
600 04A6 3A01 xorlw 1
601 04A7 1903 btfsc 3,2
602 04A8 2CB4 goto l74
603 04A9 3A07 xorlw 7
604 04AA 1903 btfsc 3,2
605 04AB 2CB4 goto l74
606 04AC 3A01 xorlw 1
607 04AD 1903 btfsc 3,2
608 04AE 2CB4 goto l74
609 04AF 3A03 xorlw 3
610 04B0 2CB4 goto l74
611 04B1 l30007
612 04B1 0873 movf btemp+3,w
613 04B2 1903 btfsc 3,2
614 04B3 2CA2 goto l30008
615 04B4 l74
616 ;modbus.c: 472: return result;
617 04B4 01F0 clrf btemp
618 04B5 01F1 clrf btemp+1
619 ;modbus.c: 473: }
620 04B6 0008 return ;W free
621 04B7 _forceSingleCoil
622 ; _addr assigned to ?a_forceSingleCoil+0
623 0000 _forceSingleCoil$addr set ?a_forceSingleCoil
624 ; _tempAddr assigned to ?a_forceSingleCoil+1
625 0000 _forceSingleCoil$tempAddr set ?a_forceSingleCoi
+ l+1
626 ; _onOff assigned to ?a_forceSingleCoil+2
627 0000 _forceSingleCoil$onOff set ?a_forceSingleCoil+2
628 ; _i assigned to ?a_forceSingleCoil+3
629 0000 _forceSingleCoil$i set ?a_forceSingleCoil+3
630 ; _tempData assigned to ?a_forceSingleCoil+4
631 0000 _forceSingleCoil$tempData set ?a_forceSingleCoi
+ l+4
632 ;modbus.c: 204: void forceSingleCoil(void)
633 04B7 0183 clrf 3 ;select bank 0
634 04B8 0824 movf _receBuf+3,w
635 04B9 00CB movwf ?a_forceSingleCoil
636 ;modbus.c: 215: tempAddr = addr;
637 04BA 00CC movwf ?a_forceSingleCoil+1
638 ;modbus.c: 218: onOff = receBuf[4];
639 04BB 0825 movf _receBuf+4,w
640 04BC 00CD movwf ?a_forceSingleCoil+2
641 ;modbus.c: 221: if(onOff == 0xff)
642 04BD 0F4D incfsz ?a_forceSingleCoil+2,w
643 04BE 2CC2 goto l23
644 ;modbus.c: 222: {
645 04BF 01CF clrf ?a_forceSingleCoil+4
646 04C0 0ACF incf ?a_forceSingleCoil+4
647 04C1 2CC6 goto L2
648 ;modbus.c: 224: }
649 04C2 l23
650 ;modbus.c: 226: else if(onOff == 0x00)
651 04C2 08CD movf ?a_forceSingleCoil+2
652 04C3 1D03 btfss 3,2
653 04C4 2CC7 goto l24
654 ;modbus.c: 227: {
655 04C5 01CF clrf ?a_forceSingleCoil+4
656 04C6 L2
657 04C6 01D0 clrf ?a_forceSingleCoil+5
658 04C7 l24
659 ;modbus.c: 229: }
660 04C7 084C movf ?a_forceSingleCoil+1,w
661 04C8 00D1 movwf ?_setCoilVal
662 04C9 01D2 clrf ?_setCoilVal+1
663 04CA 084F movf ?a_forceSingleCoil+4,w
664 04CB 00D3 movwf ?_setCoilVal+2
665 04CC 0850 movf ?a_forceSingleCoil+5,w
666 04CD 00D4 movwf ?_setCoilVal+3
667 04CE 2493 fcall _setCoilVal
668 ;modbus.c: 233: for(i=0;i<receCount;i++)
669 04CF 01CE clrf ?a_forceSingleCoil+3
670 04D0 l29
671 04D0 0841 movf _receCount,w
672 04D1 024E subwf ?a_forceSingleCoil+3,w
673 04D2 1803 btfsc 3,0
674 04D3 2CE2 goto l27
675 ;modbus.c: 234: {
676 04D4 084E movf ?a_forceSingleCoil+3,w
677 04D5 3E21 addlw _receBuf
678 04D6 0084 movwf 4
679 04D7 1383 bcf 3,7
680 04D8 0800 movf 0,w
681 04D9 00F0 movwf btemp
682 04DA 084E movf ?a_forceSingleCoil+3,w
683 04DB 3E31 addlw _sendBuf
684 04DC 0084 movwf 4
685 04DD 1383 bcf 3,7
686 04DE 0870 movf btemp,w
687 04DF 0080 movwf 0
688 04E0 0ACE incf ?a_forceSingleCoil+3
689 04E1 2CD0 goto l29
690 04E2 l27
691 ;modbus.c: 236: }
692 04E2 0841 movf _receCount,w
693 04E3 00C2 movwf _sendCount
694 ;modbus.c: 238: beginSend();
695 04E4 2C8B ljmp _beginSend
696 04E5 _crc16
697 ; _puchMsg assigned to ?a_crc16+0
698 0000 _crc16$puchMsg set ?a_crc16
699 ; _uchCRCHi assigned to ?a_crc16+1
700 0000 _crc16$uchCRCHi set ?a_crc16+1
701 ; _uchCRCLo assigned to ?a_crc16+2
702 0000 _crc16$uchCRCLo set ?a_crc16+2
703 ; _uIndex assigned to ?a_crc16+3
704 0000 _crc16$uIndex set ?a_crc16+3
705 ;_puchMsg stored from w
706 04E5 0183 clrf 3 ;select bank 0
707 04E6 00DB movwf ?a_crc16
708 ;modbus.c: 70: uint16 crc16(uint8 *puchMsg, uin
+ t16 usDataLen)
709 04E7 30FF movlw -1
710 04E8 00DC movwf ?a_crc16+1
711 ;modbus.c: 73: uint8 uchCRCLo = 0xFF ;
712 04E9 00DD movwf ?a_crc16+2
713 ;modbus.c: 74: uint32 uIndex ;
714 04EA 2D0E goto l2
715 04EB l3
716 ;modbus.c: 76: {
717 04EB 085B movf ?a_crc16,w
718 04EC 0084 movwf 4
719 04ED 1383 bcf 3,7
720 04EE 0800 movf 0,w
721 04EF 065C xorwf ?a_crc16+1,w
722 04F0 00DE movwf ?a_crc16+3
723 04F1 01DF clrf ?a_crc16+4
724 04F2 01E0 clrf ?a_crc16+5
725 04F3 01E1 clrf ?a_crc16+6
726 04F4 0ADB incf ?a_crc16
727 ;modbus.c: 78: uchCRCHi = uchCRCLo ^ auchCRCHi[
+ uIndex] ;
728 04F5 085F movf ?a_crc16+4,w
729 04F6 3E00 addlw high _auchCRCHi
730 04F7 00E7 movwf code_ptr+1
731 04F8 085E movf ?a_crc16+3,w
732 04F9 3EB8 addlw low _auchCRCHi
733 04FA 1803 btfsc 3,0
734 04FB 0AE7 incf code_ptr+1
735 04FC 120A 118A 20A2 fcall string_table
736 04FF 065D xorwf ?a_crc16+2,w
737 0500 00DC movwf ?a_crc16+1
738 ;modbus.c: 79: uchCRCLo = auchCRCLo[uIndex] ;
739 0501 085F movf ?a_crc16+4,w
740 0502 3E01 addlw high _auchCRCLo
741 0503 00E7 movwf code_ptr+1
742 0504 085E movf ?a_crc16+3,w
743 0505 3EB8 addlw low _auchCRCLo
744 0506 1803 btfsc 3,0
745 0507 0AE7 incf code_ptr+1
746 0508 120A 118A 20A2 fcall string_table
+ 120A 118A
747 050D 00DD movwf ?a_crc16+2
748 050E l2
749 050E 0859 movf ?_crc16,w
750 050F 1903 btfsc 3,2
751 0510 03DA decf ?_crc16+1
752 0511 03D9 decf ?_crc16
753 0512 0A59 incf ?_crc16,w
754 0513 1903 btfsc 3,2
755 0514 0A5A incf ?_crc16+1,w
756 0515 1D03 btfss 3,2
757 0516 2CEB goto l3
758 ;modbus.c: 80: }
759 0517 085C movf ?a_crc16+1,w
760 0518 00F1 movwf btemp+1
761 0519 01F0 clrf btemp
762 051A 085D movf ?a_crc16+2,w
763 051B 04F0 iorwf btemp
764 ;modbus.c: 82: }
765 051C 0008 return ;W free
766 051D _checkComm0Modbus
767 ; _crcData assigned to ?a_checkComm0Modbus+0
768 0000 _checkComm0Modbus$crcData set ?a_checkComm0Modb
+ us
769 ; _tempData assigned to ?a_checkComm0Modbus+2
770 0000 _checkComm0Modbus$tempData set ?a_checkComm0Mod
+ bus+2
771 ;modbus.c: 286: void checkComm0Modbus(void)
772 051D 1283 bcf 3,5
773 051E 1703 bsf 3,6
774 051F 08A1 movf _g_bRcvedOK^(0+256)
775 0520 1903 btfsc 3,2
776 0521 2E2B goto l35
777 ;modbus.c: 295: {
778 ;modbus.c: 299: }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -