Subversion Repositories HomeAutomation

Rev

Rev 91 | Blame | Last modification | View Log | SVN | RSS feed

MP2COD 4.02, COFF to COD File Converter
Copyright (c) 2006 Microchip Technology Inc.
Listing File Generated: Tue Nov 14 21:10:39 2006


Address  Value    Disassembly              Source                                                                           File
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
                                           /*********************************************************************           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            *                  Main application                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            *********************************************************************           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBoot/Source/Main.c $ F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            * Last changed: $LastChangedDate: 2006-11-14 12:50:16 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            * Revision:     $Revision: 91 $                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #include <boot.h>                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           /** V E C T O R  R E M A P P I N G *******************************************/  F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x000008                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000008   ef04     GOTO      0x1008             _asm goto RM_HIGH_INTERRUPT_VECTOR _endasm                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
00000a   f008                                                                                                               
00000c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x000018                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000018   ef0c     GOTO      0x1018             _asm goto RM_LOW_INTERRUPT_VECTOR _endasm                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
00001a   f008                                                                                                               
00001c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            #include <CAN.h>                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           static CAN_PROTO_MESSAGE cm;                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           static BYTE ful=0;                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           static DWORD cnt =0;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           static BOOL canGetPacket(void);                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void TBLWT_Func(void);                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void TBLWTPOSTINC_Func (void);                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void TBLRD_Func(void);                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #define TICK_SUB_COUNTER_10MS 312                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #define PACKET_TIMEOUT 14                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #define BOOTLOADER_INIT_TIMOUT 500                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           DWORD tickCounter = 0;                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           DWORD tickSubCounter = 0;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           DWORD tickGet(void);                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000038   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
00003a   ffe6                                                                                                               
00003c   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00003e   ffd9                                                                                                               
000040   0e17     MOVLW     0x17                                                                                            
000042   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static PROGRAM_STATE pgs = pgsWATING_START;                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static DWORD t = 0;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static WORD programmerSid=0;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static BYTE errMsg = ERR_NO_ERROR;                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static PROGRAM_STATE afterAckPgs = pgsWATING_START;                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static DWORD pgmAddress = 0;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static BYTE bytesReceived = 0;                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            DWORD tBoot;                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static BYTE pgmData[64];                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            static BYTE tmp;                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Inits                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
000044   db99     RCALL     0x778           mainInit();                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            #ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
000046   db9e     RCALL     0x784               canInit();                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            #endif                                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000048   ec4a     CALL      0xa94,0x0       tBoot = tickGet();                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
00004a   f005                                                                                                               
00004c   c010     MOVFF     0x10,0xfde                                                                                      
00004e   ffde                                                                                                               
000050   c011     MOVFF     0x11,0xfde                                                                                      
000052   ffde                                                                                                               
000054   c012     MOVFF     0x12,0xfde                                                                                      
000056   ffde                                                                                                               
000058   c013     MOVFF     0x13,0xfdd                                                                                      
00005a   ffdd                                                                                                               
00005c   52dd     MOVF      0xdd,0x1,0x0                                                                                    
00005e   52dd     MOVF      0xdd,0x1,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000762   d47e     BRA       0x60            for(;;)                                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            {                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                BYTE i;                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                CAN_PROTO_MESSAGE outCm;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
000060   dbba     RCALL     0x7d6               BOOL hasPacket = canGetPacket();                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000062   6ee7     MOVWF     0xe7,0x0                                                                                        
000064   0e14     MOVLW     0x14                                                                                            
000066   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
000068   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00006a   0100     MOVLB     0x0                 tickSubCounter++;                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
00006c   2bb9     INCF      0xb9,0x1,0x1                                                                                    
00006e   0e00     MOVLW     0x0                                                                                             
000070   23ba     ADDWFC    0xba,0x1,0x1                                                                                    
000072   23bb     ADDWFC    0xbb,0x1,0x1                                                                                    
000074   23bc     ADDWFC    0xbc,0x1,0x1                                                                                    
000076   80d8     BSF       0xd8,0x0,0x0        if (tickSubCounter>TICK_SUB_COUNTER_10MS)                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
000078   0e38     MOVLW     0x38                                                                                            
00007a   0100     MOVLB     0x0                                                                                             
00007c   55b9     SUBFWB    0xb9,0x0,0x1                                                                                    
00007e   0e01     MOVLW     0x1                                                                                             
000080   55ba     SUBFWB    0xba,0x0,0x1                                                                                    
000082   0e00     MOVLW     0x0                                                                                             
000084   55bb     SUBFWB    0xbb,0x0,0x1                                                                                    
000086   0e00     MOVLW     0x0                                                                                             
000088   55bc     SUBFWB    0xbc,0x0,0x1                                                                                    
00008a   e20c     BC        0xa4                                                                                            
                                                {                                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
00008c   0100     MOVLB     0x0                     tickCounter++;                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
00008e   2bb5     INCF      0xb5,0x1,0x1                                                                                    
000090   0e00     MOVLW     0x0                                                                                             
000092   23b6     ADDWFC    0xb6,0x1,0x1                                                                                    
000094   23b7     ADDWFC    0xb7,0x1,0x1                                                                                    
000096   23b8     ADDWFC    0xb8,0x1,0x1                                                                                    
000098   0100     MOVLB     0x0                     tickSubCounter=0;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
00009a   6bb9     CLRF      0xb9,0x1                                                                                        
00009c   6bba     CLRF      0xba,0x1                                                                                        
00009e   6bbb     CLRF      0xbb,0x1                                                                                        
0000a0   6bbc     CLRF      0xbc,0x1                                                                                        
0000a2   0004     CLRWDT                            ClrWdt();                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0000a4   0100     MOVLB     0x0                 switch(pgs)                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
0000a6   51bd     MOVF      0xbd,0x0,0x1                                                                                    
0000a8   0a05     XORLW     0x5                                                                                             
0000aa   e101     BNZ       0xae                                                                                            
0000ac   d354     BRA       0x756                                                                                           
0000ae   0a01     XORLW     0x1                                                                                             
0000b0   e101     BNZ       0xb4                                                                                            
0000b2   d2a2     BRA       0x5f8                                                                                           
0000b4   0a07     XORLW     0x7                                                                                             
0000b6   e101     BNZ       0xba                                                                                            
0000b8   d1b6     BRA       0x426                                                                                           
0000ba   0a01     XORLW     0x1                                                                                             
0000bc   e101     BNZ       0xc0                                                                                            
0000be   d10c     BRA       0x2d8                                                                                           
0000c0   0a03     XORLW     0x3                                                                                             
0000c2   e101     BNZ       0xc6                                                                                            
0000c4   d0b5     BRA       0x230                                                                                           
0000c6   0a01     XORLW     0x1                                                                                             
0000c8   e001     BZ        0xcc                                                                                            
0000ca   d348     BRA       0x75c                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                    case pgsWATING_START:                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // Check if there is bootloader start packet                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
0000cc   0e14     MOVLW     0x14                        if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && cm.funcc==FUNCC_BOOT_INIT && ((((unsigned int)cm.data[RID_HIGH_INDEX])<<8)+cm.data[RID_LOW_INDEX])==MY_ID && cm.nid==MY_NID) F:\MCP\projects\CAN\canBoot\Source\Main.c
0000ce   04db     DECF      0xdb,0x0,0x0                                                                                    
0000d0   e16f     BNZ       0x1b0                                                                                           
0000d2   0100     MOVLB     0x0                                                                                             
0000d4   5160     MOVF      0x60,0x0,0x1                                                                                    
0000d6   e16c     BNZ       0x1b0                                                                                           
0000d8   0100     MOVLB     0x0                                                                                             
0000da   0e01     MOVLW     0x1                                                                                             
0000dc   1961     XORWF     0x61,0x0,0x1                                                                                    
0000de   e101     BNZ       0xe2                                                                                            
0000e0   5162     MOVF      0x62,0x0,0x1                                                                                    
0000e2   e166     BNZ       0x1b0                                                                                           
0000e4   c06c     MOVFF     0x6c,0x2                                                                                        
0000e6   f002                                                                                                               
0000e8   c002     MOVFF     0x2,0x3                                                                                         
0000ea   f003                                                                                                               
0000ec   6a02     CLRF      0x2,0x0                                                                                         
0000ee   0100     MOVLB     0x0                                                                                             
0000f0   516b     MOVF      0x6b,0x0,0x1                                                                                    
0000f2   0100     MOVLB     0x0                                                                                             
0000f4   2402     ADDWF     0x2,0x0,0x0                                                                                     
0000f6   6e00     MOVWF     0x0,0x0                                                                                         
0000f8   0e00     MOVLW     0x0                                                                                             
0000fa   2003     ADDWFC    0x3,0x0,0x0                                                                                     
0000fc   6e01     MOVWF     0x1,0x0                                                                                         
0000fe   0e78     MOVLW     0x78                                                                                            
000100   1800     XORWF     0x0,0x0,0x0                                                                                     
000102   e101     BNZ       0x106                                                                                           
000104   5001     MOVF      0x1,0x0,0x0                                                                                     
000106   e154     BNZ       0x1b0                                                                                           
000108   0100     MOVLB     0x0                                                                                             
00010a   5163     MOVF      0x63,0x0,0x1                                                                                    
00010c   e151     BNZ       0x1b0                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // Has new start packet                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
00010e   c069     MOVFF     0x69,0x0                        pgmAddress      = (((DWORD)cm.data[ADDRU_INDEX])<<16)+(((DWORD)cm.data[ADDRH_INDEX])<<8)+((DWORD)cm.data[ADDRL_INDEX]); F:\MCP\projects\CAN\canBoot\Source\Main.c
000110   f000                                                                                                               
000112   6a01     CLRF      0x1,0x0                                                                                         
000114   6a02     CLRF      0x2,0x0                                                                                         
000116   6a03     CLRF      0x3,0x0                                                                                         
000118   0e10     MOVLW     0x10                                                                                            
00011a   0b1f     ANDLW     0x1f                                                                                            
00011c   e007     BZ        0x12c                                                                                           
00011e   90d8     BCF       0xd8,0x0,0x0                                                                                    
000120   3600     RLCF      0x0,0x1,0x0                                                                                     
000122   3601     RLCF      0x1,0x1,0x0                                                                                     
000124   3602     RLCF      0x2,0x1,0x0                                                                                     
000126   3603     RLCF      0x3,0x1,0x0                                                                                     
000128   06e8     DECF      0xe8,0x1,0x0                                                                                    
00012a   e1f9     BNZ       0x11e                                                                                           
00012c   c068     MOVFF     0x68,0x4                                                                                        
00012e   f004                                                                                                               
000130   6a05     CLRF      0x5,0x0                                                                                         
000132   6a06     CLRF      0x6,0x0                                                                                         
000134   6a07     CLRF      0x7,0x0                                                                                         
000136   0e08     MOVLW     0x8                                                                                             
000138   0b1f     ANDLW     0x1f                                                                                            
00013a   e007     BZ        0x14a                                                                                           
00013c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00013e   3604     RLCF      0x4,0x1,0x0                                                                                     
000140   3605     RLCF      0x5,0x1,0x0                                                                                     
000142   3606     RLCF      0x6,0x1,0x0                                                                                     
000144   3607     RLCF      0x7,0x1,0x0                                                                                     
000146   06e8     DECF      0xe8,0x1,0x0                                                                                    
000148   e1f9     BNZ       0x13c                                                                                           
00014a   5004     MOVF      0x4,0x0,0x0                                                                                     
00014c   2600     ADDWF     0x0,0x1,0x0                                                                                     
00014e   5005     MOVF      0x5,0x0,0x0                                                                                     
000150   2201     ADDWFC    0x1,0x1,0x0                                                                                     
000152   5006     MOVF      0x6,0x0,0x0                                                                                     
000154   2202     ADDWFC    0x2,0x1,0x0                                                                                     
000156   5007     MOVF      0x7,0x0,0x0                                                                                     
000158   2203     ADDWFC    0x3,0x1,0x0                                                                                     
00015a   c067     MOVFF     0x67,0x8                                                                                        
00015c   f008                                                                                                               
00015e   6a09     CLRF      0x9,0x0                                                                                         
000160   6a0a     CLRF      0xa,0x0                                                                                         
000162   6a0b     CLRF      0xb,0x0                                                                                         
000164   5000     MOVF      0x0,0x0,0x0                                                                                     
000166   2408     ADDWF     0x8,0x0,0x0                                                                                     
000168   0100     MOVLB     0x0                                                                                             
00016a   6fc6     MOVWF     0xc6,0x1                                                                                        
00016c   5001     MOVF      0x1,0x0,0x0                                                                                     
00016e   2009     ADDWFC    0x9,0x0,0x0                                                                                     
000170   0100     MOVLB     0x0                                                                                             
000172   6fc7     MOVWF     0xc7,0x1                                                                                        
000174   5002     MOVF      0x2,0x0,0x0                                                                                     
000176   200a     ADDWFC    0xa,0x0,0x0                                                                                     
000178   0100     MOVLB     0x0                                                                                             
00017a   6fc8     MOVWF     0xc8,0x1                                                                                        
00017c   5003     MOVF      0x3,0x0,0x0                                                                                     
00017e   200b     ADDWFC    0xb,0x0,0x0                                                                                     
000180   0100     MOVLB     0x0                                                                                             
000182   6fc9     MOVWF     0xc9,0x1                                                                                        
000184   c064     MOVFF     0x64,0xc2                       programmerSid   = cm.sid;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000186   f0c2                                                                                                               
000188   c065     MOVFF     0x65,0xc3                                                                                       
00018a   f0c3                                                                                                               
00018c   ec4a     CALL      0xa94,0x0                       t               = tickGet();                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
00018e   f005                                                                                                               
000190   c010     MOVFF     0x10,0xbe                                                                                       
000192   f0be                                                                                                               
000194   c011     MOVFF     0x11,0xbf                                                                                       
000196   f0bf                                                                                                               
000198   c012     MOVFF     0x12,0xc0                                                                                       
00019a   f0c0                                                                                                               
00019c   c013     MOVFF     0x13,0xc1                                                                                       
00019e   f0c1                                                                                                               
0001a0   0100     MOVLB     0x0                             errMsg          = ERR_NO_ERROR;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
0001a2   6bc4     CLRF      0xc4,0x1                                                                                        
0001a4   0100     MOVLB     0x0                             afterAckPgs     = pgsWAIT_FIRST_PGM_PACKET;                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
0001a6   0e02     MOVLW     0x2                                                                                             
0001a8   6fc5     MOVWF     0xc5,0x1                                                                                        
0001aa   0100     MOVLB     0x0                             pgs             = pgsSEND_ACK;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
0001ac   0e01     MOVLW     0x1                                                                                             
0001ae   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                            // save pgm adress.                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // Bootloader timeout                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
0001b0   cfd9     MOVFF     0xfd9,0xfe9                 if ((tickGet()-tBoot)>BOOTLOADER_INIT_TIMOUT)                                F:\MCP\projects\CAN\canBoot\Source\Main.c
0001b2   ffe9                                                                                                               
0001b4   cfda     MOVFF     0xfda,0xfea                                                                                     
0001b6   ffea                                                                                                               
0001b8   cfee     MOVFF     0xfee,0x4                                                                                       
0001ba   f004                                                                                                               
0001bc   cfee     MOVFF     0xfee,0x5                                                                                       
0001be   f005                                                                                                               
0001c0   cfee     MOVFF     0xfee,0x6                                                                                       
0001c2   f006                                                                                                               
0001c4   cfef     MOVFF     0xfef,0x7                                                                                       
0001c6   f007                                                                                                               
0001c8   c004     MOVFF     0x4,0xfe6                                                                                       
0001ca   ffe6                                                                                                               
0001cc   c005     MOVFF     0x5,0xfe6                                                                                       
0001ce   ffe6                                                                                                               
0001d0   c006     MOVFF     0x6,0xfe6                                                                                       
0001d2   ffe6                                                                                                               
0001d4   c007     MOVFF     0x7,0xfe6                                                                                       
0001d6   ffe6                                                                                                               
0001d8   ec4a     CALL      0xa94,0x0                                                                                       
0001da   f005                                                                                                               
0001dc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0001de   cfe7     MOVFF     0xfe7,0x7                                                                                       
0001e0   f007                                                                                                               
0001e2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0001e4   cfe7     MOVFF     0xfe7,0x6                                                                                       
0001e6   f006                                                                                                               
0001e8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0001ea   cfe7     MOVFF     0xfe7,0x5                                                                                       
0001ec   f005                                                                                                               
0001ee   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0001f0   cfe7     MOVFF     0xfe7,0x4                                                                                       
0001f2   f004                                                                                                               
0001f4   0100     MOVLB     0x0                                                                                             
0001f6   5004     MOVF      0x4,0x0,0x0                                                                                     
0001f8   5c10     SUBWF     0x10,0x0,0x0                                                                                    
0001fa   6e00     MOVWF     0x0,0x0                                                                                         
0001fc   0100     MOVLB     0x0                                                                                             
0001fe   5005     MOVF      0x5,0x0,0x0                                                                                     
000200   5811     SUBWFB    0x11,0x0,0x0                                                                                    
000202   6e01     MOVWF     0x1,0x0                                                                                         
000204   0100     MOVLB     0x0                                                                                             
000206   5006     MOVF      0x6,0x0,0x0                                                                                     
000208   5812     SUBWFB    0x12,0x0,0x0                                                                                    
00020a   6e02     MOVWF     0x2,0x0                                                                                         
00020c   0100     MOVLB     0x0                                                                                             
00020e   5007     MOVF      0x7,0x0,0x0                                                                                     
000210   5813     SUBWFB    0x13,0x0,0x0                                                                                    
000212   6e03     MOVWF     0x3,0x0                                                                                         
000214   80d8     BSF       0xd8,0x0,0x0                                                                                    
000216   0ef4     MOVLW     0xf4                                                                                            
000218   5400     SUBFWB    0x0,0x0,0x0                                                                                     
00021a   0e01     MOVLW     0x1                                                                                             
00021c   5401     SUBFWB    0x1,0x0,0x0                                                                                     
00021e   0e00     MOVLW     0x0                                                                                             
000220   5402     SUBFWB    0x2,0x0,0x0                                                                                     
000222   0e00     MOVLW     0x0                                                                                             
000224   5403     SUBFWB    0x3,0x0,0x0                                                                                     
000226   e203     BC        0x22e                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000228   0100     MOVLB     0x0                             pgs = pgsDONE;                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
00022a   0e05     MOVLW     0x5                                                                                             
00022c   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00022e   d299     BRA       0x762                   break;                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                    case pgsSEND_ACK:                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // send ack                                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
000230   0e05     MOVLW     0x5                         outCm.funct             = FUNCT_BOOTLOADER;                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
000232   6adb     CLRF      0xdb,0x0                                                                                        
000234   0e04     MOVLW     0x4                         outCm.funcc             = FUNCC_BOOT_ACK;                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000236   6ef3     MOVWF     0xf3,0x0                                                                                        
000238   0e06     MOVLW     0x6                                                                                             
00023a   cff3     MOVFF     0xff3,0xfdb                                                                                     
00023c   ffdb                                                                                                               
00023e   0e07     MOVLW     0x7                                                                                             
000240   6adb     CLRF      0xdb,0x0                                                                                        
000242   0e08     MOVLW     0x8                         outCm.nid               = MY_NID;                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
000244   6adb     CLRF      0xdb,0x0                                                                                        
000246   0e78     MOVLW     0x78                        outCm.sid               = MY_ID;                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
000248   6ef3     MOVWF     0xf3,0x0                                                                                        
00024a   0e09     MOVLW     0x9                                                                                             
00024c   cff3     MOVFF     0xff3,0xfdb                                                                                     
00024e   ffdb                                                                                                               
000250   0e0a     MOVLW     0xa                                                                                             
000252   6adb     CLRF      0xdb,0x0                                                                                        
000254   0e08     MOVLW     0x8                         outCm.data_length       = 8;                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
000256   6ef3     MOVWF     0xf3,0x0                                                                                        
000258   0e0b     MOVLW     0xb                                                                                             
00025a   cff3     MOVFF     0xff3,0xfdb                                                                                     
00025c   ffdb                                                                                                               
00025e   0e10     MOVLW     0x10                        outCm.data[ERR_INDEX]   = errMsg;                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
000260   c0c4     MOVFF     0xc4,0xfdb                                                                                      
000262   ffdb                                                                                                               
000264   ec4a     CALL      0xa94,0x0                   t                       = tickGet();                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000266   f005                                                                                                               
000268   c010     MOVFF     0x10,0xbe                                                                                       
00026a   f0be                                                                                                               
00026c   c011     MOVFF     0x11,0xbf                                                                                       
00026e   f0bf                                                                                                               
000270   c012     MOVFF     0x12,0xc0                                                                                       
000272   f0c0                                                                                                               
000274   c013     MOVFF     0x13,0xc1                                                                                       
000276   f0c1                                                                                                               
000278   c0c5     MOVFF     0xc5,0xbd                   pgs                     = afterAckPgs;                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
00027a   f0bd                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00027c   0e02     MOVLW     0x2                         while(!canSendMessage(outCm,PRIO_HIGH));                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
00027e   6ee6     MOVWF     0xe6,0x0                                                                                        
000280   50d9     MOVF      0xd9,0x0,0x0                                                                                    
000282   0f05     ADDLW     0x5                                                                                             
000284   6ee9     MOVWF     0xe9,0x0                                                                                        
000286   cfda     MOVFF     0xfda,0xfea                                                                                     
000288   ffea                                                                                                               
00028a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00028c   ffe6                                                                                                               
00028e   cfee     MOVFF     0xfee,0xfe6                                                                                     
000290   ffe6                                                                                                               
000292   cfee     MOVFF     0xfee,0xfe6                                                                                     
000294   ffe6                                                                                                               
000296   cfee     MOVFF     0xfee,0xfe6                                                                                     
000298   ffe6                                                                                                               
00029a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00029c   ffe6                                                                                                               
00029e   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002a0   ffe6                                                                                                               
0002a2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002a4   ffe6                                                                                                               
0002a6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002a8   ffe6                                                                                                               
0002aa   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002ac   ffe6                                                                                                               
0002ae   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002b0   ffe6                                                                                                               
0002b2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002b4   ffe6                                                                                                               
0002b6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002b8   ffe6                                                                                                               
0002ba   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002bc   ffe6                                                                                                               
0002be   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002c0   ffe6                                                                                                               
0002c2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002c4   ffe6                                                                                                               
0002c6   db10     RCALL     0x8e8                                                                                           
0002c8   6e00     MOVWF     0x0,0x0                                                                                         
0002ca   0e10     MOVLW     0x10                                                                                            
0002cc   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0002ce   5000     MOVF      0x0,0x0,0x0                                                                                     
0002d0   0900     IORLW     0x0                                                                                             
0002d2   e101     BNZ       0x2d6                                                                                           
0002d4   d7d3     BRA       0x27c                                                                                           
0002d6   d245     BRA       0x762                   break;                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                    case pgsWAIT_FIRST_PGM_PACKET:                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // wait for first pgm packet.                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
0002d8   dbdd     RCALL     0xa94                       if ((tickGet()-t)>PACKET_TIMEOUT)                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0002da   0100     MOVLB     0x0                                                                                             
0002dc   51be     MOVF      0xbe,0x0,0x1                                                                                    
0002de   5c10     SUBWF     0x10,0x0,0x0                                                                                    
0002e0   6e00     MOVWF     0x0,0x0                                                                                         
0002e2   0100     MOVLB     0x0                                                                                             
0002e4   51bf     MOVF      0xbf,0x0,0x1                                                                                    
0002e6   5811     SUBWFB    0x11,0x0,0x0                                                                                    
0002e8   6e01     MOVWF     0x1,0x0                                                                                         
0002ea   0100     MOVLB     0x0                                                                                             
0002ec   51c0     MOVF      0xc0,0x0,0x1                                                                                    
0002ee   5812     SUBWFB    0x12,0x0,0x0                                                                                    
0002f0   6e02     MOVWF     0x2,0x0                                                                                         
0002f2   0100     MOVLB     0x0                                                                                             
0002f4   51c1     MOVF      0xc1,0x0,0x1                                                                                    
0002f6   5813     SUBWFB    0x13,0x0,0x0                                                                                    
0002f8   6e03     MOVWF     0x3,0x0                                                                                         
0002fa   80d8     BSF       0xd8,0x0,0x0                                                                                    
0002fc   0e0e     MOVLW     0xe                                                                                             
0002fe   5400     SUBFWB    0x0,0x0,0x0                                                                                     
000300   0e00     MOVLW     0x0                                                                                             
000302   5401     SUBFWB    0x1,0x0,0x0                                                                                     
000304   0e00     MOVLW     0x0                                                                                             
000306   5402     SUBFWB    0x2,0x0,0x0                                                                                     
000308   0e00     MOVLW     0x0                                                                                             
00030a   5403     SUBFWB    0x3,0x0,0x0                                                                                     
00030c   e208     BC        0x31e                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // Timeout, resend ack.                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
00030e   0100     MOVLB     0x0                             errMsg          = ERR_NO_ERROR;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000310   6bc4     CLRF      0xc4,0x1                                                                                        
000312   0100     MOVLB     0x0                             afterAckPgs     = pgsWAIT_FIRST_PGM_PACKET;                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000314   0e02     MOVLW     0x2                                                                                             
000316   6fc5     MOVWF     0xc5,0x1                                                                                        
000318   0100     MOVLB     0x0                             pgs             = pgsSEND_ACK;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
00031a   0e01     MOVLW     0x1                                                                                             
00031c   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // If programming packet...                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
00031e   0e14     MOVLW     0x14                        if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && (cm.funcc & 0x3)==FUNCC_BOOT_PGM && cm.nid==MY_NID && cm.sid==programmerSid) F:\MCP\projects\CAN\canBoot\Source\Main.c
000320   04db     DECF      0xdb,0x0,0x0                                                                                    
000322   e001     BZ        0x326                                                                                           
000324   d07f     BRA       0x424                                                                                           
000326   0100     MOVLB     0x0                                                                                             
000328   5160     MOVF      0x60,0x0,0x1                                                                                    
00032a   e001     BZ        0x32e                                                                                           
00032c   d07b     BRA       0x424                                                                                           
00032e   0e03     MOVLW     0x3                                                                                             
000330   0100     MOVLB     0x0                                                                                             
000332   1561     ANDWF     0x61,0x0,0x1                                                                                    
000334   6e00     MOVWF     0x0,0x0                                                                                         
000336   6a01     CLRF      0x1,0x0                                                                                         
000338   0e03     MOVLW     0x3                                                                                             
00033a   1800     XORWF     0x0,0x0,0x0                                                                                     
00033c   e101     BNZ       0x340                                                                                           
00033e   5001     MOVF      0x1,0x0,0x0                                                                                     
000340   e171     BNZ       0x424                                                                                           
000342   0100     MOVLB     0x0                                                                                             
000344   5163     MOVF      0x63,0x0,0x1                                                                                    
000346   e16e     BNZ       0x424                                                                                           
000348   0100     MOVLB     0x0                                                                                             
00034a   51c2     MOVF      0xc2,0x0,0x1                                                                                    
00034c   0100     MOVLB     0x0                                                                                             
00034e   1964     XORWF     0x64,0x0,0x1                                                                                    
000350   e104     BNZ       0x35a                                                                                           
000352   0100     MOVLB     0x0                                                                                             
000354   51c3     MOVF      0xc3,0x0,0x1                                                                                    
000356   0100     MOVLB     0x0                                                                                             
000358   1965     XORWF     0x65,0x0,0x1                                                                                    
00035a   e164     BNZ       0x424                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00035c   0e1c     MOVLW     0x1c                            BYTE localIndex = (BYTE)((cm.funcc & 0x1C)>>2)*8;                           F:\MCP\projects\CAN\canBoot\Source\Main.c
00035e   0100     MOVLB     0x0                                                                                             
000360   1561     ANDWF     0x61,0x0,0x1                                                                                    
000362   6e00     MOVWF     0x0,0x0                                                                                         
000364   6a01     CLRF      0x1,0x0                                                                                         
000366   90d8     BCF       0xd8,0x0,0x0                                                                                    
000368   3201     RRCF      0x1,0x1,0x0                                                                                     
00036a   3200     RRCF      0x0,0x1,0x0                                                                                     
00036c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00036e   3201     RRCF      0x1,0x1,0x0                                                                                     
000370   3200     RRCF      0x0,0x1,0x0                                                                                     
000372   0e08     MOVLW     0x8                                                                                             
000374   0200     MULWF     0x0,0x0                                                                                         
000376   0e15     MOVLW     0x15                                                                                            
000378   cff3     MOVFF     0xff3,0xfdb                                                                                     
00037a   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // Save bytes in memory, setup start adress etc..                           F:\MCP\projects\CAN\canBoot\Source\Main.c
00037c   0100     MOVLB     0x0                             bytesReceived   = 8;                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
00037e   0e08     MOVLW     0x8                                                                                             
000380   6fca     MOVWF     0xca,0x1                                                                                        
000382   0e15     MOVLW     0x15                            pgmData[localIndex+0]=cm.data[0]; pgmData[localIndex+1]=cm.data[1]; pgmData[localIndex+2]=cm.data[2]; pgmData[localIndex+3]=cm.data[3]; F:\MCP\projects\CAN\canBoot\Source\Main.c
000384   50db     MOVF      0xdb,0x0,0x0                                                                                    
000386   6aea     CLRF      0xea,0x0                                                                                        
000388   0f6f     ADDLW     0x6f                                                                                            
00038a   6ee9     MOVWF     0xe9,0x0                                                                                        
00038c   0e00     MOVLW     0x0                                                                                             
00038e   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
000390   c067     MOVFF     0x67,0xfef                                                                                      
000392   ffef                                                                                                               
000394   0e15     MOVLW     0x15                                                                                            
000396   28db     INCF      0xdb,0x0,0x0                                                                                    
000398   6aea     CLRF      0xea,0x0                                                                                        
00039a   0f6f     ADDLW     0x6f                                                                                            
00039c   6ee9     MOVWF     0xe9,0x0                                                                                        
00039e   0e00     MOVLW     0x0                                                                                             
0003a0   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0003a2   c068     MOVFF     0x68,0xfef                                                                                      
0003a4   ffef                                                                                                               
0003a6   0e15     MOVLW     0x15                                                                                            
0003a8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0003aa   0f02     ADDLW     0x2                                                                                             
0003ac   6aea     CLRF      0xea,0x0                                                                                        
0003ae   0f6f     ADDLW     0x6f                                                                                            
0003b0   6ee9     MOVWF     0xe9,0x0                                                                                        
0003b2   0e00     MOVLW     0x0                                                                                             
0003b4   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0003b6   c069     MOVFF     0x69,0xfef                                                                                      
0003b8   ffef                                                                                                               
0003ba   0e15     MOVLW     0x15                                                                                            
0003bc   50db     MOVF      0xdb,0x0,0x0                                                                                    
0003be   0f03     ADDLW     0x3                                                                                             
0003c0   6aea     CLRF      0xea,0x0                                                                                        
0003c2   0f6f     ADDLW     0x6f                                                                                            
0003c4   6ee9     MOVWF     0xe9,0x0                                                                                        
0003c6   0e00     MOVLW     0x0                                                                                             
0003c8   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0003ca   c06a     MOVFF     0x6a,0xfef                                                                                      
0003cc   ffef                                                                                                               
0003ce   0e15     MOVLW     0x15                            pgmData[localIndex+4]=cm.data[4]; pgmData[localIndex+5]=cm.data[5]; pgmData[localIndex+6]=cm.data[6]; pgmData[localIndex+7]=cm.data[7]; F:\MCP\projects\CAN\canBoot\Source\Main.c
0003d0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0003d2   0f04     ADDLW     0x4                                                                                             
0003d4   6aea     CLRF      0xea,0x0                                                                                        
0003d6   0f6f     ADDLW     0x6f                                                                                            
0003d8   6ee9     MOVWF     0xe9,0x0                                                                                        
0003da   0e00     MOVLW     0x0                                                                                             
0003dc   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0003de   c06b     MOVFF     0x6b,0xfef                                                                                      
0003e0   ffef                                                                                                               
0003e2   0e15     MOVLW     0x15                                                                                            
0003e4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0003e6   0f05     ADDLW     0x5                                                                                             
0003e8   6aea     CLRF      0xea,0x0                                                                                        
0003ea   0f6f     ADDLW     0x6f                                                                                            
0003ec   6ee9     MOVWF     0xe9,0x0                                                                                        
0003ee   0e00     MOVLW     0x0                                                                                             
0003f0   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0003f2   c06c     MOVFF     0x6c,0xfef                                                                                      
0003f4   ffef                                                                                                               
0003f6   0e15     MOVLW     0x15                                                                                            
0003f8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0003fa   0f06     ADDLW     0x6                                                                                             
0003fc   6aea     CLRF      0xea,0x0                                                                                        
0003fe   0f6f     ADDLW     0x6f                                                                                            
000400   6ee9     MOVWF     0xe9,0x0                                                                                        
000402   0e00     MOVLW     0x0                                                                                             
000404   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
000406   c06d     MOVFF     0x6d,0xfef                                                                                      
000408   ffef                                                                                                               
00040a   0e15     MOVLW     0x15                                                                                            
00040c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00040e   0f07     ADDLW     0x7                                                                                             
000410   6aea     CLRF      0xea,0x0                                                                                        
000412   0f6f     ADDLW     0x6f                                                                                            
000414   6ee9     MOVWF     0xe9,0x0                                                                                        
000416   0e00     MOVLW     0x0                                                                                             
000418   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
00041a   c06e     MOVFF     0x6e,0xfef                                                                                      
00041c   ffef                                                                                                               
                                                                                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
00041e   0100     MOVLB     0x0                             pgs             = pgsWAIT_PGM_PACKET;                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000420   0e03     MOVLW     0x3                                                                                             
000422   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000424   d19e     BRA       0x762                   break;                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                    case pgsWAIT_PGM_PACKET:                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // If programming packet...                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
000426   0e14     MOVLW     0x14                        if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && (cm.funcc & 0x3)==FUNCC_BOOT_PGM && cm.nid==MY_NID && cm.sid==programmerSid) F:\MCP\projects\CAN\canBoot\Source\Main.c
000428   04db     DECF      0xdb,0x0,0x0                                                                                    
00042a   e001     BZ        0x42e                                                                                           
00042c   d07f     BRA       0x52c                                                                                           
00042e   0100     MOVLB     0x0                                                                                             
000430   5160     MOVF      0x60,0x0,0x1                                                                                    
000432   e001     BZ        0x436                                                                                           
000434   d07b     BRA       0x52c                                                                                           
000436   0e03     MOVLW     0x3                                                                                             
000438   0100     MOVLB     0x0                                                                                             
00043a   1561     ANDWF     0x61,0x0,0x1                                                                                    
00043c   6e00     MOVWF     0x0,0x0                                                                                         
00043e   6a01     CLRF      0x1,0x0                                                                                         
000440   0e03     MOVLW     0x3                                                                                             
000442   1800     XORWF     0x0,0x0,0x0                                                                                     
000444   e101     BNZ       0x448                                                                                           
000446   5001     MOVF      0x1,0x0,0x0                                                                                     
000448   e171     BNZ       0x52c                                                                                           
00044a   0100     MOVLB     0x0                                                                                             
00044c   5163     MOVF      0x63,0x0,0x1                                                                                    
00044e   e16e     BNZ       0x52c                                                                                           
000450   0100     MOVLB     0x0                                                                                             
000452   51c2     MOVF      0xc2,0x0,0x1                                                                                    
000454   0100     MOVLB     0x0                                                                                             
000456   1964     XORWF     0x64,0x0,0x1                                                                                    
000458   e104     BNZ       0x462                                                                                           
00045a   0100     MOVLB     0x0                                                                                             
00045c   51c3     MOVF      0xc3,0x0,0x1                                                                                    
00045e   0100     MOVLB     0x0                                                                                             
000460   1965     XORWF     0x65,0x0,0x1                                                                                    
000462   e164     BNZ       0x52c                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000464   0e1c     MOVLW     0x1c                            BYTE localIndex = (BYTE)((cm.funcc & 0x1C)>>2)*8;                           F:\MCP\projects\CAN\canBoot\Source\Main.c
000466   0100     MOVLB     0x0                                                                                             
000468   1561     ANDWF     0x61,0x0,0x1                                                                                    
00046a   6e00     MOVWF     0x0,0x0                                                                                         
00046c   6a01     CLRF      0x1,0x0                                                                                         
00046e   90d8     BCF       0xd8,0x0,0x0                                                                                    
000470   3201     RRCF      0x1,0x1,0x0                                                                                     
000472   3200     RRCF      0x0,0x1,0x0                                                                                     
000474   90d8     BCF       0xd8,0x0,0x0                                                                                    
000476   3201     RRCF      0x1,0x1,0x0                                                                                     
000478   3200     RRCF      0x0,0x1,0x0                                                                                     
00047a   0e08     MOVLW     0x8                                                                                             
00047c   0200     MULWF     0x0,0x0                                                                                         
00047e   0e16     MOVLW     0x16                                                                                            
000480   cff3     MOVFF     0xff3,0xfdb                                                                                     
000482   ffdb                                                                                                               
                                                            // Save bytes in memory, inc received bytes.                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000484   0e16     MOVLW     0x16                            pgmData[localIndex+0]=cm.data[0]; pgmData[localIndex+1]=cm.data[1]; pgmData[localIndex+2]=cm.data[2]; pgmData[localIndex+3]=cm.data[3]; F:\MCP\projects\CAN\canBoot\Source\Main.c
000486   50db     MOVF      0xdb,0x0,0x0                                                                                    
000488   6aea     CLRF      0xea,0x0                                                                                        
00048a   0f6f     ADDLW     0x6f                                                                                            
00048c   6ee9     MOVWF     0xe9,0x0                                                                                        
00048e   0e00     MOVLW     0x0                                                                                             
000490   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
000492   c067     MOVFF     0x67,0xfef                                                                                      
000494   ffef                                                                                                               
000496   0e16     MOVLW     0x16                                                                                            
000498   28db     INCF      0xdb,0x0,0x0                                                                                    
00049a   6aea     CLRF      0xea,0x0                                                                                        
00049c   0f6f     ADDLW     0x6f                                                                                            
00049e   6ee9     MOVWF     0xe9,0x0                                                                                        
0004a0   0e00     MOVLW     0x0                                                                                             
0004a2   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0004a4   c068     MOVFF     0x68,0xfef                                                                                      
0004a6   ffef                                                                                                               
0004a8   0e16     MOVLW     0x16                                                                                            
0004aa   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004ac   0f02     ADDLW     0x2                                                                                             
0004ae   6aea     CLRF      0xea,0x0                                                                                        
0004b0   0f6f     ADDLW     0x6f                                                                                            
0004b2   6ee9     MOVWF     0xe9,0x0                                                                                        
0004b4   0e00     MOVLW     0x0                                                                                             
0004b6   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0004b8   c069     MOVFF     0x69,0xfef                                                                                      
0004ba   ffef                                                                                                               
0004bc   0e16     MOVLW     0x16                                                                                            
0004be   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004c0   0f03     ADDLW     0x3                                                                                             
0004c2   6aea     CLRF      0xea,0x0                                                                                        
0004c4   0f6f     ADDLW     0x6f                                                                                            
0004c6   6ee9     MOVWF     0xe9,0x0                                                                                        
0004c8   0e00     MOVLW     0x0                                                                                             
0004ca   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0004cc   c06a     MOVFF     0x6a,0xfef                                                                                      
0004ce   ffef                                                                                                               
0004d0   0e16     MOVLW     0x16                            pgmData[localIndex+4]=cm.data[4]; pgmData[localIndex+5]=cm.data[5]; pgmData[localIndex+6]=cm.data[6]; pgmData[localIndex+7]=cm.data[7]; F:\MCP\projects\CAN\canBoot\Source\Main.c
0004d2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004d4   0f04     ADDLW     0x4                                                                                             
0004d6   6aea     CLRF      0xea,0x0                                                                                        
0004d8   0f6f     ADDLW     0x6f                                                                                            
0004da   6ee9     MOVWF     0xe9,0x0                                                                                        
0004dc   0e00     MOVLW     0x0                                                                                             
0004de   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0004e0   c06b     MOVFF     0x6b,0xfef                                                                                      
0004e2   ffef                                                                                                               
0004e4   0e16     MOVLW     0x16                                                                                            
0004e6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004e8   0f05     ADDLW     0x5                                                                                             
0004ea   6aea     CLRF      0xea,0x0                                                                                        
0004ec   0f6f     ADDLW     0x6f                                                                                            
0004ee   6ee9     MOVWF     0xe9,0x0                                                                                        
0004f0   0e00     MOVLW     0x0                                                                                             
0004f2   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
0004f4   c06c     MOVFF     0x6c,0xfef                                                                                      
0004f6   ffef                                                                                                               
0004f8   0e16     MOVLW     0x16                                                                                            
0004fa   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004fc   0f06     ADDLW     0x6                                                                                             
0004fe   6aea     CLRF      0xea,0x0                                                                                        
000500   0f6f     ADDLW     0x6f                                                                                            
000502   6ee9     MOVWF     0xe9,0x0                                                                                        
000504   0e00     MOVLW     0x0                                                                                             
000506   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
000508   c06d     MOVFF     0x6d,0xfef                                                                                      
00050a   ffef                                                                                                               
00050c   0e16     MOVLW     0x16                                                                                            
00050e   50db     MOVF      0xdb,0x0,0x0                                                                                    
000510   0f07     ADDLW     0x7                                                                                             
000512   6aea     CLRF      0xea,0x0                                                                                        
000514   0f6f     ADDLW     0x6f                                                                                            
000516   6ee9     MOVWF     0xe9,0x0                                                                                        
000518   0e00     MOVLW     0x0                                                                                             
00051a   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
00051c   c06e     MOVFF     0x6e,0xfef                                                                                      
00051e   ffef                                                                                                               
                                                                                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
000520   0e08     MOVLW     0x8                             bytesReceived   += 8;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
000522   0100     MOVLB     0x0                                                                                             
000524   27ca     ADDWF     0xca,0x1,0x1                                                                                    
000526   0100     MOVLB     0x0                             pgs              = pgsWAIT_PGM_PACKET;                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000528   0e03     MOVLW     0x3                                                                                             
00052a   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // If adress packet (control packet)..                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
00052c   0e14     MOVLW     0x14                        if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && cm.funcc==FUNCC_BOOT_ADDR && cm.nid==MY_NID && cm.sid==programmerSid) F:\MCP\projects\CAN\canBoot\Source\Main.c
00052e   04db     DECF      0xdb,0x0,0x0                                                                                    
000530   e11e     BNZ       0x56e                                                                                           
000532   0100     MOVLB     0x0                                                                                             
000534   5160     MOVF      0x60,0x0,0x1                                                                                    
000536   e11b     BNZ       0x56e                                                                                           
000538   0100     MOVLB     0x0                                                                                             
00053a   0e02     MOVLW     0x2                                                                                             
00053c   1961     XORWF     0x61,0x0,0x1                                                                                    
00053e   e101     BNZ       0x542                                                                                           
000540   5162     MOVF      0x62,0x0,0x1                                                                                    
000542   e115     BNZ       0x56e                                                                                           
000544   0100     MOVLB     0x0                                                                                             
000546   5163     MOVF      0x63,0x0,0x1                                                                                    
000548   e112     BNZ       0x56e                                                                                           
00054a   0100     MOVLB     0x0                                                                                             
00054c   51c2     MOVF      0xc2,0x0,0x1                                                                                    
00054e   0100     MOVLB     0x0                                                                                             
000550   1964     XORWF     0x64,0x0,0x1                                                                                    
000552   e104     BNZ       0x55c                                                                                           
000554   0100     MOVLB     0x0                                                                                             
000556   51c3     MOVF      0xc3,0x0,0x1                                                                                    
000558   0100     MOVLB     0x0                                                                                             
00055a   1965     XORWF     0x65,0x0,0x1                                                                                    
00055c   e108     BNZ       0x56e                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // Send ack and goto wait first packet.                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // save adress.                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
00055e   0100     MOVLB     0x0                             errMsg          = ERR_NO_ERROR;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000560   6bc4     CLRF      0xc4,0x1                                                                                        
000562   0100     MOVLB     0x0                             afterAckPgs     = pgsWAIT_FIRST_PGM_PACKET;                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000564   0e02     MOVLW     0x2                                                                                             
000566   6fc5     MOVWF     0xc5,0x1                                                                                        
000568   0100     MOVLB     0x0                             pgs             = pgsSEND_ACK;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
00056a   0e01     MOVLW     0x1                                                                                             
00056c   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // If end packet...                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
00056e   0e14     MOVLW     0x14                        if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && cm.funcc==FUNCC_BOOT_DONE && cm.nid==MY_NID && cm.sid==programmerSid) F:\MCP\projects\CAN\canBoot\Source\Main.c
000570   04db     DECF      0xdb,0x0,0x0                                                                                    
000572   e136     BNZ       0x5e0                                                                                           
000574   0100     MOVLB     0x0                                                                                             
000576   5160     MOVF      0x60,0x0,0x1                                                                                    
000578   e133     BNZ       0x5e0                                                                                           
00057a   0100     MOVLB     0x0                                                                                             
00057c   0e05     MOVLW     0x5                                                                                             
00057e   1961     XORWF     0x61,0x0,0x1                                                                                    
000580   e101     BNZ       0x584                                                                                           
000582   5162     MOVF      0x62,0x0,0x1                                                                                    
000584   e12d     BNZ       0x5e0                                                                                           
000586   0100     MOVLB     0x0                                                                                             
000588   5163     MOVF      0x63,0x0,0x1                                                                                    
00058a   e12a     BNZ       0x5e0                                                                                           
00058c   0100     MOVLB     0x0                                                                                             
00058e   51c2     MOVF      0xc2,0x0,0x1                                                                                    
000590   0100     MOVLB     0x0                                                                                             
000592   1964     XORWF     0x64,0x0,0x1                                                                                    
000594   e104     BNZ       0x59e                                                                                           
000596   0100     MOVLB     0x0                                                                                             
000598   51c3     MOVF      0xc3,0x0,0x1                                                                                    
00059a   0100     MOVLB     0x0                                                                                             
00059c   1965     XORWF     0x65,0x0,0x1                                                                                    
00059e   e120     BNZ       0x5e0                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // write program.                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // If no bytes received at all, assume end.                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // If not 64 bytes received, send error ack and wait for first packet.      F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            // If 64, write.                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0005a0   0100     MOVLB     0x0                             if (bytesReceived==0)                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
0005a2   51ca     MOVF      0xca,0x0,0x1                                                                                    
0005a4   e109     BNZ       0x5b8                                                                                           
                                                            {                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                // No received, done.                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0005a6   0100     MOVLB     0x0                                 errMsg          = ERR_NO_ERROR;                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
0005a8   6bc4     CLRF      0xc4,0x1                                                                                        
0005aa   0100     MOVLB     0x0                                 afterAckPgs     = pgsDONE;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
0005ac   0e05     MOVLW     0x5                                                                                             
0005ae   6fc5     MOVWF     0xc5,0x1                                                                                        
0005b0   0100     MOVLB     0x0                                 pgs             = pgsSEND_ACK;                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0005b2   0e01     MOVLW     0x1                                                                                             
0005b4   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                            }                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
0005b6   d014     BRA       0x5e0                           else if (bytesReceived!=64)                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
0005b8   0e40     MOVLW     0x40                                                                                            
0005ba   0100     MOVLB     0x0                                                                                             
0005bc   5dca     SUBWF     0xca,0x0,0x1                                                                                    
0005be   e00a     BZ        0x5d4                                                                                           
                                                            {                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
0005c0   0100     MOVLB     0x0                                 errMsg          = ERR_ERROR;                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0005c2   0e01     MOVLW     0x1                                                                                             
0005c4   6fc4     MOVWF     0xc4,0x1                                                                                        
0005c6   0100     MOVLB     0x0                                 afterAckPgs     = pgsWAIT_FIRST_PGM_PACKET;                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
0005c8   0e02     MOVLW     0x2                                                                                             
0005ca   6fc5     MOVWF     0xc5,0x1                                                                                        
0005cc   0100     MOVLB     0x0                                 pgs             = pgsSEND_ACK;                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0005ce   0e01     MOVLW     0x1                                                                                             
0005d0   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                            }                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
0005d2   d006     BRA       0x5e0                           else                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                            {                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
0005d4   0100     MOVLB     0x0                                 pgs              = pgsWRITE_PROGRAM;                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
0005d6   0e04     MOVLW     0x4                                                                                             
0005d8   6fbd     MOVWF     0xbd,0x1                                                                                        
0005da   0100     MOVLB     0x0                                 afterAckPgs     = pgsDONE;                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
0005dc   0e05     MOVLW     0x5                                                                                             
0005de   6fc5     MOVWF     0xc5,0x1                                                                                        
                                                            }                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // If bytes received 64, write..                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
0005e0   0e40     MOVLW     0x40                        if (bytesReceived==64)                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
0005e2   0100     MOVLB     0x0                                                                                             
0005e4   5dca     SUBWF     0xca,0x0,0x1                                                                                    
0005e6   e107     BNZ       0x5f6                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0005e8   7282     BTG       0x82,0x1,0x0                    LED0_IO=~LED0_IO;                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
0005ea   0100     MOVLB     0x0                             pgs              = pgsWRITE_PROGRAM;                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
0005ec   0e04     MOVLW     0x4                                                                                             
0005ee   6fbd     MOVWF     0xbd,0x1                                                                                        
0005f0   0100     MOVLB     0x0                             afterAckPgs     = pgsWAIT_PGM_PACKET;                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
0005f2   0e03     MOVLW     0x3                                                                                             
0005f4   6fc5     MOVWF     0xc5,0x1                                                                                        
                                                            // TODO! Send ack more than once..                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0005f6   d0b5     BRA       0x762                   break;                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                    case pgsWRITE_PROGRAM:                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0005f8   0004     CLRWDT                                ClrWdt();                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // Write program and send ack.                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // Check addr limit                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
0005fa   0e00     MOVLW     0x0                         if (pgmAddress<RM_RESET_VECTOR)                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
0005fc   0100     MOVLB     0x0                                                                                             
0005fe   5dc6     SUBWF     0xc6,0x0,0x1                                                                                    
000600   0e10     MOVLW     0x10                                                                                            
000602   59c7     SUBWFB    0xc7,0x0,0x1                                                                                    
000604   0e00     MOVLW     0x0                                                                                             
000606   59c8     SUBWFB    0xc8,0x0,0x1                                                                                    
000608   0e00     MOVLW     0x0                                                                                             
00060a   59c9     SUBWFB    0xc9,0x0,0x1                                                                                    
00060c   e206     BC        0x61a                                                                                           
                                                        {                                                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
00060e   0100     MOVLB     0x0                             errMsg          = ERR_ERROR;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
000610   0e01     MOVLW     0x1                                                                                             
000612   6fc4     MOVWF     0xc4,0x1                                                                                        
000614   0100     MOVLB     0x0                             pgs             = pgsSEND_ACK;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
000616   0e01     MOVLW     0x1                                                                                             
000618   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                            //Not allowed to write here!                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        //Load Table pointer registers with base address to erase.                   F:\MCP\projects\CAN\canBoot\Source\Main.c
00061a   c0c6     MOVFF     0xc6,0x0                    TBLPTRU = (BYTE)((pgmAddress & 0xFF0000)>>16);                               F:\MCP\projects\CAN\canBoot\Source\Main.c
00061c   f000                                                                                                               
00061e   c0c7     MOVFF     0xc7,0x1                                                                                        
000620   f001                                                                                                               
000622   c0c8     MOVFF     0xc8,0x2                                                                                        
000624   f002                                                                                                               
000626   c0c9     MOVFF     0xc9,0x3                                                                                        
000628   f003                                                                                                               
00062a   6a00     CLRF      0x0,0x0                                                                                         
00062c   6a01     CLRF      0x1,0x0                                                                                         
00062e   6a03     CLRF      0x3,0x0                                                                                         
000630   0e10     MOVLW     0x10                                                                                            
000632   90d8     BCF       0xd8,0x0,0x0                                                                                    
000634   3203     RRCF      0x3,0x1,0x0                                                                                     
000636   3202     RRCF      0x2,0x1,0x0                                                                                     
000638   3201     RRCF      0x1,0x1,0x0                                                                                     
00063a   3200     RRCF      0x0,0x1,0x0                                                                                     
00063c   06e8     DECF      0xe8,0x1,0x0                                                                                    
00063e   e1f9     BNZ       0x632                                                                                           
000640   5000     MOVF      0x0,0x0,0x0                                                                                     
000642   6ef8     MOVWF     0xf8,0x0                                                                                        
000644   c0c6     MOVFF     0xc6,0x0                    TBLPTRH = (BYTE)((pgmAddress & 0xFF00)>>8);                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
000646   f000                                                                                                               
000648   c0c7     MOVFF     0xc7,0x1                                                                                        
00064a   f001                                                                                                               
00064c   c0c8     MOVFF     0xc8,0x2                                                                                        
00064e   f002                                                                                                               
000650   c0c9     MOVFF     0xc9,0x3                                                                                        
000652   f003                                                                                                               
000654   6a00     CLRF      0x0,0x0                                                                                         
000656   6a02     CLRF      0x2,0x0                                                                                         
000658   6a03     CLRF      0x3,0x0                                                                                         
00065a   0e08     MOVLW     0x8                                                                                             
00065c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00065e   3203     RRCF      0x3,0x1,0x0                                                                                     
000660   3202     RRCF      0x2,0x1,0x0                                                                                     
000662   3201     RRCF      0x1,0x1,0x0                                                                                     
000664   3200     RRCF      0x0,0x1,0x0                                                                                     
000666   06e8     DECF      0xe8,0x1,0x0                                                                                    
000668   e1f9     BNZ       0x65c                                                                                           
00066a   5000     MOVF      0x0,0x0,0x0                                                                                     
00066c   6ef7     MOVWF     0xf7,0x0                                                                                        
00066e   0100     MOVLB     0x0                         TBLPTRL = (BYTE)(pgmAddress & 0xFF);                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
000670   51c6     MOVF      0xc6,0x0,0x1                                                                                    
000672   6ef6     MOVWF     0xf6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // point to Flash program memory                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000674   8ea6     BSF       0xa6,0x7,0x0                EECON1bits.EEPGD = 1;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // access Flash program memory                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000676   9ca6     BCF       0xa6,0x6,0x0                EECON1bits.CFGS = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // enable write to memory                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000678   84a6     BSF       0xa6,0x2,0x0                EECON1bits.WREN = 1;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // enable Row Erase operation                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
00067a   88a6     BSF       0xa6,0x4,0x0                EECON1bits.FREE = 1;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // disable interrupts                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
00067c   9ef2     BCF       0xf2,0x7,0x0                INTCONbits.GIE = 0;                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // Do it!                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
00067e   0e55     MOVLW     0x55                        EECON2 = 0x55;                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000680   6ea7     MOVWF     0xa7,0x0                                                                                        
000682   0eaa     MOVLW     0xaa                        EECON2 = 0xAA;                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000684   6ea7     MOVWF     0xa7,0x0                                                                                        
000686   82a6     BSF       0xa6,0x1,0x0                EECON1bits.WR = 1;                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // enable interrupts                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
000688   8ef2     BSF       0xf2,0x7,0x0                INTCONbits.GIE = 1;                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        //Load Table pointer registers with base address to program.                 F:\MCP\projects\CAN\canBoot\Source\Main.c
00068a   c0c6     MOVFF     0xc6,0x0                    TBLPTRU = (BYTE)((pgmAddress & 0xFF0000)>>16);                               F:\MCP\projects\CAN\canBoot\Source\Main.c
00068c   f000                                                                                                               
00068e   c0c7     MOVFF     0xc7,0x1                                                                                        
000690   f001                                                                                                               
000692   c0c8     MOVFF     0xc8,0x2                                                                                        
000694   f002                                                                                                               
000696   c0c9     MOVFF     0xc9,0x3                                                                                        
000698   f003                                                                                                               
00069a   6a00     CLRF      0x0,0x0                                                                                         
00069c   6a01     CLRF      0x1,0x0                                                                                         
00069e   6a03     CLRF      0x3,0x0                                                                                         
0006a0   0e10     MOVLW     0x10                                                                                            
0006a2   90d8     BCF       0xd8,0x0,0x0                                                                                    
0006a4   3203     RRCF      0x3,0x1,0x0                                                                                     
0006a6   3202     RRCF      0x2,0x1,0x0                                                                                     
0006a8   3201     RRCF      0x1,0x1,0x0                                                                                     
0006aa   3200     RRCF      0x0,0x1,0x0                                                                                     
0006ac   06e8     DECF      0xe8,0x1,0x0                                                                                    
0006ae   e1f9     BNZ       0x6a2                                                                                           
0006b0   5000     MOVF      0x0,0x0,0x0                                                                                     
0006b2   6ef8     MOVWF     0xf8,0x0                                                                                        
0006b4   c0c6     MOVFF     0xc6,0x0                    TBLPTRH = (BYTE)((pgmAddress & 0xFF00)>>8);                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
0006b6   f000                                                                                                               
0006b8   c0c7     MOVFF     0xc7,0x1                                                                                        
0006ba   f001                                                                                                               
0006bc   c0c8     MOVFF     0xc8,0x2                                                                                        
0006be   f002                                                                                                               
0006c0   c0c9     MOVFF     0xc9,0x3                                                                                        
0006c2   f003                                                                                                               
0006c4   6a00     CLRF      0x0,0x0                                                                                         
0006c6   6a02     CLRF      0x2,0x0                                                                                         
0006c8   6a03     CLRF      0x3,0x0                                                                                         
0006ca   0e08     MOVLW     0x8                                                                                             
0006cc   90d8     BCF       0xd8,0x0,0x0                                                                                    
0006ce   3203     RRCF      0x3,0x1,0x0                                                                                     
0006d0   3202     RRCF      0x2,0x1,0x0                                                                                     
0006d2   3201     RRCF      0x1,0x1,0x0                                                                                     
0006d4   3200     RRCF      0x0,0x1,0x0                                                                                     
0006d6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0006d8   e1f9     BNZ       0x6cc                                                                                           
0006da   5000     MOVF      0x0,0x0,0x0                                                                                     
0006dc   6ef7     MOVWF     0xf7,0x0                                                                                        
0006de   0100     MOVLB     0x0                         TBLPTRL = (BYTE)(pgmAddress & 0xFF);                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0006e0   51c6     MOVF      0xc6,0x0,0x1                                                                                    
0006e2   6ef6     MOVWF     0xf6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // Load bytes                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
0006e4   0e04     MOVLW     0x4                         for(i=0;i<63;i++)                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0006e6   6adb     CLRF      0xdb,0x0                                                                                        
0006e8   0e3f     MOVLW     0x3f                                                                                            
0006ea   6ef3     MOVWF     0xf3,0x0                                                                                        
0006ec   0e04     MOVLW     0x4                                                                                             
0006ee   cfdb     MOVFF     0xfdb,0xff4                                                                                     
0006f0   fff4                                                                                                               
0006f2   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0006f4   5cf4     SUBWF     0xf4,0x0,0x0                                                                                    
0006f6   e20d     BC        0x712                                                                                           
00070c   0e04     MOVLW     0x4                                                                                             
00070e   2adb     INCF      0xdb,0x1,0x0                                                                                    
000710   d7eb     BRA       0x6e8                                                                                           
                                                        {                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0006f8   0e04     MOVLW     0x4                             TABLAT=pgmData[i];                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
0006fa   50db     MOVF      0xdb,0x0,0x0                                                                                    
0006fc   6aea     CLRF      0xea,0x0                                                                                        
0006fe   0f6f     ADDLW     0x6f                                                                                            
000700   6ee9     MOVWF     0xe9,0x0                                                                                        
000702   0e00     MOVLW     0x0                                                                                             
000704   22ea     ADDWFC    0xea,0x1,0x0                                                                                    
000706   50ef     MOVF      0xef,0x0,0x0                                                                                    
000708   6ef5     MOVWF     0xf5,0x0                                                                                        
00070a   d9c2     RCALL     0xa90                           TBLWTPOSTINC_Func();                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        }                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000712   c0ae     MOVFF     0xae,0xff5                  TABLAT=pgmData[63];                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000714   fff5                                                                                                               
000716   d9ba     RCALL     0xa8c                       TBLWT_Func();                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // point to Flash program memory                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000718   8ea6     BSF       0xa6,0x7,0x0                EECON1bits.EEPGD = 1;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // access Flash program memory                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
00071a   9ca6     BCF       0xa6,0x6,0x0                EECON1bits.CFGS = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // enable write to memory                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
00071c   84a6     BSF       0xa6,0x2,0x0                EECON1bits.WREN = 1;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // disable interrupts                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
00071e   9ef2     BCF       0xf2,0x7,0x0                INTCONbits.GIE = 0;                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // Do it!                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000720   0e55     MOVLW     0x55                        EECON2 = 0x55;                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000722   6ea7     MOVWF     0xa7,0x0                                                                                        
000724   0eaa     MOVLW     0xaa                        EECON2 = 0xAA;                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000726   6ea7     MOVWF     0xa7,0x0                                                                                        
000728   82a6     BSF       0xa6,0x1,0x0                EECON1bits.WR = 1;                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // enable interrupts                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
00072a   8ef2     BSF       0xf2,0x7,0x0                INTCONbits.GIE = 1;                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                        // disable write to memory                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
00072c   94a6     BCF       0xa6,0x2,0x0                EECON1bits.WREN = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00072e   0e40     MOVLW     0x40                        pgmAddress     += 64;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
000730   0100     MOVLB     0x0                                                                                             
000732   27c6     ADDWF     0xc6,0x1,0x1                                                                                    
000734   0e00     MOVLW     0x0                                                                                             
000736   0100     MOVLB     0x0                                                                                             
000738   23c7     ADDWFC    0xc7,0x1,0x1                                                                                    
00073a   0e00     MOVLW     0x0                                                                                             
00073c   0100     MOVLB     0x0                                                                                             
00073e   23c8     ADDWFC    0xc8,0x1,0x1                                                                                    
000740   0e00     MOVLW     0x0                                                                                             
000742   0100     MOVLB     0x0                                                                                             
000744   23c9     ADDWFC    0xc9,0x1,0x1                                                                                    
000746   0100     MOVLB     0x0                         bytesReceived   = 0;                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000748   6bca     CLRF      0xca,0x1                                                                                        
00074a   0100     MOVLB     0x0                         errMsg          = ERR_NO_ERROR;                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
00074c   6bc4     CLRF      0xc4,0x1                                                                                        
00074e   0100     MOVLB     0x0                         pgs             = pgsSEND_ACK;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
000750   0e01     MOVLW     0x1                                                                                             
000752   6fbd     MOVWF     0xbd,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000754   d006     BRA       0x762                   break;                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                    case pgsDONE:                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
000756   ef00     GOTO      0x1000                      _asm  goto RM_RESET_VECTOR _endasm                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
000758   f008                                                                                                               
00075a   d003     BRA       0x762                   break;                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                    default:                                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
00075c   0100     MOVLB     0x0                         pgs = pgsWATING_START;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
00075e   6bbd     CLRF      0xbd,0x1                                                                                        
000760   d000     BRA       0x762                   break;                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
000764   0e17     MOVLW     0x17           }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000766   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
000768   e202     BC        0x76e                                                                                           
00076a   6ae1     CLRF      0xe1,0x0                                                                                        
00076c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00076e   6ee1     MOVWF     0xe1,0x0                                                                                        
000770   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000772   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000774   ffd9                                                                                                               
000776   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Function: mainInit                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Affects: Se code                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000778   9294     BCF       0x94,0x1,0x0    LED0_TRIS=0;                                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                               // Enable internal PORTB pull-ups                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00077a   9ef1     BCF       0xf1,0x7,0x0       INTCON2bits.RBPU = 0;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Enable Interrupts                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00077c   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
00077e   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
000780   8ed0     BSF       0xd0,0x7,0x0    RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000782   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           /// CAN-------------------------------------------------------                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Function: canInit                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Affects: Changes can registers.                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void canInit()                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000784   0e80     MOVLW     0x80            CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000786   6e6f     MOVWF     0x6f,0x0                                                                                        
000788   0ee0     MOVLW     0xe0            while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBoot\Source\Main.c
00078a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
00078c   0880     SUBLW     0x80                                                                                            
00078e   e001     BZ        0x792                                                                                           
000790   d7fb     BRA       0x788                                                                                           
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // BAUD AND TQS                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000792   6a70     CLRF      0x70,0x0        BRGCON1=0;                                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
000794   9e70     BCF       0x70,0x7,0x0    BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000796   8c70     BSF       0x70,0x6,0x0    BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Setting BRP.                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
000798   0e04     MOVLW     0x4             BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
00079a   1070     IORWF     0x70,0x0,0x0                                                                                    
00079c   6e70     MOVWF     0x70,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
00079e   8e71     BSF       0x71,0x7,0x0    BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0007a0   9a71     BCF       0x71,0x5,0x0    BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
0007a2   9871     BCF       0x71,0x4,0x0    BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
0007a4   8671     BSF       0x71,0x3,0x0    BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
0007a6   9471     BCF       0x71,0x2,0x0    BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0007a8   9271     BCF       0x71,0x1,0x0    BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0007aa   8071     BSF       0x71,0x0,0x0    BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            //  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
0007ac   9e72     BCF       0x72,0x7,0x0    BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
0007ae   9c72     BCF       0x72,0x6,0x0    BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0007b0   9472     BCF       0x72,0x2,0x0    BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
0007b2   9272     BCF       0x72,0x1,0x0    BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
0007b4   8072     BSF       0x72,0x0,0x0    BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0007b6   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0007b8   8e77     BSF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 1;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0007ba   9c77     BCF       0x77,0x6,0x0    ECANCONbits.MDSEL0 = 0;                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0007bc   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
0007be   9a60     BCF       0x60,0x5,0x0    RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // INTERRUPTS                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Diable transmit interrupt                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
0007c0   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0007c2   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            //rx no interrupt                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
0007c4   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
0007c6   6aa3     CLRF      0xa3,0x0        PIE3 = 0;                                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            // Programmable no buffers interrupt                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0007c8   6bfa     CLRF      0xfa,0x1        BIE0  = 0x00;                                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            //loopback mode or not                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            #ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                            #else                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
0007ca   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0007cc   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBoot\Source\Main.c
0007ce   146e     ANDWF     0x6e,0x0,0x0                                                                                    
0007d0   e001     BZ        0x7d4                                                                                           
0007d2   d7fc     BRA       0x7cc                                                                                           
                                            #endif                                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0007d4   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Function: canGetPacket                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           BOOL canGetPacket()                                                              F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // Get which buffer that is ful.                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
0007d6   0e0f     MOVLW     0xf                 ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBoot\Source\Main.c
0007d8   146f     ANDWF     0x6f,0x0,0x0                                                                                    
0007da   0910     IORLW     0x10                                                                                            
0007dc   6e00     MOVWF     0x0,0x0                                                                                         
0007de   0e00     MOVLW     0x0                                                                                             
0007e0   1477     ANDWF     0x77,0x0,0x0                                                                                    
0007e2   1000     IORWF     0x0,0x0,0x0                                                                                     
0007e4   6e77     MOVWF     0x77,0x0                                                                                        
0007e6   be60     BTFSC     0x60,0x7,0x0        if (!RXB0CONbits.RXFUL) return FALSE;                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
0007e8   d002     BRA       0x7ee                                                                                           
0007ea   0e00     MOVLW     0x0                                                                                             
0007ec   d07c     BRA       0x8e6                                                                                           
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0007ee   0ef0     MOVLW     0xf0                    cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0007f0   1461     ANDWF     0x61,0x0,0x0                                                                                    
0007f2   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
0007f4   0b0f     ANDLW     0xf                                                                                             
0007f6   0100     MOVLB     0x0                                                                                             
0007f8   6f60     MOVWF     0x60,0x1                                                                                        
0007fa   0e0f     MOVLW     0xf                    cm.funcc=(((WORD)(RXB0SIDH & 0x0F))<<6)+(((WORD)(RXB0SIDL & 0xE0))>>2)+(((WORD)(RXB0SIDL & 0x03))<<1)+(((WORD)(RXB0EIDH & 0x80))>>7); F:\MCP\projects\CAN\canBoot\Source\Main.c
0007fc   1461     ANDWF     0x61,0x0,0x0                                                                                    
0007fe   6e04     MOVWF     0x4,0x0                                                                                         
000800   6a05     CLRF      0x5,0x0                                                                                         
000802   0e06     MOVLW     0x6                                                                                             
000804   90d8     BCF       0xd8,0x0,0x0                                                                                    
000806   3604     RLCF      0x4,0x1,0x0                                                                                     
000808   3605     RLCF      0x5,0x1,0x0                                                                                     
00080a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00080c   e1fb     BNZ       0x804                                                                                           
00080e   0ee0     MOVLW     0xe0                                                                                            
000810   1462     ANDWF     0x62,0x0,0x0                                                                                    
000812   6e06     MOVWF     0x6,0x0                                                                                         
000814   6a07     CLRF      0x7,0x0                                                                                         
000816   90d8     BCF       0xd8,0x0,0x0                                                                                    
000818   3207     RRCF      0x7,0x1,0x0                                                                                     
00081a   3206     RRCF      0x6,0x1,0x0                                                                                     
00081c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00081e   3207     RRCF      0x7,0x1,0x0                                                                                     
000820   3206     RRCF      0x6,0x1,0x0                                                                                     
000822   5004     MOVF      0x4,0x0,0x0                                                                                     
000824   2406     ADDWF     0x6,0x0,0x0                                                                                     
000826   6e02     MOVWF     0x2,0x0                                                                                         
000828   5005     MOVF      0x5,0x0,0x0                                                                                     
00082a   2007     ADDWFC    0x7,0x0,0x0                                                                                     
00082c   6e03     MOVWF     0x3,0x0                                                                                         
00082e   0e03     MOVLW     0x3                                                                                             
000830   1462     ANDWF     0x62,0x0,0x0                                                                                    
000832   6e08     MOVWF     0x8,0x0                                                                                         
000834   6a09     CLRF      0x9,0x0                                                                                         
000836   90d8     BCF       0xd8,0x0,0x0                                                                                    
000838   3608     RLCF      0x8,0x1,0x0                                                                                     
00083a   3609     RLCF      0x9,0x1,0x0                                                                                     
00083c   5002     MOVF      0x2,0x0,0x0                                                                                     
00083e   2408     ADDWF     0x8,0x0,0x0                                                                                     
000840   6e00     MOVWF     0x0,0x0                                                                                         
000842   5003     MOVF      0x3,0x0,0x0                                                                                     
000844   2009     ADDWFC    0x9,0x0,0x0                                                                                     
000846   6e01     MOVWF     0x1,0x0                                                                                         
000848   0e80     MOVLW     0x80                                                                                            
00084a   1463     ANDWF     0x63,0x0,0x0                                                                                    
00084c   6e0a     MOVWF     0xa,0x0                                                                                         
00084e   6a0b     CLRF      0xb,0x0                                                                                         
000850   0e07     MOVLW     0x7                                                                                             
000852   90d8     BCF       0xd8,0x0,0x0                                                                                    
000854   320b     RRCF      0xb,0x1,0x0                                                                                     
000856   320a     RRCF      0xa,0x1,0x0                                                                                     
000858   04e8     DECF      0xe8,0x0,0x0                                                                                    
00085a   e1fb     BNZ       0x852                                                                                           
00085c   5000     MOVF      0x0,0x0,0x0                                                                                     
00085e   240a     ADDWF     0xa,0x0,0x0                                                                                     
000860   0100     MOVLB     0x0                                                                                             
000862   6f61     MOVWF     0x61,0x1                                                                                        
000864   5001     MOVF      0x1,0x0,0x0                                                                                     
000866   200b     ADDWFC    0xb,0x0,0x0                                                                                     
000868   6f62     MOVWF     0x62,0x1                                                                                        
00086a   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
00086c   1463     ANDWF     0x63,0x0,0x0                                                                                    
00086e   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
000870   0b7f     ANDLW     0x7f                                                                                            
000872   6f63     MOVWF     0x63,0x1                                                                                        
000874   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000876   1463     ANDWF     0x63,0x0,0x0                                                                                    
000878   6e00     MOVWF     0x0,0x0                                                                                         
00087a   c000     MOVFF     0x0,0x1                                                                                         
00087c   f001                                                                                                               
00087e   6a00     CLRF      0x0,0x0                                                                                         
000880   5064     MOVF      0x64,0x0,0x0                                                                                    
000882   2400     ADDWF     0x0,0x0,0x0                                                                                     
000884   6f64     MOVWF     0x64,0x1                                                                                        
000886   0e00     MOVLW     0x0                                                                                             
000888   2001     ADDWFC    0x1,0x0,0x0                                                                                     
00088a   6f65     MOVWF     0x65,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
00088c   5065     MOVF      0x65,0x0,0x0        cm.data_length=(RXB0DLCbits.DLC3<<3)+(RXB0DLCbits.DLC2<<2)+(RXB0DLCbits.DLC1<<1)+RXB0DLCbits.DLC0; F:\MCP\projects\CAN\canBoot\Source\Main.c
00088e   0b01     ANDLW     0x1                                                                                             
000890   6e02     MOVWF     0x2,0x0                                                                                         
000892   5065     MOVF      0x65,0x0,0x0                                                                                    
000894   0b02     ANDLW     0x2                                                                                             
000896   e001     BZ        0x89a                                                                                           
000898   0e01     MOVLW     0x1                                                                                             
00089a   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
00089c   6e01     MOVWF     0x1,0x0                                                                                         
00089e   5065     MOVF      0x65,0x0,0x0                                                                                    
0008a0   0b04     ANDLW     0x4                                                                                             
0008a2   e001     BZ        0x8a6                                                                                           
0008a4   0e01     MOVLW     0x1                                                                                             
0008a6   0d04     MULLW     0x4                                                                                             
0008a8   cff3     MOVFF     0xff3,0x0                                                                                       
0008aa   f000                                                                                                               
0008ac   5065     MOVF      0x65,0x0,0x0                                                                                    
0008ae   0b08     ANDLW     0x8                                                                                             
0008b0   e001     BZ        0x8b4                                                                                           
0008b2   0e01     MOVLW     0x1                                                                                             
0008b4   0d08     MULLW     0x8                                                                                             
0008b6   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0008b8   2400     ADDWF     0x0,0x0,0x0                                                                                     
0008ba   2401     ADDWF     0x1,0x0,0x0                                                                                     
0008bc   2402     ADDWF     0x2,0x0,0x0                                                                                     
0008be   6f66     MOVWF     0x66,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
0008c0   cf66     MOVFF     0xf66,0x67          cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
0008c2   f067                                                                                                               
0008c4   cf67     MOVFF     0xf67,0x68                                                                                      
0008c6   f068                                                                                                               
0008c8   cf68     MOVFF     0xf68,0x69          cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0008ca   f069                                                                                                               
0008cc   cf69     MOVFF     0xf69,0x6a                                                                                      
0008ce   f06a                                                                                                               
0008d0   cf6a     MOVFF     0xf6a,0x6b          cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0008d2   f06b                                                                                                               
0008d4   cf6b     MOVFF     0xf6b,0x6c                                                                                      
0008d6   f06c                                                                                                               
0008d8   cf6c     MOVFF     0xf6c,0x6d          cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
0008da   f06d                                                                                                               
0008dc   cf6d     MOVFF     0xf6d,0x6e                                                                                      
0008de   f06e                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0008e0   9e60     BCF       0x60,0x7,0x0        RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0008e2   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
0008e4   d000     BRA       0x8e6                                                                                           
0008e6   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Function: canSendMessage                                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Input:  CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Affects: ..                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
0008e8   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_PROTO_MESSAGE cm,CAN_PRIORITY prio)                      F:\MCP\projects\CAN\canBoot\Source\Main.c
0008ea   ffe6                                                                                                               
0008ec   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0008ee   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
0008f0   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBoot\Source\Main.c
0008f2   b740     BTFSC     0x40,0x3,0x1                                                                                    
0008f4   d004     BRA       0x8fe                                                                                           
0008f6   0e00     MOVLW     0x0                                                                                             
0008f8   1477     ANDWF     0x77,0x0,0x0                                                                                    
0008fa   0903     IORLW     0x3                                                                                             
0008fc   6e77     MOVWF     0x77,0x0                                                                                        
0008fe   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBoot\Source\Main.c
000900   b730     BTFSC     0x30,0x3,0x1                                                                                    
000902   d004     BRA       0x90c                                                                                           
000904   0e00     MOVLW     0x0                                                                                             
000906   1477     ANDWF     0x77,0x0,0x0                                                                                    
000908   0904     IORLW     0x4                                                                                             
00090a   6e77     MOVWF     0x77,0x0                                                                                        
00090c   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBoot\Source\Main.c
00090e   b720     BTFSC     0x20,0x3,0x1                                                                                    
000910   d005     BRA       0x91c                                                                                           
000912   0e00     MOVLW     0x0                                                                                             
000914   1477     ANDWF     0x77,0x0,0x0                                                                                    
000916   0905     IORLW     0x5                                                                                             
000918   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBoot\Source\Main.c
00091a   d002     BRA       0x920           else { return FALSE;}                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
00091c   0e00     MOVLW     0x0                                                                                             
00091e   d0b0     BRA       0xa80                                                                                           
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000920   0eef     MOVLW     0xef            if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
000922   cfdb     MOVFF     0xfdb,0x0                                                                                       
000924   f000                                                                                                               
000926   3400     RLCF      0x0,0x0,0x0                                                                                     
000928   e20e     BC        0x946                                                                                           
00092a   0eef     MOVLW     0xef                                                                                            
00092c   cfdb     MOVFF     0xfdb,0x1                                                                                       
00092e   f001                                                                                                               
000930   0e03     MOVLW     0x3                                                                                             
000932   6ee7     MOVWF     0xe7,0x0                                                                                        
000934   1801     XORWF     0x1,0x0,0x0                                                                                     
000936   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
000938   d002     BRA       0x93e                                                                                           
00093a   3401     RLCF      0x1,0x0,0x0                                                                                     
00093c   d003     BRA       0x944                                                                                           
00093e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
000940   80d8     BSF       0xd8,0x0,0x0                                                                                    
000942   5401     SUBFWB    0x1,0x0,0x0                                                                                     
000944   e202     BC        0x94a                                                                                           
000946   0eef     MOVLW     0xef                                                                                            
000948   6adb     CLRF      0xdb,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                //sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
00094a   0ef1     MOVLW     0xf1                RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBoot\Source\Main.c
00094c   cfdb     MOVFF     0xfdb,0x0                                                                                       
00094e   f000                                                                                                               
000950   0ef2     MOVLW     0xf2                                                                                            
000952   cfdb     MOVFF     0xfdb,0x1                                                                                       
000954   f001                                                                                                               
000956   0ec0     MOVLW     0xc0                                                                                            
000958   1600     ANDWF     0x0,0x1,0x0                                                                                     
00095a   0e03     MOVLW     0x3                                                                                             
00095c   1601     ANDWF     0x1,0x1,0x0                                                                                     
00095e   0e06     MOVLW     0x6                                                                                             
000960   90d8     BCF       0xd8,0x0,0x0                                                                                    
000962   3201     RRCF      0x1,0x1,0x0                                                                                     
000964   3200     RRCF      0x0,0x1,0x0                                                                                     
000966   04e8     DECF      0xe8,0x0,0x0                                                                                    
000968   e1fb     BNZ       0x960                                                                                           
00096a   0ef0     MOVLW     0xf0                                                                                            
00096c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00096e   0b0f     ANDLW     0xf                                                                                             
000970   0d10     MULLW     0x10                                                                                            
000972   50f3     MOVF      0xf3,0x0,0x0                                                                                    
000974   2400     ADDWF     0x0,0x0,0x0                                                                                     
000976   6e61     MOVWF     0x61,0x0                                                                                        
000978   0e06     MOVLW     0x6                 RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBoot\Source\Main.c
00097a   6ee7     MOVWF     0xe7,0x0                                                                                        
00097c   0ef1     MOVLW     0xf1                                                                                            
00097e   cfdb     MOVFF     0xfdb,0x2                                                                                       
000980   f002                                                                                                               
000982   0ef2     MOVLW     0xf2                                                                                            
000984   cfdb     MOVFF     0xfdb,0x3                                                                                       
000986   f003                                                                                                               
000988   50e7     MOVF      0xe7,0x0,0x0                                                                                    
00098a   1602     ANDWF     0x2,0x1,0x0                                                                                     
00098c   6a03     CLRF      0x3,0x0                                                                                         
00098e   90d8     BCF       0xd8,0x0,0x0                                                                                    
000990   3203     RRCF      0x3,0x1,0x0                                                                                     
000992   3202     RRCF      0x2,0x1,0x0                                                                                     
000994   0e3f     MOVLW     0x3f                                                                                            
000996   6ee7     MOVWF     0xe7,0x0                                                                                        
000998   0ef1     MOVLW     0xf1                                                                                            
00099a   cfdb     MOVFF     0xfdb,0x0                                                                                       
00099c   f000                                                                                                               
00099e   0ef2     MOVLW     0xf2                                                                                            
0009a0   cfdb     MOVFF     0xfdb,0x1                                                                                       
0009a2   f001                                                                                                               
0009a4   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0009a6   1600     ANDWF     0x0,0x1,0x0                                                                                     
0009a8   6a01     CLRF      0x1,0x0                                                                                         
0009aa   90d8     BCF       0xd8,0x0,0x0                                                                                    
0009ac   3600     RLCF      0x0,0x1,0x0                                                                                     
0009ae   3601     RLCF      0x1,0x1,0x0                                                                                     
0009b0   90d8     BCF       0xd8,0x0,0x0                                                                                    
0009b2   3600     RLCF      0x0,0x1,0x0                                                                                     
0009b4   3601     RLCF      0x1,0x1,0x0                                                                                     
0009b6   5000     MOVF      0x0,0x0,0x0                                                                                     
0009b8   2402     ADDWF     0x2,0x0,0x0                                                                                     
0009ba   6e62     MOVWF     0x62,0x0                                                                                        
0009bc   0ef4     MOVLW     0xf4                RXB0EIDH = (BYTE)((cm.funcc & 0x0001)<<7)+(BYTE)((cm.nid & 0x3F)<<1)+(BYTE)((cm.sid & 0x0100)>>8); F:\MCP\projects\CAN\canBoot\Source\Main.c
0009be   cfdb     MOVFF     0xfdb,0x2                                                                                       
0009c0   f002                                                                                                               
0009c2   0ef5     MOVLW     0xf5                                                                                            
0009c4   cfdb     MOVFF     0xfdb,0x3                                                                                       
0009c6   f003                                                                                                               
0009c8   0e00     MOVLW     0x0                                                                                             
0009ca   1602     ANDWF     0x2,0x1,0x0                                                                                     
0009cc   0e01     MOVLW     0x1                                                                                             
0009ce   1603     ANDWF     0x3,0x1,0x0                                                                                     
0009d0   c003     MOVFF     0x3,0x2                                                                                         
0009d2   f002                                                                                                               
0009d4   6a03     CLRF      0x3,0x0                                                                                         
0009d6   0e01     MOVLW     0x1                                                                                             
0009d8   6ee7     MOVWF     0xe7,0x0                                                                                        
0009da   0ef1     MOVLW     0xf1                                                                                            
0009dc   cfdb     MOVFF     0xfdb,0x0                                                                                       
0009de   f000                                                                                                               
0009e0   0ef2     MOVLW     0xf2                                                                                            
0009e2   cfdb     MOVFF     0xfdb,0x1                                                                                       
0009e4   f001                                                                                                               
0009e6   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0009e8   1600     ANDWF     0x0,0x1,0x0                                                                                     
0009ea   6a01     CLRF      0x1,0x0                                                                                         
0009ec   0e07     MOVLW     0x7                                                                                             
0009ee   90d8     BCF       0xd8,0x0,0x0                                                                                    
0009f0   3600     RLCF      0x0,0x1,0x0                                                                                     
0009f2   3601     RLCF      0x1,0x1,0x0                                                                                     
0009f4   04e8     DECF      0xe8,0x0,0x0                                                                                    
0009f6   e1fb     BNZ       0x9ee                                                                                           
0009f8   0ef3     MOVLW     0xf3                                                                                            
0009fa   50db     MOVF      0xdb,0x0,0x0                                                                                    
0009fc   0b3f     ANDLW     0x3f                                                                                            
0009fe   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
000a00   2400     ADDWF     0x0,0x0,0x0                                                                                     
000a02   2402     ADDWF     0x2,0x0,0x0                                                                                     
000a04   6e63     MOVWF     0x63,0x0                                                                                        
000a06   0eff     MOVLW     0xff                RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000a08   6ee7     MOVWF     0xe7,0x0                                                                                        
000a0a   0ef4     MOVLW     0xf4                                                                                            
000a0c   cfdb     MOVFF     0xfdb,0x0                                                                                       
000a0e   f000                                                                                                               
000a10   0ef5     MOVLW     0xf5                                                                                            
000a12   cfdb     MOVFF     0xfdb,0x1                                                                                       
000a14   f001                                                                                                               
000a16   50e7     MOVF      0xe7,0x0,0x0                                                                                    
000a18   1600     ANDWF     0x0,0x1,0x0                                                                                     
000a1a   6a01     CLRF      0x1,0x0                                                                                         
000a1c   5000     MOVF      0x0,0x0,0x0                                                                                     
000a1e   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
000a20   6a65     CLRF      0x65,0x0            RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
000a22   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBoot\Source\Main.c
000a24   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a26   0808     SUBLW     0x8                                                                                             
000a28   e203     BC        0xa30                                                                                           
000a2a   0e08     MOVLW     0x8                                                                                             
000a2c   6e65     MOVWF     0x65,0x0                                                                                        
000a2e   d003     BRA       0xa36                                                                                           
000a30   0ef6     MOVLW     0xf6                                                                                            
000a32   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a34   6e65     MOVWF     0x65,0x0                                                                                        
                                                                                                                               F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // NOT Remote request                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                _asm                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
000a36   9c65     BCF       0x65,0x6,0x0            bcf RXB0DLC, 6, 0                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                _endasm                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
000a38   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000a3a   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a3c   6e66     MOVWF     0x66,0x0                                                                                        
000a3e   0ef8     MOVLW     0xf8                                                                                            
000a40   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a42   6e67     MOVWF     0x67,0x0                                                                                        
000a44   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
000a46   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a48   6e68     MOVWF     0x68,0x0                                                                                        
000a4a   0efa     MOVLW     0xfa                                                                                            
000a4c   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a4e   6e69     MOVWF     0x69,0x0                                                                                        
000a50   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
000a52   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a54   6e6a     MOVWF     0x6a,0x0                                                                                        
000a56   0efc     MOVLW     0xfc                                                                                            
000a58   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a5a   6e6b     MOVWF     0x6b,0x0                                                                                        
000a5c   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
000a5e   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a60   6e6c     MOVWF     0x6c,0x0                                                                                        
000a62   0efe     MOVLW     0xfe                                                                                            
000a64   50db     MOVF      0xdb,0x0,0x0                                                                                    
000a66   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // set extended or not                                                         F:\MCP\projects\CAN\canBoot\Source\Main.c
000a68   8662     BSF       0x62,0x3,0x0        RXB0SIDLbits.EXID=1;                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // Priority                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
000a6a   0eef     MOVLW     0xef                RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBoot\Source\Main.c
000a6c   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
000a6e   ffe6                                                                                                               
000a70   0efc     MOVLW     0xfc                                                                                            
000a72   1460     ANDWF     0x60,0x0,0x0                                                                                    
000a74   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000a76   10e7     IORWF     0xe7,0x0,0x0                                                                                    
000a78   6e60     MOVWF     0x60,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                // mark as redy to transmit                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                _asm                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
000a7a   8660     BSF       0x60,0x3,0x0            bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                _endasm                                                                        F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000a7c   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
000a7e   d000     BRA       0xa80                                                                                           
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
000a80   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000a82   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000a84   ffd9                                                                                                               
000a86   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void TBLRD_Func()                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           _asm                                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000a88   0008     TBLRD                     TBLRD                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           _endasm                                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000a8a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void TBLWT_Func()                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           _asm                                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000a8c   000c     TBLWT                     TBLWT                                                                           F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           _endasm                                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000a8e   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           void TBLWTPOSTINC_Func (void){                                                   F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           _asm                                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000a90   000d     TBLWTPOSTINC              TBLWTPOSTINC                                                                    F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           _endasm                                                                          F:\MCP\projects\CAN\canBoot\Source\Main.c
000a92   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           DWORD tickGet()                                                                  F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
000a94   c0b5     MOVFF     0xb5,0x10       return tickCounter;                                                             F:\MCP\projects\CAN\canBoot\Source\Main.c
000a96   f010                                                                                                               
000a98   c0b6     MOVFF     0xb6,0x11                                                                                       
000a9a   f011                                                                                                               
000a9c   c0b7     MOVFF     0xb7,0x12                                                                                       
000a9e   f012                                                                                                               
000aa0   c0b8     MOVFF     0xb8,0x13                                                                                       
000aa2   f013                                                                                                               
000aa4   d000     BRA       0xaa6                                                                                           
000aa6   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBoot\Source\Main.c
                                           #pragma code user = RM_RESET_VECTOR                                              F:\MCP\projects\CAN\canBoot\Source\Main.c