Subversion Repositories HomeAutomation

Rev

Rev 129 | 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: Sun Jan 28 14:51:25 2007


Address  Value    Disassembly              Source                                                                           File
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
                                           /*********************************************************************           F:\MCP\projects\CAN\canIR\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                            *                  Main application                                             F:\MCP\projects\CAN\canIR\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                            *********************************************************************           F:\MCP\projects\CAN\canIR\Source\Main.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canIR/Source/Main.c $ F:\MCP\projects\CAN\canIR\Source\Main.c
                                            * Last changed: $LastChangedDate: 2006-11-19 15:59:01 +0100 (sö, 19 nov 2006) $ F:\MCP\projects\CAN\canIR\Source\Main.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                            * Revision:     $Revision: 125 $                                                   F:\MCP\projects\CAN\canIR\Source\Main.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #ifdef USE_IREC                                                                  F:\MCP\projects\CAN\canIR\Source\Main.c
                                            #include <IRec.h>                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001bb2   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canIR\Source\Main.c
001bb4   ffe6                                                                                                               
001bb6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001bb8   ffd9                                                                                                               
001bba   0e0f     MOVLW     0xf                                                                                             
001bbc   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                            static TICK t = 0;                                                              F:\MCP\projects\CAN\canIR\Source\Main.c
                                            CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                            // Inits                                                                        F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001bbe   d889     RCALL     0x1cd2          mainInit();                                                                     F:\MCP\projects\CAN\canIR\Source\Main.c
001bc0   ec2e     CALL      0x105c,0x0      canInit();                                                                      F:\MCP\projects\CAN\canIR\Source\Main.c
001bc2   f008                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                            #ifdef USE_IREC                                                                 F:\MCP\projects\CAN\canIR\Source\Main.c
001bc4   ec77     CALL      0x16ee,0x0          irecInit();                                                                    F:\MCP\projects\CAN\canIR\Source\Main.c
001bc6   f00b                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001c10   d7db     BRA       0x1bc8          while(1)                                                                        F:\MCP\projects\CAN\canIR\Source\Main.c
                                            {                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                                static TICK t = 0;                                                             F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001bc8   ec8d     CALL      0x1f1a,0x0          if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canIR\Source\Main.c
001bca   f00f                                                                                                               
001bcc   0100     MOVLB     0x0                                                                                             
001bce   518b     MOVF      0x8b,0x0,0x1                                                                                    
001bd0   5c12     SUBWF     0x12,0x0,0x0                                                                                    
001bd2   6e00     MOVWF     0x0,0x0                                                                                         
001bd4   518c     MOVF      0x8c,0x0,0x1                                                                                    
001bd6   5813     SUBWFB    0x13,0x0,0x0                                                                                    
001bd8   6e01     MOVWF     0x1,0x0                                                                                         
001bda   518d     MOVF      0x8d,0x0,0x1                                                                                    
001bdc   5814     SUBWFB    0x14,0x0,0x0                                                                                    
001bde   6e02     MOVWF     0x2,0x0                                                                                         
001be0   518e     MOVF      0x8e,0x0,0x1                                                                                    
001be2   5815     SUBWFB    0x15,0x0,0x0                                                                                    
001be4   6e03     MOVWF     0x3,0x0                                                                                         
001be6   80d8     BSF       0xd8,0x0,0x0                                                                                    
001be8   0e64     MOVLW     0x64                                                                                            
001bea   5400     SUBFWB    0x0,0x0,0x0                                                                                     
001bec   0e00     MOVLW     0x0                                                                                             
001bee   5401     SUBFWB    0x1,0x0,0x0                                                                                     
001bf0   0e00     MOVLW     0x0                                                                                             
001bf2   5402     SUBFWB    0x2,0x0,0x0                                                                                     
001bf4   0e00     MOVLW     0x0                                                                                             
001bf6   5403     SUBFWB    0x3,0x0,0x0                                                                                     
001bf8   e20b     BC        0x1c10                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\Main.c
001bfa   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canIR\Source\Main.c
001bfc   ec8d     CALL      0x1f1a,0x0              t = tickGet();                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001bfe   f00f                                                                                                               
001c00   c012     MOVFF     0x12,0x8b                                                                                       
001c02   f08b                                                                                                               
001c04   c013     MOVFF     0x13,0x8c                                                                                       
001c06   f08c                                                                                                               
001c08   c014     MOVFF     0x14,0x8d                                                                                       
001c0a   f08d                                                                                                               
001c0c   c015     MOVFF     0x15,0x8e                                                                                       
001c0e   f08e                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
001c12   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001c14   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
001c16   e202     BC        0x1c1c                                                                                          
001c18   6ae1     CLRF      0xe1,0x0                                                                                        
001c1a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001c1c   6ee1     MOVWF     0xe1,0x0                                                                                        
001c1e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001c20   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001c22   ffd9                                                                                                               
001c24   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canIR\Source\Main.c
001c26   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canIR\Source\Main.c
001c28   ffe4                                                                                                               
001c2a   cfe2     MOVFF     0xfe2,0xfda                                                                                     
001c2c   ffda                                                                                                               
001c2e   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
001c30   ffe4                                                                                                               
001c32   cfea     MOVFF     0xfea,0xfe4                                                                                     
001c34   ffe4                                                                                                               
001c36   cff6     MOVFF     0xff6,0xfe4                                                                                     
001c38   ffe4                                                                                                               
001c3a   cff7     MOVFF     0xff7,0xfe4                                                                                     
001c3c   ffe4                                                                                                               
001c3e   cff5     MOVFF     0xff5,0xfe4                                                                                     
001c40   ffe4                                                                                                               
001c42   cff3     MOVFF     0xff3,0xfe4                                                                                     
001c44   ffe4                                                                                                               
001c46   cff4     MOVFF     0xff4,0xfe4                                                                                     
001c48   ffe4                                                                                                               
001c4a   cffa     MOVFF     0xffa,0xfe4                                                                                     
001c4c   ffe4                                                                                                               
001c4e   ee00     LFSR      0x0,0xe                                                                                         
001c50   f00e                                                                                                               
001c52   0e0b     MOVLW     0xb                                                                                             
001c54   04e8     DECF      0xe8,0x0,0x0                                                                                    
001c56   e303     BNC       0x1c5e                                                                                          
001c58   cfee     MOVFF     0xfee,0xfe4                                                                                     
001c5a   ffe4                                                                                                               
001c5c   d7fb     BRA       0x1c54                                                                                          
001c5e   ee00     LFSR      0x0,0x0                                                                                         
001c60   f000                                                                                                               
001c62   0e0e     MOVLW     0xe                                                                                             
001c64   04e8     DECF      0xe8,0x0,0x0                                                                                    
001c66   e303     BNC       0x1c6e                                                                                          
001c68   cfee     MOVFF     0xfee,0xfe4                                                                                     
001c6a   ffe4                                                                                                               
001c6c   d7fb     BRA       0x1c64                                                                                          
001c6e   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001c70   ecb3     CALL      0x1166,0x0      canISR();                                                                       F:\MCP\projects\CAN\canIR\Source\Main.c
001c72   f008                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                            #ifdef USE_IREC                                                                 F:\MCP\projects\CAN\canIR\Source\Main.c
001c74   ec82     CALL      0x1704,0x0          irecISR();                                                                     F:\MCP\projects\CAN\canIR\Source\Main.c
001c76   f00b                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001c78   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001c7a   ee00     LFSR      0x0,0xd                                                                                         
001c7c   f00d                                                                                                               
001c7e   0e0e     MOVLW     0xe                                                                                             
001c80   04e8     DECF      0xe8,0x0,0x0                                                                                    
001c82   e303     BNC       0x1c8a                                                                                          
001c84   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001c86   ffed                                                                                                               
001c88   d7fb     BRA       0x1c80                                                                                          
001c8a   ee00     LFSR      0x0,0x18                                                                                        
001c8c   f018                                                                                                               
001c8e   0e0b     MOVLW     0xb                                                                                             
001c90   04e8     DECF      0xe8,0x0,0x0                                                                                    
001c92   e303     BNC       0x1c9a                                                                                          
001c94   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001c96   ffed                                                                                                               
001c98   d7fb     BRA       0x1c90                                                                                          
001c9a   cfe5     MOVFF     0xfe5,0xffa                                                                                     
001c9c   fffa                                                                                                               
001c9e   cfe5     MOVFF     0xfe5,0xff4                                                                                     
001ca0   fff4                                                                                                               
001ca2   cfe5     MOVFF     0xfe5,0xff3                                                                                     
001ca4   fff3                                                                                                               
001ca6   cfe5     MOVFF     0xfe5,0xff5                                                                                     
001ca8   fff5                                                                                                               
001caa   cfe5     MOVFF     0xfe5,0xff7                                                                                     
001cac   fff7                                                                                                               
001cae   cfe5     MOVFF     0xfe5,0xff6                                                                                     
001cb0   fff6                                                                                                               
001cb2   cfe5     MOVFF     0xfe5,0xfea                                                                                     
001cb4   ffea                                                                                                               
001cb6   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
001cb8   ffe9                                                                                                               
001cba   cfe5     MOVFF     0xfe5,0xfda                                                                                     
001cbc   ffda                                                                                                               
001cbe   0011     RETFIE    0x1                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canIR\Source\Main.c
001cc0   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
001cc2   ffe4                                                                                                               
001cc4   cfe2     MOVFF     0xfe2,0xfda                                                                                     
001cc6   ffda                                                                                                               
001cc8   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001cca   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001ccc   cfe5     MOVFF     0xfe5,0xfda                                                                                     
001cce   ffda                                                                                                               
001cd0   0011     RETFIE    0x1                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Function: mainInit                                                             F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Affects: Se code                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canIR\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canIR\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001cd2   9294     BCF       0x94,0x1,0x0    LED0_TRIS=0;                                                                       F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                            // Enable Interrupts                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001cd4   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canIR\Source\Main.c
001cd6   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                            // Enable interrupt prirority                                                   F:\MCP\projects\CAN\canIR\Source\Main.c
001cd8   8ed0     BSF       0xd0,0x7,0x0    RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001cda   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Function: canParse                                                             F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Input:  Received can message                                                    F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canIR\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001cdc   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canIR\Source\Main.c
001cde   ffe6                                                                                                               
001ce0   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001ce2   ffd9                                                                                                               
001ce4   0e0f     MOVLW     0xf                                                                                             
001ce6   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                            CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001ce8   5ce1     SUBWF     0xe1,0x0,0x0   }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001cea   e202     BC        0x1cf0                                                                                          
001cec   6ae1     CLRF      0xe1,0x0                                                                                        
001cee   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001cf0   6ee1     MOVWF     0xe1,0x0                                                                                        
001cf2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001cf4   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001cf6   ffd9                                                                                                               
001cf8   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Function: irecParse                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Input:  Received IR message                                                     F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Pre-conditions: irecInit                                                       F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canIR\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canIR\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #ifdef USE_IREC                                                                  F:\MCP\projects\CAN\canIR\Source\Main.c
001cfa   cfd9     MOVFF     0xfd9,0xfe6    void irecParse(IR_TYPE type, BYTE toggle, BYTE addr, BYTE data)                  F:\MCP\projects\CAN\canIR\Source\Main.c
001cfc   ffe6                                                                                                               
001cfe   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001d00   ffd9                                                                                                               
001d02   0e0f     MOVLW     0xf                                                                                             
001d04   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                            CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canIR\Source\Main.c
001d06   0e01     MOVLW     0x1             outCm.funct         = FUNCT_SENSORS;                                                  F:\MCP\projects\CAN\canIR\Source\Main.c
001d08   6edf     MOVWF     0xdf,0x0                                                                                        
001d0a   6ef3     MOVWF     0xf3,0x0        outCm.funcc         = FUNCC_SENSORS_IR;                                               F:\MCP\projects\CAN\canIR\Source\Main.c
001d0c   cff3     MOVFF     0xff3,0xfdb                                                                                     
001d0e   ffdb                                                                                                               
001d10   0e02     MOVLW     0x2                                                                                             
001d12   6adb     CLRF      0xdb,0x0                                                                                        
001d14   0e04     MOVLW     0x4             outCm.data_length   = 4;                                                         F:\MCP\projects\CAN\canIR\Source\Main.c
001d16   6ef3     MOVWF     0xf3,0x0                                                                                        
001d18   0e06     MOVLW     0x6                                                                                             
001d1a   cff3     MOVFF     0xff3,0xfdb                                                                                     
001d1c   ffdb                                                                                                               
001d1e   0efe     MOVLW     0xfe            outCm.data[3]       = type;                                                          F:\MCP\projects\CAN\canIR\Source\Main.c
001d20   50db     MOVF      0xdb,0x0,0x0                                                                                    
001d22   6ee7     MOVWF     0xe7,0x0                                                                                        
001d24   0e0a     MOVLW     0xa                                                                                             
001d26   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
001d28   ffdb                                                                                                               
001d2a   0efd     MOVLW     0xfd            outCm.data[2]       = toggle;                                                        F:\MCP\projects\CAN\canIR\Source\Main.c
001d2c   50db     MOVF      0xdb,0x0,0x0                                                                                    
001d2e   6ee7     MOVWF     0xe7,0x0                                                                                        
001d30   0e09     MOVLW     0x9                                                                                             
001d32   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
001d34   ffdb                                                                                                               
001d36   0efc     MOVLW     0xfc            outCm.data[1]       = addr;                                                          F:\MCP\projects\CAN\canIR\Source\Main.c
001d38   50db     MOVF      0xdb,0x0,0x0                                                                                    
001d3a   6ee7     MOVWF     0xe7,0x0                                                                                        
001d3c   0e08     MOVLW     0x8                                                                                             
001d3e   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
001d40   ffdb                                                                                                               
001d42   0efb     MOVLW     0xfb            outCm.data[0]       = data;                                                          F:\MCP\projects\CAN\canIR\Source\Main.c
001d44   50db     MOVF      0xdb,0x0,0x0                                                                                    
001d46   6ee7     MOVWF     0xe7,0x0                                                                                        
001d48   0e07     MOVLW     0x7                                                                                             
001d4a   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
001d4c   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001d4e   0e02     MOVLW     0x2             while(!canSendMessage(outCm,PRIO_HIGH));                                        F:\MCP\projects\CAN\canIR\Source\Main.c
001d50   6ee6     MOVWF     0xe6,0x0                                                                                        
001d52   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
001d54   ffe9                                                                                                               
001d56   cfda     MOVFF     0xfda,0xfea                                                                                     
001d58   ffea                                                                                                               
001d5a   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d5c   ffe6                                                                                                               
001d5e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d60   ffe6                                                                                                               
001d62   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d64   ffe6                                                                                                               
001d66   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d68   ffe6                                                                                                               
001d6a   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d6c   ffe6                                                                                                               
001d6e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d70   ffe6                                                                                                               
001d72   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d74   ffe6                                                                                                               
001d76   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d78   ffe6                                                                                                               
001d7a   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d7c   ffe6                                                                                                               
001d7e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d80   ffe6                                                                                                               
001d82   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d84   ffe6                                                                                                               
001d86   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d88   ffe6                                                                                                               
001d8a   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d8c   ffe6                                                                                                               
001d8e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d90   ffe6                                                                                                               
001d92   cfee     MOVFF     0xfee,0xfe6                                                                                     
001d94   ffe6                                                                                                               
001d96   ec9e     CALL      0x153c,0x0                                                                                      
001d98   f00a                                                                                                               
001d9a   6e00     MOVWF     0x0,0x0                                                                                         
001d9c   0e10     MOVLW     0x10                                                                                            
001d9e   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
001da0   5000     MOVF      0x0,0x0,0x0                                                                                     
001da2   0900     IORLW     0x0                                                                                             
001da4   e101     BNZ       0x1da8                                                                                          
001da6   d7d3     BRA       0x1d4e                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
001da8   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001daa   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
001dac   e202     BC        0x1db2                                                                                          
001dae   6ae1     CLRF      0xe1,0x0                                                                                        
001db0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001db2   6ee1     MOVWF     0xe1,0x0                                                                                        
001db4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001db6   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001db8   ffd9                                                                                                               
001dba   0012     RETURN    0x0                                                                                             
                                           #endif                                                                           F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canIR\Source\Main.c
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canIR\Source\Main.c
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canIR\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001000   efa5     GOTO      0x1f4a             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canIR\Source\Main.c
001002   f00f                                                                                                               
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canIR\Source\Main.c
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001008   ef13     GOTO      0x1c26          _asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canIR\Source\Main.c
00100a   f00e                                                                                                               
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canIR\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canIR\Source\Main.c
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canIR\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
001018   ef60     GOTO      0x1cc0             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canIR\Source\Main.c
00101a   f00e                                                                                                               
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canIR\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canIR\Source\Main.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *                  Ticker module service                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Tick.c $ F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * Last changed: $LastChangedDate: 2006-11-14 10:55:38 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * Revision:     $Revision: 86 $                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #else                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           TICK TickCount = 0;  // 10ms/unit                                                 F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Function: TickInit                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
001f06   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
001f08   6ed6     MOVWF     0xd6,0x0                                                                                        
001f0a   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
001f0c   6ed7     MOVWF     0xd7,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // 16-BIT, internal timer, PSA set to 1:256                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
001f0e   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
001f10   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
001f12   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001f14   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001f16   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001f18   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Function: TickGet                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Output: Current tick value is given, 1 tick represents approximately 10ms      F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           TICK tickGet(void)                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001f1a   c08f     MOVFF     0x8f,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001f1c   f012                                                                                                               
001f1e   c090     MOVFF     0x90,0x13                                                                                       
001f20   f013                                                                                                               
001f22   c091     MOVFF     0x91,0x14                                                                                       
001f24   f014                                                                                                               
001f26   c092     MOVFF     0x92,0x15                                                                                       
001f28   f015                                                                                                               
001f2a   d000     BRA       0x1f2c                                                                                          
001f2c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Function: tickUpdate                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           void tickUpdate(void)                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001f2e   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
001f30   d00b     BRA       0x1f48                                                                                          
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001f32   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
001f34   6ed7     MOVWF     0xd7,0x0                                                                                        
001f36   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001f38   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001f3a   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
001f3c   2b8f     INCF      0x8f,0x1,0x1                                                                                    
001f3e   0e00     MOVLW     0x0                                                                                             
001f40   2390     ADDWFC    0x90,0x1,0x1                                                                                    
001f42   2391     ADDWFC    0x91,0x1,0x1                                                                                    
001f44   2392     ADDWFC    0x92,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001f46   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001f48   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *                  CAN module                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/CAN.c $ F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * Last changed: $LastChangedDate: 2006-11-14 21:11:28 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * Revision:     $Revision: 95 $                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           TICK heartbeat;                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static int MY_ID = DEFAULT_ID;                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static BYTE MY_NID = DEFAULT_NID;                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static CAN_MESSAGE outCm;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static void canGetPacket(void);                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canInit                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: Changes can registers.                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           void canInit()                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00105c   0e80     MOVLW     0x80            CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00105e   6e6f     MOVWF     0x6f,0x0                                                                                        
001060   0ee0     MOVLW     0xe0            while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
001062   146e     ANDWF     0x6e,0x0,0x0                                                                                    
001064   0880     SUBLW     0x80                                                                                            
001066   e001     BZ        0x106a                                                                                          
001068   d7fb     BRA       0x1060                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // BAUD AND TQS                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // 500Khz@40Mhz (new by the book)                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00106a   0e04     MOVLW     0x4             BRGCON1 = 0x04;                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00106c   6e70     MOVWF     0x70,0x0                                                                                        
00106e   0ed1     MOVLW     0xd1            BRGCON2 = 0xD1;                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001070   6e71     MOVWF     0x71,0x0                                                                                        
001072   0e81     MOVLW     0x81            BRGCON3 = 0x81;                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001074   6e72     MOVWF     0x72,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON1=0;                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON1bits.SJW1=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON1bits.SJW0=1;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Setting BRP.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON1=BRGCON1|CAN_BRP;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.SEG2PHTS = 1;                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.SEG1PH2 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.SEG1PH1 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.SEG1PH0 = 1;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.PRSEG2 = 0;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.PRSEG1 = 0;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.PRSEG0 = 1;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON3bits.WAKDIS = 0;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON3bits.WAKFIL = 0;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON3bits.SEG2PH2 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON3bits.SEG2PH1 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON3bits.SEG2PH0 = 1;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001076   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001078   8e77     BSF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 1; // 0  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00107a   9c77     BCF       0x77,0x6,0x0    ECANCONbits.MDSEL0 = 0; // 1  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00107c   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
00107e   9a60     BCF       0x60,0x5,0x0    RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // INTERRUPTS                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Diable transmit interrupt                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
001080   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001082   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001084   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001086   0e03     MOVLW     0x3             PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001088   6ea3     MOVWF     0xa3,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00108a   6ea5     MOVWF     0xa5,0x0        IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Programmable buffers interrupt                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00108c   69fa     SETF      0xfa,0x1        BIE0  = 0xFF;                                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //loopback mode or not                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            #ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            #else                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
00108e   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001090   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
001094   e001     BZ        0x1098                                                                                          
001096   d7fc     BRA       0x1090                                                                                          
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Init ticker service                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001098   ec83     CALL      0x1f06,0x0      tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
00109a   f00f                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Read ID and NID if exist.                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
00109c   0e00     MOVLW     0x0             if (EERead(NODE_ID_EE)==NODE_HAS_ID)                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00109e   6ee6     MOVWF     0xe6,0x0                                                                                        
0010a0   6ae6     CLRF      0xe6,0x0                                                                                        
0010a2   ecde     CALL      0x1dbc,0x0                                                                                      
0010a4   f00e                                                                                                               
0010a6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010a8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010aa   082a     SUBLW     0x2a                                                                                            
0010ac   e12b     BNZ       0x1104                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ae   0e01     MOVLW     0x1                 MY_ID=(((WORD)EERead(NODE_ID_EE + 1))<<8)+EERead(NODE_ID_EE + 2);              F:\MCP\projects\CAN\canBase\Source\CAN.c
0010b0   6ee6     MOVWF     0xe6,0x0                                                                                        
0010b2   6ae6     CLRF      0xe6,0x0                                                                                        
0010b4   ecde     CALL      0x1dbc,0x0                                                                                      
0010b6   f00e                                                                                                               
0010b8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010ba   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010bc   6e00     MOVWF     0x0,0x0                                                                                         
0010be   c000     MOVFF     0x0,0x1                                                                                         
0010c0   f001                                                                                                               
0010c2   6a00     CLRF      0x0,0x0                                                                                         
0010c4   c000     MOVFF     0x0,0xfe6                                                                                       
0010c6   ffe6                                                                                                               
0010c8   c001     MOVFF     0x1,0xfe6                                                                                       
0010ca   ffe6                                                                                                               
0010cc   0e02     MOVLW     0x2                                                                                             
0010ce   6ee6     MOVWF     0xe6,0x0                                                                                        
0010d0   6ae6     CLRF      0xe6,0x0                                                                                        
0010d2   ecde     CALL      0x1dbc,0x0                                                                                      
0010d4   f00e                                                                                                               
0010d6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010d8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010da   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010dc   cfe7     MOVFF     0xfe7,0x1                                                                                       
0010de   f001                                                                                                               
0010e0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010e2   cfe7     MOVFF     0xfe7,0x0                                                                                       
0010e4   f000                                                                                                               
0010e6   0100     MOVLB     0x0                                                                                             
0010e8   2400     ADDWF     0x0,0x0,0x0                                                                                     
0010ea   6f93     MOVWF     0x93,0x1                                                                                        
0010ec   0e00     MOVLW     0x0                                                                                             
0010ee   2001     ADDWFC    0x1,0x0,0x0                                                                                     
0010f0   6f94     MOVWF     0x94,0x1                                                                                        
0010f2   0e03     MOVLW     0x3                 MY_NID=EERead(NODE_ID_EE + 3);                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
0010f4   6ee6     MOVWF     0xe6,0x0                                                                                        
0010f6   6ae6     CLRF      0xe6,0x0                                                                                        
0010f8   ecde     CALL      0x1dbc,0x0                                                                                      
0010fa   f00e                                                                                                               
0010fc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010fe   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001100   0100     MOVLB     0x0                                                                                             
001102   6f95     MOVWF     0x95,0x1                                                                                        
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Send user program startup heatbeat                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001104   0100     MOVLB     0x0             outCm.funct                     = FUNCT_BOOTLOADER;                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001106   6b64     CLRF      0x64,0x1                                                                                        
001108   0e08     MOVLW     0x8             outCm.funcc                     = FUNCC_BOOT_HEARTBEAT;                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00110a   6f65     MOVWF     0x65,0x1                                                                                        
00110c   6b66     CLRF      0x66,0x1                                                                                        
00110e   0e01     MOVLW     0x1             outCm.data_length               = 1;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001110   6f6a     MOVWF     0x6a,0x1                                                                                        
001112   6f6b     MOVWF     0x6b,0x1        outCm.data[BOOT_DATA_HEARTBEAT_INDEX] = HEARTBEAT_USER_STARTUP;                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001114   0e02     MOVLW     0x2             while(!canSendMessage(outCm,PRIO_HIGH));                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001116   6ee6     MOVWF     0xe6,0x0                                                                                        
001118   c064     MOVFF     0x64,0xfe6                                                                                      
00111a   ffe6                                                                                                               
00111c   c065     MOVFF     0x65,0xfe6                                                                                      
00111e   ffe6                                                                                                               
001120   c066     MOVFF     0x66,0xfe6                                                                                      
001122   ffe6                                                                                                               
001124   c067     MOVFF     0x67,0xfe6                                                                                      
001126   ffe6                                                                                                               
001128   c068     MOVFF     0x68,0xfe6                                                                                      
00112a   ffe6                                                                                                               
00112c   c069     MOVFF     0x69,0xfe6                                                                                      
00112e   ffe6                                                                                                               
001130   c06a     MOVFF     0x6a,0xfe6                                                                                      
001132   ffe6                                                                                                               
001134   c06b     MOVFF     0x6b,0xfe6                                                                                      
001136   ffe6                                                                                                               
001138   c06c     MOVFF     0x6c,0xfe6                                                                                      
00113a   ffe6                                                                                                               
00113c   c06d     MOVFF     0x6d,0xfe6                                                                                      
00113e   ffe6                                                                                                               
001140   c06e     MOVFF     0x6e,0xfe6                                                                                      
001142   ffe6                                                                                                               
001144   c06f     MOVFF     0x6f,0xfe6                                                                                      
001146   ffe6                                                                                                               
001148   c070     MOVFF     0x70,0xfe6                                                                                      
00114a   ffe6                                                                                                               
00114c   c071     MOVFF     0x71,0xfe6                                                                                      
00114e   ffe6                                                                                                               
001150   c072     MOVFF     0x72,0xfe6                                                                                      
001152   ffe6                                                                                                               
001154   d9f3     RCALL     0x153c                                                                                          
001156   6e00     MOVWF     0x0,0x0                                                                                         
001158   0e10     MOVLW     0x10                                                                                            
00115a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00115c   5000     MOVF      0x0,0x0,0x0                                                                                     
00115e   0900     IORLW     0x0                                                                                             
001160   e101     BNZ       0x1164                                                                                          
001162   d7d8     BRA       0x1114                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001164   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canISR                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           void canISR()                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001166   50a4     MOVF      0xa4,0x0,0x0    if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001168   0b02     ANDLW     0x2                                                                                             
00116a   e106     BNZ       0x1178                                                                                          
00116c   50a4     MOVF      0xa4,0x0,0x0                                                                                    
00116e   0b02     ANDLW     0x2                                                                                             
001170   e103     BNZ       0x1178                                                                                          
001172   50a4     MOVF      0xa4,0x0,0x0                                                                                    
001174   0b01     ANDLW     0x1                                                                                             
001176   e016     BZ        0x11a4                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
001178   0e0f     MOVLW     0xf                 ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBase\Source\CAN.c
00117a   146f     ANDWF     0x6f,0x0,0x0                                                                                    
00117c   0910     IORLW     0x10                                                                                            
00117e   6e00     MOVWF     0x0,0x0                                                                                         
001180   0e00     MOVLW     0x0                                                                                             
001182   1477     ANDWF     0x77,0x0,0x0                                                                                    
001184   1000     IORWF     0x0,0x0,0x0                                                                                     
001186   6e77     MOVWF     0x77,0x0                                                                                        
001188   be60     BTFSC     0x60,0x7,0x0        if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00118a   d86a     RCALL     0x1260                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00118c   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00118e   d002     BRA       0x1194                                                                                          
001190   92a4     BCF       0xa4,0x1,0x0                                                                                    
001192   d065     BRA       0x125e                                                                                          
001194   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001196   d002     BRA       0x119c                                                                                          
001198   92a4     BCF       0xa4,0x1,0x0                                                                                    
00119a   d061     BRA       0x125e                                                                                          
00119c   a0a4     BTFSS     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00119e   d002     BRA       0x11a4                                                                                          
0011a0   90a4     BCF       0xa4,0x0,0x0                                                                                    
0011a2   d05d     BRA       0x125e                                                                                          
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0011a4   ec97     CALL      0x1f2e,0x0      tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
0011a6   f00f                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0011a8   ec8d     CALL      0x1f1a,0x0      if ((tickGet()-heartbeat)>TICK_SECOND*5)                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
0011aa   f00f                                                                                                               
0011ac   0100     MOVLB     0x0                                                                                             
0011ae   5160     MOVF      0x60,0x0,0x1                                                                                    
0011b0   5c12     SUBWF     0x12,0x0,0x0                                                                                    
0011b2   6e00     MOVWF     0x0,0x0                                                                                         
0011b4   0100     MOVLB     0x0                                                                                             
0011b6   5161     MOVF      0x61,0x0,0x1                                                                                    
0011b8   5813     SUBWFB    0x13,0x0,0x0                                                                                    
0011ba   6e01     MOVWF     0x1,0x0                                                                                         
0011bc   0100     MOVLB     0x0                                                                                             
0011be   5162     MOVF      0x62,0x0,0x1                                                                                    
0011c0   5814     SUBWFB    0x14,0x0,0x0                                                                                    
0011c2   6e02     MOVWF     0x2,0x0                                                                                         
0011c4   0100     MOVLB     0x0                                                                                             
0011c6   5163     MOVF      0x63,0x0,0x1                                                                                    
0011c8   5815     SUBWFB    0x15,0x0,0x0                                                                                    
0011ca   6e03     MOVWF     0x3,0x0                                                                                         
0011cc   80d8     BSF       0xd8,0x0,0x0                                                                                    
0011ce   0ef4     MOVLW     0xf4                                                                                            
0011d0   5400     SUBFWB    0x0,0x0,0x0                                                                                     
0011d2   0e01     MOVLW     0x1                                                                                             
0011d4   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0011d6   0e00     MOVLW     0x0                                                                                             
0011d8   5402     SUBFWB    0x2,0x0,0x0                                                                                     
0011da   0e00     MOVLW     0x0                                                                                             
0011dc   5403     SUBFWB    0x3,0x0,0x0                                                                                     
0011de   e23e     BC        0x125c                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Send alive heartbeat                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
0011e0   0100     MOVLB     0x0                 outCm.funct                     = FUNCT_BOOTLOADER;                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
0011e2   6b64     CLRF      0x64,0x1                                                                                        
0011e4   0e08     MOVLW     0x8                 outCm.funcc                     = FUNCC_BOOT_HEARTBEAT;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0011e6   0100     MOVLB     0x0                                                                                             
0011e8   6f65     MOVWF     0x65,0x1                                                                                        
0011ea   6b66     CLRF      0x66,0x1                                                                                        
0011ec   0100     MOVLB     0x0                 outCm.data_length               = 1;                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
0011ee   0e01     MOVLW     0x1                                                                                             
0011f0   6f6a     MOVWF     0x6a,0x1                                                                                        
0011f2   0100     MOVLB     0x0                 outCm.data[BOOT_DATA_HEARTBEAT_INDEX] = HEARTBEAT_ALIVE;                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0011f4   0e02     MOVLW     0x2                                                                                             
0011f6   6f6b     MOVWF     0x6b,0x1                                                                                        
0011f8   0e02     MOVLW     0x2                 while(!canSendMessage(outCm,PRIO_HIGH));                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0011fa   6ee6     MOVWF     0xe6,0x0                                                                                        
0011fc   c064     MOVFF     0x64,0xfe6                                                                                      
0011fe   ffe6                                                                                                               
001200   c065     MOVFF     0x65,0xfe6                                                                                      
001202   ffe6                                                                                                               
001204   c066     MOVFF     0x66,0xfe6                                                                                      
001206   ffe6                                                                                                               
001208   c067     MOVFF     0x67,0xfe6                                                                                      
00120a   ffe6                                                                                                               
00120c   c068     MOVFF     0x68,0xfe6                                                                                      
00120e   ffe6                                                                                                               
001210   c069     MOVFF     0x69,0xfe6                                                                                      
001212   ffe6                                                                                                               
001214   c06a     MOVFF     0x6a,0xfe6                                                                                      
001216   ffe6                                                                                                               
001218   c06b     MOVFF     0x6b,0xfe6                                                                                      
00121a   ffe6                                                                                                               
00121c   c06c     MOVFF     0x6c,0xfe6                                                                                      
00121e   ffe6                                                                                                               
001220   c06d     MOVFF     0x6d,0xfe6                                                                                      
001222   ffe6                                                                                                               
001224   c06e     MOVFF     0x6e,0xfe6                                                                                      
001226   ffe6                                                                                                               
001228   c06f     MOVFF     0x6f,0xfe6                                                                                      
00122a   ffe6                                                                                                               
00122c   c070     MOVFF     0x70,0xfe6                                                                                      
00122e   ffe6                                                                                                               
001230   c071     MOVFF     0x71,0xfe6                                                                                      
001232   ffe6                                                                                                               
001234   c072     MOVFF     0x72,0xfe6                                                                                      
001236   ffe6                                                                                                               
001238   d981     RCALL     0x153c                                                                                          
00123a   6e00     MOVWF     0x0,0x0                                                                                         
00123c   0e10     MOVLW     0x10                                                                                            
00123e   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
001240   5000     MOVF      0x0,0x0,0x0                                                                                     
001242   0900     IORLW     0x0                                                                                             
001244   e101     BNZ       0x1248                                                                                          
001246   d7d8     BRA       0x11f8                                                                                          
                                                                                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
001248   ec8d     CALL      0x1f1a,0x0          heartbeat = tickGet();                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00124a   f00f                                                                                                               
00124c   c012     MOVFF     0x12,0x60                                                                                       
00124e   f060                                                                                                               
001250   c013     MOVFF     0x13,0x61                                                                                       
001252   f061                                                                                                               
001254   c014     MOVFF     0x14,0x62                                                                                       
001256   f062                                                                                                               
001258   c015     MOVFF     0x15,0x63                                                                                       
00125a   f063                                                                                                               
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00125c   0004     CLRWDT                    ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
00125e   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canGetPacket                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
001260   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001262   ffe6                                                                                                               
001264   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001266   ffd9                                                                                                               
001268   0e0f     MOVLW     0xf                                                                                             
00126a   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00126c   0ef0     MOVLW     0xf0                    cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00126e   1461     ANDWF     0x61,0x0,0x0                                                                                    
001270   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
001272   0b0f     ANDLW     0xf                                                                                             
001274   6edf     MOVWF     0xdf,0x0                                                                                        
001276   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\canBase\Source\CAN.c
001278   1461     ANDWF     0x61,0x0,0x0                                                                                    
00127a   6e06     MOVWF     0x6,0x0                                                                                         
00127c   6a07     CLRF      0x7,0x0                                                                                         
00127e   0e06     MOVLW     0x6                                                                                             
001280   90d8     BCF       0xd8,0x0,0x0                                                                                    
001282   3606     RLCF      0x6,0x1,0x0                                                                                     
001284   3607     RLCF      0x7,0x1,0x0                                                                                     
001286   04e8     DECF      0xe8,0x0,0x0                                                                                    
001288   e1fb     BNZ       0x1280                                                                                          
00128a   0ee0     MOVLW     0xe0                                                                                            
00128c   1462     ANDWF     0x62,0x0,0x0                                                                                    
00128e   6e08     MOVWF     0x8,0x0                                                                                         
001290   6a09     CLRF      0x9,0x0                                                                                         
001292   90d8     BCF       0xd8,0x0,0x0                                                                                    
001294   3209     RRCF      0x9,0x1,0x0                                                                                     
001296   3208     RRCF      0x8,0x1,0x0                                                                                     
001298   90d8     BCF       0xd8,0x0,0x0                                                                                    
00129a   3209     RRCF      0x9,0x1,0x0                                                                                     
00129c   3208     RRCF      0x8,0x1,0x0                                                                                     
00129e   5006     MOVF      0x6,0x0,0x0                                                                                     
0012a0   2408     ADDWF     0x8,0x0,0x0                                                                                     
0012a2   6e04     MOVWF     0x4,0x0                                                                                         
0012a4   5007     MOVF      0x7,0x0,0x0                                                                                     
0012a6   2009     ADDWFC    0x9,0x0,0x0                                                                                     
0012a8   6e05     MOVWF     0x5,0x0                                                                                         
0012aa   0e03     MOVLW     0x3                                                                                             
0012ac   1462     ANDWF     0x62,0x0,0x0                                                                                    
0012ae   6e0a     MOVWF     0xa,0x0                                                                                         
0012b0   6a0b     CLRF      0xb,0x0                                                                                         
0012b2   90d8     BCF       0xd8,0x0,0x0                                                                                    
0012b4   360a     RLCF      0xa,0x1,0x0                                                                                     
0012b6   360b     RLCF      0xb,0x1,0x0                                                                                     
0012b8   5004     MOVF      0x4,0x0,0x0                                                                                     
0012ba   240a     ADDWF     0xa,0x0,0x0                                                                                     
0012bc   6e02     MOVWF     0x2,0x0                                                                                         
0012be   5005     MOVF      0x5,0x0,0x0                                                                                     
0012c0   200b     ADDWFC    0xb,0x0,0x0                                                                                     
0012c2   6e03     MOVWF     0x3,0x0                                                                                         
0012c4   0e80     MOVLW     0x80                                                                                            
0012c6   1463     ANDWF     0x63,0x0,0x0                                                                                    
0012c8   6e0c     MOVWF     0xc,0x0                                                                                         
0012ca   6a0d     CLRF      0xd,0x0                                                                                         
0012cc   0e07     MOVLW     0x7                                                                                             
0012ce   90d8     BCF       0xd8,0x0,0x0                                                                                    
0012d0   320d     RRCF      0xd,0x1,0x0                                                                                     
0012d2   320c     RRCF      0xc,0x1,0x0                                                                                     
0012d4   04e8     DECF      0xe8,0x0,0x0                                                                                    
0012d6   e1fb     BNZ       0x12ce                                                                                          
0012d8   5002     MOVF      0x2,0x0,0x0                                                                                     
0012da   240c     ADDWF     0xc,0x0,0x0                                                                                     
0012dc   6e00     MOVWF     0x0,0x0                                                                                         
0012de   5003     MOVF      0x3,0x0,0x0                                                                                     
0012e0   200d     ADDWFC    0xd,0x0,0x0                                                                                     
0012e2   6e01     MOVWF     0x1,0x0                                                                                         
0012e4   0e01     MOVLW     0x1                                                                                             
0012e6   c000     MOVFF     0x0,0xfdb                                                                                       
0012e8   ffdb                                                                                                               
0012ea   0e02     MOVLW     0x2                                                                                             
0012ec   c001     MOVFF     0x1,0xfdb                                                                                       
0012ee   ffdb                                                                                                               
0012f0   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
0012f2   1463     ANDWF     0x63,0x0,0x0                                                                                    
0012f4   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
0012f6   0b7f     ANDLW     0x7f                                                                                            
0012f8   6ee7     MOVWF     0xe7,0x0                                                                                        
0012fa   0e03     MOVLW     0x3                                                                                             
0012fc   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0012fe   ffdb                                                                                                               
001300   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001302   1463     ANDWF     0x63,0x0,0x0                                                                                    
001304   6e02     MOVWF     0x2,0x0                                                                                         
001306   c002     MOVFF     0x2,0x3                                                                                         
001308   f003                                                                                                               
00130a   6a02     CLRF      0x2,0x0                                                                                         
00130c   5064     MOVF      0x64,0x0,0x0                                                                                    
00130e   0100     MOVLB     0x0                                                                                             
001310   2402     ADDWF     0x2,0x0,0x0                                                                                     
001312   6e00     MOVWF     0x0,0x0                                                                                         
001314   0e00     MOVLW     0x0                                                                                             
001316   2003     ADDWFC    0x3,0x0,0x0                                                                                     
001318   6e01     MOVWF     0x1,0x0                                                                                         
00131a   0e04     MOVLW     0x4                                                                                             
00131c   c000     MOVFF     0x0,0xfdb                                                                                       
00131e   ffdb                                                                                                               
001320   0e05     MOVLW     0x5                                                                                             
001322   c001     MOVFF     0x1,0xfdb                                                                                       
001324   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001326   5065     MOVF      0x65,0x0,0x0        cm.data_length=(RXB0DLCbits.DLC3<<3)+(RXB0DLCbits.DLC2<<2)+(RXB0DLCbits.DLC1<<1)+RXB0DLCbits.DLC0; F:\MCP\projects\CAN\canBase\Source\CAN.c
001328   0b01     ANDLW     0x1                                                                                             
00132a   6e02     MOVWF     0x2,0x0                                                                                         
00132c   5065     MOVF      0x65,0x0,0x0                                                                                    
00132e   0b02     ANDLW     0x2                                                                                             
001330   e001     BZ        0x1334                                                                                          
001332   0e01     MOVLW     0x1                                                                                             
001334   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
001336   6e01     MOVWF     0x1,0x0                                                                                         
001338   5065     MOVF      0x65,0x0,0x0                                                                                    
00133a   0b04     ANDLW     0x4                                                                                             
00133c   e001     BZ        0x1340                                                                                          
00133e   0e01     MOVLW     0x1                                                                                             
001340   0d04     MULLW     0x4                                                                                             
001342   cff3     MOVFF     0xff3,0x0                                                                                       
001344   f000                                                                                                               
001346   5065     MOVF      0x65,0x0,0x0                                                                                    
001348   0b08     ANDLW     0x8                                                                                             
00134a   e001     BZ        0x134e                                                                                          
00134c   0e01     MOVLW     0x1                                                                                             
00134e   0d08     MULLW     0x8                                                                                             
001350   50f3     MOVF      0xf3,0x0,0x0                                                                                    
001352   2400     ADDWF     0x0,0x0,0x0                                                                                     
001354   2401     ADDWF     0x1,0x0,0x0                                                                                     
001356   2402     ADDWF     0x2,0x0,0x0                                                                                     
001358   6ee7     MOVWF     0xe7,0x0                                                                                        
00135a   0e06     MOVLW     0x6                                                                                             
00135c   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
00135e   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001360   0e07     MOVLW     0x7                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001362   cf66     MOVFF     0xf66,0xfdb                                                                                     
001364   ffdb                                                                                                               
001366   0e08     MOVLW     0x8                                                                                             
001368   cf67     MOVFF     0xf67,0xfdb                                                                                     
00136a   ffdb                                                                                                               
00136c   0e09     MOVLW     0x9                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00136e   cf68     MOVFF     0xf68,0xfdb                                                                                     
001370   ffdb                                                                                                               
001372   0e0a     MOVLW     0xa                                                                                             
001374   cf69     MOVFF     0xf69,0xfdb                                                                                     
001376   ffdb                                                                                                               
001378   0e0b     MOVLW     0xb                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00137a   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
00137c   ffdb                                                                                                               
00137e   0e0c     MOVLW     0xc                                                                                             
001380   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
001382   ffdb                                                                                                               
001384   0e0d     MOVLW     0xd                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001386   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
001388   ffdb                                                                                                               
00138a   0e0e     MOVLW     0xe                                                                                             
00138c   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
00138e   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001390   9e60     BCF       0x60,0x7,0x0        RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Check if FUNCT_BOOTLOADER specific.                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // reset and id change                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001392   50df     MOVF      0xdf,0x0,0x0        if (cm.funct==FUNCT_BOOTLOADER)                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001394   e001     BZ        0x1398                                                                                          
001396   d0a0     BRA       0x14d8                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001398   0e03     MOVLW     0x3                     if (cm.nid==MY_NID && ((((unsigned int)cm.data[BOOT_DATA_RID_HIGH_INDEX])<<8)+cm.data[BOOT_DATA_RID_LOW_INDEX])==MY_ID)  F:\MCP\projects\CAN\canBase\Source\CAN.c
00139a   50db     MOVF      0xdb,0x0,0x0                                                                                    
00139c   0100     MOVLB     0x0                                                                                             
00139e   5d95     SUBWF     0x95,0x0,0x1                                                                                    
0013a0   e001     BZ        0x13a4                                                                                          
0013a2   d09a     BRA       0x14d8                                                                                          
0013a4   0e0c     MOVLW     0xc                                                                                             
0013a6   cfdb     MOVFF     0xfdb,0x2                                                                                       
0013a8   f002                                                                                                               
0013aa   c002     MOVFF     0x2,0x3                                                                                         
0013ac   f003                                                                                                               
0013ae   6a02     CLRF      0x2,0x0                                                                                         
0013b0   0e0b     MOVLW     0xb                                                                                             
0013b2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013b4   0100     MOVLB     0x0                                                                                             
0013b6   2402     ADDWF     0x2,0x0,0x0                                                                                     
0013b8   6e00     MOVWF     0x0,0x0                                                                                         
0013ba   0e00     MOVLW     0x0                                                                                             
0013bc   2003     ADDWFC    0x3,0x0,0x0                                                                                     
0013be   6e01     MOVWF     0x1,0x0                                                                                         
0013c0   0100     MOVLB     0x0                                                                                             
0013c2   5193     MOVF      0x93,0x0,0x1                                                                                    
0013c4   1800     XORWF     0x0,0x0,0x0                                                                                     
0013c6   e102     BNZ       0x13cc                                                                                          
0013c8   5194     MOVF      0x94,0x0,0x1                                                                                    
0013ca   1801     XORWF     0x1,0x0,0x0                                                                                     
0013cc   e001     BZ        0x13d0                                                                                          
0013ce   d084     BRA       0x14d8                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
0013d0   50d9     MOVF      0xd9,0x0,0x0                if (cm.funcc==FUNCC_BOOT_INIT) Reset(); // Reset me.                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0013d2   0f01     ADDLW     0x1                                                                                             
0013d4   6ee9     MOVWF     0xe9,0x0                                                                                        
0013d6   cfda     MOVFF     0xfda,0xfea                                                                                     
0013d8   ffea                                                                                                               
0013da   0e01     MOVLW     0x1                                                                                             
0013dc   18ee     XORWF     0xee,0x0,0x0                                                                                    
0013de   e101     BNZ       0x13e2                                                                                          
0013e0   50ed     MOVF      0xed,0x0,0x0                                                                                    
0013e2   e101     BNZ       0x13e6                                                                                          
0013e4   00ff     RESET                                                                                                     
0013e6   50d9     MOVF      0xd9,0x0,0x0                if (cm.funcc==FUNCC_BOOT_SET_ID)                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
0013e8   0f01     ADDLW     0x1                                                                                             
0013ea   6ee9     MOVWF     0xe9,0x0                                                                                        
0013ec   cfda     MOVFF     0xfda,0xfea                                                                                     
0013ee   ffea                                                                                                               
0013f0   0e06     MOVLW     0x6                                                                                             
0013f2   18ee     XORWF     0xee,0x0,0x0                                                                                    
0013f4   e101     BNZ       0x13f8                                                                                          
0013f6   50ed     MOVF      0xed,0x0,0x0                                                                                    
0013f8   e16f     BNZ       0x14d8                                                                                          
                                                        {                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                // Change my ID and NID                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
0013fa   0e08     MOVLW     0x8                                 MY_ID=(((WORD)cm.data[BOOT_DATA_NEW_ID_HIGH_INDEX])<<8)+cm.data[BOOT_DATA_NEW_ID_LOW_INDEX]; F:\MCP\projects\CAN\canBase\Source\CAN.c
0013fc   cfdb     MOVFF     0xfdb,0x0                                                                                       
0013fe   f000                                                                                                               
001400   c000     MOVFF     0x0,0x1                                                                                         
001402   f001                                                                                                               
001404   6a00     CLRF      0x0,0x0                                                                                         
001406   0e07     MOVLW     0x7                                                                                             
001408   50db     MOVF      0xdb,0x0,0x0                                                                                    
00140a   0100     MOVLB     0x0                                                                                             
00140c   2400     ADDWF     0x0,0x0,0x0                                                                                     
00140e   6f93     MOVWF     0x93,0x1                                                                                        
001410   0e00     MOVLW     0x0                                                                                             
001412   2001     ADDWFC    0x1,0x0,0x0                                                                                     
001414   6f94     MOVWF     0x94,0x1                                                                                        
001416   0e09     MOVLW     0x9                                 MY_NID=cm.data[BOOT_DATA_NEW_NID_INDEX];                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
001418   cfdb     MOVFF     0xfdb,0x95                                                                                      
00141a   f095                                                                                                               
00141c   0e08     MOVLW     0x8                                 EEWrite(NODE_ID_EE+1,cm.data[BOOT_DATA_NEW_ID_HIGH_INDEX]);                F:\MCP\projects\CAN\canBase\Source\CAN.c
00141e   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
001420   ffe6                                                                                                               
001422   0e01     MOVLW     0x1                                                                                             
001424   6ee6     MOVWF     0xe6,0x0                                                                                        
001426   6ae6     CLRF      0xe6,0x0                                                                                        
001428   ec03     CALL      0x1e06,0x0                                                                                      
00142a   f00f                                                                                                               
00142c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00142e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001430   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001432   0e07     MOVLW     0x7                                 EEWrite(NODE_ID_EE+2,cm.data[BOOT_DATA_NEW_ID_LOW_INDEX]);                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001434   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
001436   ffe6                                                                                                               
001438   0e02     MOVLW     0x2                                                                                             
00143a   6ee6     MOVWF     0xe6,0x0                                                                                        
00143c   6ae6     CLRF      0xe6,0x0                                                                                        
00143e   ec03     CALL      0x1e06,0x0                                                                                      
001440   f00f                                                                                                               
001442   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001444   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001446   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001448   0e09     MOVLW     0x9                                 EEWrite(NODE_ID_EE+3,cm.data[BOOT_DATA_NEW_NID_INDEX]);                    F:\MCP\projects\CAN\canBase\Source\CAN.c
00144a   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
00144c   ffe6                                                                                                               
00144e   0e03     MOVLW     0x3                                                                                             
001450   6ee6     MOVWF     0xe6,0x0                                                                                        
001452   6ae6     CLRF      0xe6,0x0                                                                                        
001454   ec03     CALL      0x1e06,0x0                                                                                      
001456   f00f                                                                                                               
001458   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00145a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00145c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00145e   0e2a     MOVLW     0x2a                                EEWrite(NODE_ID_EE,NODE_HAS_ID);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001460   6ee6     MOVWF     0xe6,0x0                                                                                        
001462   0e00     MOVLW     0x0                                                                                             
001464   6ee6     MOVWF     0xe6,0x0                                                                                        
001466   6ae6     CLRF      0xe6,0x0                                                                                        
001468   ec03     CALL      0x1e06,0x0                                                                                      
00146a   f00f                                                                                                               
00146c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00146e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001470   52e5     MOVF      0xe5,0x1,0x0                                                                                    
                                                                // Send ack with new id.                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
001472   0100     MOVLB     0x0                                 outCm.funct                     = FUNCT_BOOTLOADER;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001474   6b64     CLRF      0x64,0x1                                                                                        
001476   0e04     MOVLW     0x4                                 outCm.funcc                     = FUNCC_BOOT_ACK;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001478   0100     MOVLB     0x0                                                                                             
00147a   6f65     MOVWF     0x65,0x1                                                                                        
00147c   6b66     CLRF      0x66,0x1                                                                                        
00147e   0100     MOVLB     0x0                                 outCm.data_length               = 8;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001480   0e08     MOVLW     0x8                                                                                             
001482   6f6a     MOVWF     0x6a,0x1                                                                                        
001484   0100     MOVLB     0x0                                 outCm.data[BOOT_DATA_ERR_INDEX] = ACK_ERR_NO_ERROR;                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001486   6b6f     CLRF      0x6f,0x1                                                                                        
001488   0e02     MOVLW     0x2                                 while(!canSendMessage(outCm,PRIO_HIGH));                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
00148a   6ee6     MOVWF     0xe6,0x0                                                                                        
00148c   c064     MOVFF     0x64,0xfe6                                                                                      
00148e   ffe6                                                                                                               
001490   c065     MOVFF     0x65,0xfe6                                                                                      
001492   ffe6                                                                                                               
001494   c066     MOVFF     0x66,0xfe6                                                                                      
001496   ffe6                                                                                                               
001498   c067     MOVFF     0x67,0xfe6                                                                                      
00149a   ffe6                                                                                                               
00149c   c068     MOVFF     0x68,0xfe6                                                                                      
00149e   ffe6                                                                                                               
0014a0   c069     MOVFF     0x69,0xfe6                                                                                      
0014a2   ffe6                                                                                                               
0014a4   c06a     MOVFF     0x6a,0xfe6                                                                                      
0014a6   ffe6                                                                                                               
0014a8   c06b     MOVFF     0x6b,0xfe6                                                                                      
0014aa   ffe6                                                                                                               
0014ac   c06c     MOVFF     0x6c,0xfe6                                                                                      
0014ae   ffe6                                                                                                               
0014b0   c06d     MOVFF     0x6d,0xfe6                                                                                      
0014b2   ffe6                                                                                                               
0014b4   c06e     MOVFF     0x6e,0xfe6                                                                                      
0014b6   ffe6                                                                                                               
0014b8   c06f     MOVFF     0x6f,0xfe6                                                                                      
0014ba   ffe6                                                                                                               
0014bc   c070     MOVFF     0x70,0xfe6                                                                                      
0014be   ffe6                                                                                                               
0014c0   c071     MOVFF     0x71,0xfe6                                                                                      
0014c2   ffe6                                                                                                               
0014c4   c072     MOVFF     0x72,0xfe6                                                                                      
0014c6   ffe6                                                                                                               
0014c8   d839     RCALL     0x153c                                                                                          
0014ca   6e00     MOVWF     0x0,0x0                                                                                         
0014cc   0e10     MOVLW     0x10                                                                                            
0014ce   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0014d0   5000     MOVF      0x0,0x0,0x0                                                                                     
0014d2   0900     IORLW     0x0                                                                                             
0014d4   e101     BNZ       0x14d8                                                                                          
0014d6   d7d8     BRA       0x1488                                                                                          
                                                        }                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                    }                                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //Call main parser                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
0014d8   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
0014da   ffe9                                                                                                               
0014dc   cfda     MOVFF     0xfda,0xfea                                                                                     
0014de   ffea                                                                                                               
0014e0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e2   ffe6                                                                                                               
0014e4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e6   ffe6                                                                                                               
0014e8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ea   ffe6                                                                                                               
0014ec   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ee   ffe6                                                                                                               
0014f0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014f2   ffe6                                                                                                               
0014f4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014f6   ffe6                                                                                                               
0014f8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014fa   ffe6                                                                                                               
0014fc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014fe   ffe6                                                                                                               
001500   cfee     MOVFF     0xfee,0xfe6                                                                                     
001502   ffe6                                                                                                               
001504   cfee     MOVFF     0xfee,0xfe6                                                                                     
001506   ffe6                                                                                                               
001508   cfee     MOVFF     0xfee,0xfe6                                                                                     
00150a   ffe6                                                                                                               
00150c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00150e   ffe6                                                                                                               
001510   cfee     MOVFF     0xfee,0xfe6                                                                                     
001512   ffe6                                                                                                               
001514   cfee     MOVFF     0xfee,0xfe6                                                                                     
001516   ffe6                                                                                                               
001518   cfee     MOVFF     0xfee,0xfe6                                                                                     
00151a   ffe6                                                                                                               
00151c   ec6e     CALL      0x1cdc,0x0                                                                                      
00151e   f00e                                                                                                               
001520   6e00     MOVWF     0x0,0x0                                                                                         
001522   0e0f     MOVLW     0xf                                                                                             
001524   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
001526   5000     MOVF      0x0,0x0,0x0                                                                                     
001528   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00152a   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
00152c   e202     BC        0x1532                                                                                          
00152e   6ae1     CLRF      0xe1,0x0                                                                                        
001530   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001532   6ee1     MOVWF     0xe1,0x0                                                                                        
001534   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001536   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001538   ffd9                                                                                                               
00153a   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canSendMessage                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00153c   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00153e   ffe6                                                                                                               
001540   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001542   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001544   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001546   b740     BTFSC     0x40,0x3,0x1                                                                                    
001548   d004     BRA       0x1552                                                                                          
00154a   0e00     MOVLW     0x0                                                                                             
00154c   1477     ANDWF     0x77,0x0,0x0                                                                                    
00154e   0903     IORLW     0x3                                                                                             
001550   6e77     MOVWF     0x77,0x0                                                                                        
001552   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001554   b730     BTFSC     0x30,0x3,0x1                                                                                    
001556   d004     BRA       0x1560                                                                                          
001558   0e00     MOVLW     0x0                                                                                             
00155a   1477     ANDWF     0x77,0x0,0x0                                                                                    
00155c   0904     IORLW     0x4                                                                                             
00155e   6e77     MOVWF     0x77,0x0                                                                                        
001560   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001562   b720     BTFSC     0x20,0x3,0x1                                                                                    
001564   d005     BRA       0x1570                                                                                          
001566   0e00     MOVLW     0x0                                                                                             
001568   1477     ANDWF     0x77,0x0,0x0                                                                                    
00156a   0905     IORLW     0x5                                                                                             
00156c   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
00156e   d002     BRA       0x1574          else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001570   0e00     MOVLW     0x0                                                                                             
001572   d0b9     BRA       0x16e6                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001574   0eef     MOVLW     0xef            if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001576   cfdb     MOVFF     0xfdb,0x0                                                                                       
001578   f000                                                                                                               
00157a   3400     RLCF      0x0,0x0,0x0                                                                                     
00157c   e20e     BC        0x159a                                                                                          
00157e   0eef     MOVLW     0xef                                                                                            
001580   cfdb     MOVFF     0xfdb,0x1                                                                                       
001582   f001                                                                                                               
001584   0e03     MOVLW     0x3                                                                                             
001586   6ee7     MOVWF     0xe7,0x0                                                                                        
001588   1801     XORWF     0x1,0x0,0x0                                                                                     
00158a   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
00158c   d002     BRA       0x1592                                                                                          
00158e   3401     RLCF      0x1,0x0,0x0                                                                                     
001590   d003     BRA       0x1598                                                                                          
001592   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001594   80d8     BSF       0xd8,0x0,0x0                                                                                    
001596   5401     SUBFWB    0x1,0x0,0x0                                                                                     
001598   e202     BC        0x159e                                                                                          
00159a   0eef     MOVLW     0xef                                                                                            
00159c   6adb     CLRF      0xdb,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Append my id and nid                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00159e   0ef3     MOVLW     0xf3                cm.nid  = MY_NID;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0015a0   c095     MOVFF     0x95,0xfdb                                                                                      
0015a2   ffdb                                                                                                               
0015a4   0ef4     MOVLW     0xf4                cm.sid  = MY_ID;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0015a6   c093     MOVFF     0x93,0xfdb                                                                                      
0015a8   ffdb                                                                                                               
0015aa   0ef5     MOVLW     0xf5                                                                                            
0015ac   c094     MOVFF     0x94,0xfdb                                                                                      
0015ae   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0015b0   0ef1     MOVLW     0xf1                RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
0015b2   cfdb     MOVFF     0xfdb,0x0                                                                                       
0015b4   f000                                                                                                               
0015b6   0ef2     MOVLW     0xf2                                                                                            
0015b8   cfdb     MOVFF     0xfdb,0x1                                                                                       
0015ba   f001                                                                                                               
0015bc   0ec0     MOVLW     0xc0                                                                                            
0015be   1600     ANDWF     0x0,0x1,0x0                                                                                     
0015c0   0e03     MOVLW     0x3                                                                                             
0015c2   1601     ANDWF     0x1,0x1,0x0                                                                                     
0015c4   0e06     MOVLW     0x6                                                                                             
0015c6   90d8     BCF       0xd8,0x0,0x0                                                                                    
0015c8   3201     RRCF      0x1,0x1,0x0                                                                                     
0015ca   3200     RRCF      0x0,0x1,0x0                                                                                     
0015cc   04e8     DECF      0xe8,0x0,0x0                                                                                    
0015ce   e1fb     BNZ       0x15c6                                                                                          
0015d0   0ef0     MOVLW     0xf0                                                                                            
0015d2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0015d4   0b0f     ANDLW     0xf                                                                                             
0015d6   0d10     MULLW     0x10                                                                                            
0015d8   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0015da   2400     ADDWF     0x0,0x0,0x0                                                                                     
0015dc   6e61     MOVWF     0x61,0x0                                                                                        
0015de   0e06     MOVLW     0x6                 RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
0015e0   6ee7     MOVWF     0xe7,0x0                                                                                        
0015e2   0ef1     MOVLW     0xf1                                                                                            
0015e4   cfdb     MOVFF     0xfdb,0x2                                                                                       
0015e6   f002                                                                                                               
0015e8   0ef2     MOVLW     0xf2                                                                                            
0015ea   cfdb     MOVFF     0xfdb,0x3                                                                                       
0015ec   f003                                                                                                               
0015ee   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0015f0   1602     ANDWF     0x2,0x1,0x0                                                                                     
0015f2   6a03     CLRF      0x3,0x0                                                                                         
0015f4   90d8     BCF       0xd8,0x0,0x0                                                                                    
0015f6   3203     RRCF      0x3,0x1,0x0                                                                                     
0015f8   3202     RRCF      0x2,0x1,0x0                                                                                     
0015fa   0e3f     MOVLW     0x3f                                                                                            
0015fc   6ee7     MOVWF     0xe7,0x0                                                                                        
0015fe   0ef1     MOVLW     0xf1                                                                                            
001600   cfdb     MOVFF     0xfdb,0x0                                                                                       
001602   f000                                                                                                               
001604   0ef2     MOVLW     0xf2                                                                                            
001606   cfdb     MOVFF     0xfdb,0x1                                                                                       
001608   f001                                                                                                               
00160a   50e7     MOVF      0xe7,0x0,0x0                                                                                    
00160c   1600     ANDWF     0x0,0x1,0x0                                                                                     
00160e   6a01     CLRF      0x1,0x0                                                                                         
001610   90d8     BCF       0xd8,0x0,0x0                                                                                    
001612   3600     RLCF      0x0,0x1,0x0                                                                                     
001614   3601     RLCF      0x1,0x1,0x0                                                                                     
001616   90d8     BCF       0xd8,0x0,0x0                                                                                    
001618   3600     RLCF      0x0,0x1,0x0                                                                                     
00161a   3601     RLCF      0x1,0x1,0x0                                                                                     
00161c   5000     MOVF      0x0,0x0,0x0                                                                                     
00161e   2402     ADDWF     0x2,0x0,0x0                                                                                     
001620   6e62     MOVWF     0x62,0x0                                                                                        
001622   0ef4     MOVLW     0xf4                RXB0EIDH = (BYTE)((cm.funcc & 0x0001)<<7)+(BYTE)((cm.nid & 0x3F)<<1)+(BYTE)((cm.sid & 0x0100)>>8); F:\MCP\projects\CAN\canBase\Source\CAN.c
001624   cfdb     MOVFF     0xfdb,0x2                                                                                       
001626   f002                                                                                                               
001628   0ef5     MOVLW     0xf5                                                                                            
00162a   cfdb     MOVFF     0xfdb,0x3                                                                                       
00162c   f003                                                                                                               
00162e   0e00     MOVLW     0x0                                                                                             
001630   1602     ANDWF     0x2,0x1,0x0                                                                                     
001632   0e01     MOVLW     0x1                                                                                             
001634   1603     ANDWF     0x3,0x1,0x0                                                                                     
001636   c003     MOVFF     0x3,0x2                                                                                         
001638   f002                                                                                                               
00163a   6a03     CLRF      0x3,0x0                                                                                         
00163c   0e01     MOVLW     0x1                                                                                             
00163e   6ee7     MOVWF     0xe7,0x0                                                                                        
001640   0ef1     MOVLW     0xf1                                                                                            
001642   cfdb     MOVFF     0xfdb,0x0                                                                                       
001644   f000                                                                                                               
001646   0ef2     MOVLW     0xf2                                                                                            
001648   cfdb     MOVFF     0xfdb,0x1                                                                                       
00164a   f001                                                                                                               
00164c   50e7     MOVF      0xe7,0x0,0x0                                                                                    
00164e   1600     ANDWF     0x0,0x1,0x0                                                                                     
001650   6a01     CLRF      0x1,0x0                                                                                         
001652   0e07     MOVLW     0x7                                                                                             
001654   90d8     BCF       0xd8,0x0,0x0                                                                                    
001656   3600     RLCF      0x0,0x1,0x0                                                                                     
001658   3601     RLCF      0x1,0x1,0x0                                                                                     
00165a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00165c   e1fb     BNZ       0x1654                                                                                          
00165e   0ef3     MOVLW     0xf3                                                                                            
001660   50db     MOVF      0xdb,0x0,0x0                                                                                    
001662   0b3f     ANDLW     0x3f                                                                                            
001664   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
001666   2400     ADDWF     0x0,0x0,0x0                                                                                     
001668   2402     ADDWF     0x2,0x0,0x0                                                                                     
00166a   6e63     MOVWF     0x63,0x0                                                                                        
00166c   0eff     MOVLW     0xff                RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
00166e   6ee7     MOVWF     0xe7,0x0                                                                                        
001670   0ef4     MOVLW     0xf4                                                                                            
001672   cfdb     MOVFF     0xfdb,0x0                                                                                       
001674   f000                                                                                                               
001676   0ef5     MOVLW     0xf5                                                                                            
001678   cfdb     MOVFF     0xfdb,0x1                                                                                       
00167a   f001                                                                                                               
00167c   50e7     MOVF      0xe7,0x0,0x0                                                                                    
00167e   1600     ANDWF     0x0,0x1,0x0                                                                                     
001680   6a01     CLRF      0x1,0x0                                                                                         
001682   5000     MOVF      0x0,0x0,0x0                                                                                     
001684   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001686   6a65     CLRF      0x65,0x0            RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
001688   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
00168a   50db     MOVF      0xdb,0x0,0x0                                                                                    
00168c   0808     SUBLW     0x8                                                                                             
00168e   e203     BC        0x1696                                                                                          
001690   0e08     MOVLW     0x8                                                                                             
001692   6e65     MOVWF     0x65,0x0                                                                                        
001694   d003     BRA       0x169c                                                                                          
001696   0ef6     MOVLW     0xf6                                                                                            
001698   50db     MOVF      0xdb,0x0,0x0                                                                                    
00169a   6e65     MOVWF     0x65,0x0                                                                                        
                                                                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // NOT Remote request                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
00169c   9c65     BCF       0x65,0x6,0x0            bcf RXB0DLC, 6, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00169e   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0016a0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016a2   6e66     MOVWF     0x66,0x0                                                                                        
0016a4   0ef8     MOVLW     0xf8                                                                                            
0016a6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016a8   6e67     MOVWF     0x67,0x0                                                                                        
0016aa   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0016ac   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016ae   6e68     MOVWF     0x68,0x0                                                                                        
0016b0   0efa     MOVLW     0xfa                                                                                            
0016b2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016b4   6e69     MOVWF     0x69,0x0                                                                                        
0016b6   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0016b8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016ba   6e6a     MOVWF     0x6a,0x0                                                                                        
0016bc   0efc     MOVLW     0xfc                                                                                            
0016be   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016c0   6e6b     MOVWF     0x6b,0x0                                                                                        
0016c2   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0016c4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016c6   6e6c     MOVWF     0x6c,0x0                                                                                        
0016c8   0efe     MOVLW     0xfe                                                                                            
0016ca   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016cc   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0016ce   8662     BSF       0x62,0x3,0x0        RXB0SIDLbits.EXID=1;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Priority                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
0016d0   0eef     MOVLW     0xef                RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0016d2   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0016d4   ffe6                                                                                                               
0016d6   0efc     MOVLW     0xfc                                                                                            
0016d8   1460     ANDWF     0x60,0x0,0x0                                                                                    
0016da   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016dc   10e7     IORWF     0xe7,0x0,0x0                                                                                    
0016de   6e60     MOVWF     0x60,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // mark as redy to transmit                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
0016e0   8660     BSF       0x60,0x3,0x0            bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0016e2   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
0016e4   d000     BRA       0x16e6                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0016e6   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0016e8   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0016ea   ffd9                                                                                                               
0016ec   0012     RETURN    0x0                                                                                             
                                           /*********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                            *   Functions for reading and writing to EEPROM.                                F:\MCP\projects\CAN\Include\EEAccess.c
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                            *********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
                                            * FileName:         $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/EEAccess.c $ F:\MCP\projects\CAN\Include\EEAccess.c
                                            * Last changed: $LastChangedDate: 2006-11-20 21:31:03 +0100 (må, 20 nov 2006) $ F:\MCP\projects\CAN\Include\EEAccess.c
                                            * By:           $LastChangedBy: johboh $                                                F:\MCP\projects\CAN\Include\EEAccess.c
                                            * Revision:     $Revision: 139 $                                                   F:\MCP\projects\CAN\Include\EEAccess.c
                                            ********************************************************************/           F:\MCP\projects\CAN\Include\EEAccess.c
                                           #include <p18cxxx.h>                                                             F:\MCP\projects\CAN\Include\EEAccess.c
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Function: EERead                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                           *                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Input:  WORD address to read from.                                              F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Output: Byte read.                                                             F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           */                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001dbc   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
001dbe   ffe6                                                                                                               
001dc0   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001dc2   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001dc4   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
001dc6   cfdb     MOVFF     0xfdb,0x0                                                                                       
001dc8   f000                                                                                                               
001dca   0efe     MOVLW     0xfe                                                                                            
001dcc   cfdb     MOVFF     0xfdb,0x1                                                                                       
001dce   f001                                                                                                               
001dd0   c001     MOVFF     0x1,0x0                                                                                         
001dd2   f000                                                                                                               
001dd4   6a01     CLRF      0x1,0x0                                                                                         
001dd6   5000     MOVF      0x0,0x0,0x0                                                                                     
001dd8   6eaa     MOVWF     0xaa,0x0                                                                                        
001dda   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001ddc   6ee7     MOVWF     0xe7,0x0                                                                                        
001dde   0efd     MOVLW     0xfd                                                                                            
001de0   cfdb     MOVFF     0xfdb,0x0                                                                                       
001de2   f000                                                                                                               
001de4   0efe     MOVLW     0xfe                                                                                            
001de6   cfdb     MOVFF     0xfdb,0x1                                                                                       
001de8   f001                                                                                                               
001dea   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001dec   1600     ANDWF     0x0,0x1,0x0                                                                                     
001dee   6a01     CLRF      0x1,0x0                                                                                         
001df0   5000     MOVF      0x0,0x0,0x0                                                                                     
001df2   6ea9     MOVWF     0xa9,0x0                                                                                        
001df4   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001df6   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001df8   80a6     BSF       0xa6,0x0,0x0    EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001dfa   50a8     MOVF      0xa8,0x0,0x0    return EEDATA;                                                                   F:\MCP\projects\CAN\Include\EEAccess.c
001dfc   d000     BRA       0x1dfe                                                                                          
001dfe   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001e00   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001e02   ffd9                                                                                                               
001e04   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Function: EEWrite                                                              F:\MCP\projects\CAN\Include\EEAccess.c
                                           *                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Input:  WORD address to write to and BYTE data to write.                        F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           */                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001e06   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
001e08   ffe6                                                                                                               
001e0a   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001e0c   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001e0e   98a1     BCF       0xa1,0x4,0x0    PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001e10   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
001e12   cfdb     MOVFF     0xfdb,0x0                                                                                       
001e14   f000                                                                                                               
001e16   0efe     MOVLW     0xfe                                                                                            
001e18   cfdb     MOVFF     0xfdb,0x1                                                                                       
001e1a   f001                                                                                                               
001e1c   c001     MOVFF     0x1,0x0                                                                                         
001e1e   f000                                                                                                               
001e20   6a01     CLRF      0x1,0x0                                                                                         
001e22   5000     MOVF      0x0,0x0,0x0                                                                                     
001e24   6eaa     MOVWF     0xaa,0x0                                                                                        
001e26   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001e28   6ee7     MOVWF     0xe7,0x0                                                                                        
001e2a   0efd     MOVLW     0xfd                                                                                            
001e2c   cfdb     MOVFF     0xfdb,0x0                                                                                       
001e2e   f000                                                                                                               
001e30   0efe     MOVLW     0xfe                                                                                            
001e32   cfdb     MOVFF     0xfdb,0x1                                                                                       
001e34   f001                                                                                                               
001e36   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001e38   1600     ANDWF     0x0,0x1,0x0                                                                                     
001e3a   6a01     CLRF      0x1,0x0                                                                                         
001e3c   5000     MOVF      0x0,0x0,0x0                                                                                     
001e3e   6ea9     MOVWF     0xa9,0x0                                                                                        
001e40   0efc     MOVLW     0xfc            EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001e42   50db     MOVF      0xdb,0x0,0x0                                                                                    
001e44   6ea8     MOVWF     0xa8,0x0                                                                                        
001e46   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001e48   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001e4a   84a6     BSF       0xa6,0x2,0x0    EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001e4c   9ef2     BCF       0xf2,0x7,0x0    INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001e4e   0e55     MOVLW     0x55            EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001e50   6ea7     MOVWF     0xa7,0x0                                                                                        
001e52   0eaa     MOVLW     0xaa            EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001e54   6ea7     MOVWF     0xa7,0x0                                                                                        
001e56   82a6     BSF       0xa6,0x1,0x0    EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001e58   8ef2     BSF       0xf2,0x7,0x0    INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001e5a   a8a1     BTFSS     0xa1,0x4,0x0    while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
001e5c   d7fe     BRA       0x1e5a                                                                                          
001e5e   94a6     BCF       0xa6,0x2,0x0    EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001e60   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001e62   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001e64   ffd9                                                                                                               
001e66   0012     RETURN    0x0                                                                                             
                                           /*********************************************************************           F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            *                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            *                  IR reciver module                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            *                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            *********************************************************************           F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canIR/Source/IRec.c $ F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            * Last changed: $LastChangedDate: 2006-11-18 22:14:33 +0100 (lö, 18 nov 2006) $ F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            * Revision:     $Revision: 124 $                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           #include <IRec.h>                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           #ifdef USE_IREC                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           static BYTE toggle = 0;                                                          F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           static BYTE addr = 0;                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           static BYTE data = 0;                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           static BYTE bitIndex = 0;                                                        F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           static IR_TYPE type = IR_NONE;                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           /*                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Function: irecInit                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *                                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Depends: TIMER 3 is free                                                       F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           */                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           void irecInit()                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            // Setup timer 3 to be source for CCP1                                          F:\MCP\projects\CAN\canIR\Source\IRec.c
0016ee   0ef9     MOVLW     0xf9            T3CON = 0b11111001;                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
0016f0   6eb1     MOVWF     0xb1,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            // configure timer 3 interrupt (for overflow)                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
0016f2   92a1     BCF       0xa1,0x1,0x0    PIR2bits.TMR3IF = 0;                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0016f4   82a0     BSF       0xa0,0x1,0x0    PIE2bits.TMR3IE = 1;                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0016f6   82a2     BSF       0xa2,0x1,0x0    IPR2bits.TMR3IP = 1;                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            // Setup CCP1 to use capture on falling edge                                    F:\MCP\projects\CAN\canIR\Source\IRec.c
0016f8   0e04     MOVLW     0x4             CCP1CON=0x04;                                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
0016fa   6ebd     MOVWF     0xbd,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            // Enable CCP1 interrupt and set priority to high.                              F:\MCP\projects\CAN\canIR\Source\IRec.c
0016fc   949e     BCF       0x9e,0x2,0x0    PIR1bits.CCP1IF=0;                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
0016fe   849d     BSF       0x9d,0x2,0x0    PIE1bits.CCP1IE=1;                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001700   849f     BSF       0x9f,0x2,0x0    IPR1bits.CCP1IP=1;                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001702   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           /*                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Function: irecISR                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *                                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Pre-conditions: a call to irecInit()                                           F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Affects: ...                                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           *    Depends: ...                                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           */                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           void irecISR()                                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           {                                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            static WORD timediff = 0;                                                       F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            static BOOL started = FALSE;                                                    F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            static BYTE lastbit = 1;                                                        F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            static BOOL second = FALSE;                                                     F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            // If IR bit                                                                    F:\MCP\projects\CAN\canIR\Source\IRec.c
001704   509e     MOVF      0x9e,0x0,0x0    if(PIR1bits.CCP1IF && PIE1bits.CCP1IE)                                          F:\MCP\projects\CAN\canIR\Source\IRec.c
001706   0b04     ANDLW     0x4                                                                                             
001708   e101     BNZ       0x170c                                                                                          
00170a   d232     BRA       0x1b70                                                                                          
00170c   509d     MOVF      0x9d,0x0,0x0                                                                                    
00170e   0b04     ANDLW     0x4                                                                                             
001710   e101     BNZ       0x1714                                                                                          
001712   d22e     BRA       0x1b70                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                // Read timediff                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
001714   50b2     MOVF      0xb2,0x0,0x0        timediff  = TMR3L;                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001716   0100     MOVLB     0x0                                                                                             
001718   6f82     MOVWF     0x82,0x1                                                                                        
00171a   6b83     CLRF      0x83,0x1                                                                                        
00171c   50b3     MOVF      0xb3,0x0,0x0        timediff += (((WORD)TMR3H)<<8);                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
00171e   6e00     MOVWF     0x0,0x0                                                                                         
001720   c000     MOVFF     0x0,0x1                                                                                         
001722   f001                                                                                                               
001724   6a00     CLRF      0x0,0x0                                                                                         
001726   5000     MOVF      0x0,0x0,0x0                                                                                     
001728   2782     ADDWF     0x82,0x1,0x1                                                                                    
00172a   5001     MOVF      0x1,0x0,0x0                                                                                     
00172c   2383     ADDWFC    0x83,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                // Clear timer.                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
00172e   6ab3     CLRF      0xb3,0x0            TMR3H = 0;                                                                     F:\MCP\projects\CAN\canIR\Source\IRec.c
001730   6ab2     CLRF      0xb2,0x0            TMR3L = 0;                                                                     F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                // Wait on inverse edge                                                        F:\MCP\projects\CAN\canIR\Source\IRec.c
001732   70bd     BTG       0xbd,0x0,0x0        CCP1CONbits.CCP1M0=~CCP1CONbits.CCP1M0;                                        F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                // Disable interrupt                                                           F:\MCP\projects\CAN\canIR\Source\IRec.c
001734   949e     BCF       0x9e,0x2,0x0        PIR1bits.CCP1IF=0;                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                // If found RC5 och RC5X startbit...                                           F:\MCP\projects\CAN\canIR\Source\IRec.c
001736   0584     DECF      0x84,0x0,0x1        if (started==TRUE && (type==IR_RC5 || type==IR_RC5X))                          F:\MCP\projects\CAN\canIR\Source\IRec.c
001738   e001     BZ        0x173c                                                                                          
00173a   d0d0     BRA       0x18dc                                                                                          
00173c   0581     DECF      0x81,0x0,0x1                                                                                    
00173e   e004     BZ        0x1748                                                                                          
001740   0e02     MOVLW     0x2                                                                                             
001742   5d81     SUBWF     0x81,0x0,0x1                                                                                    
001744   e001     BZ        0x1748                                                                                          
001746   d0ca     BRA       0x18dc                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    // Parse message                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001748   0e33     MOVLW     0x33                    if ((t2-250)<timediff && timediff<(t2+250) && second==FALSE)                  F:\MCP\projects\CAN\canIR\Source\IRec.c
00174a   80d8     BSF       0xd8,0x0,0x0                                                                                    
00174c   5582     SUBFWB    0x82,0x0,0x1                                                                                    
00174e   0e03     MOVLW     0x3                                                                                             
001750   5583     SUBFWB    0x83,0x0,0x1                                                                                    
001752   e235     BC        0x17be                                                                                          
001754   0e27     MOVLW     0x27                                                                                            
001756   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001758   0e05     MOVLW     0x5                                                                                             
00175a   5983     SUBWFB    0x83,0x0,0x1                                                                                    
00175c   e230     BC        0x17be                                                                                          
00175e   5186     MOVF      0x86,0x0,0x1                                                                                    
001760   e12e     BNZ       0x17be                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001762   5180     MOVF      0x80,0x0,0x1                if (bitIndex==0) toggle=lastbit;                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001764   e102     BNZ       0x176a                                                                                          
001766   c085     MOVFF     0x85,0x7d                                                                                       
001768   f07d                                                                                                               
00176a   0e01     MOVLW     0x1                         if (bitIndex>=1 && bitIndex<=5) addr+=(lastbit<<(5-bitIndex));               F:\MCP\projects\CAN\canIR\Source\IRec.c
00176c   5d80     SUBWF     0x80,0x0,0x1                                                                                    
00176e   e310     BNC       0x1790                                                                                          
001770   5180     MOVF      0x80,0x0,0x1                                                                                    
001772   0805     SUBLW     0x5                                                                                             
001774   e30d     BNC       0x1790                                                                                          
001776   0e05     MOVLW     0x5                                                                                             
001778   80d8     BSF       0xd8,0x0,0x0                                                                                    
00177a   5580     SUBFWB    0x80,0x0,0x1                                                                                    
00177c   6e00     MOVWF     0x0,0x0                                                                                         
00177e   5185     MOVF      0x85,0x0,0x1                                                                                    
001780   5200     MOVF      0x0,0x1,0x0                                                                                     
001782   e004     BZ        0x178c                                                                                          
001784   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
001786   0bfe     ANDLW     0xfe                                                                                            
001788   0600     DECF      0x0,0x1,0x0                                                                                     
00178a   e1fc     BNZ       0x1784                                                                                          
00178c   0100     MOVLB     0x0                                                                                             
00178e   277e     ADDWF     0x7e,0x1,0x1                                                                                    
001790   0e06     MOVLW     0x6                         if (bitIndex>=6 && bitIndex<=11) data+=(lastbit<<(11-bitIndex));             F:\MCP\projects\CAN\canIR\Source\IRec.c
001792   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001794   e310     BNC       0x17b6                                                                                          
001796   5180     MOVF      0x80,0x0,0x1                                                                                    
001798   080b     SUBLW     0xb                                                                                             
00179a   e30d     BNC       0x17b6                                                                                          
00179c   0e0b     MOVLW     0xb                                                                                             
00179e   80d8     BSF       0xd8,0x0,0x0                                                                                    
0017a0   5580     SUBFWB    0x80,0x0,0x1                                                                                    
0017a2   6e00     MOVWF     0x0,0x0                                                                                         
0017a4   5185     MOVF      0x85,0x0,0x1                                                                                    
0017a6   5200     MOVF      0x0,0x1,0x0                                                                                     
0017a8   e004     BZ        0x17b2                                                                                          
0017aa   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
0017ac   0bfe     ANDLW     0xfe                                                                                            
0017ae   0600     DECF      0x0,0x1,0x0                                                                                     
0017b0   e1fc     BNZ       0x17aa                                                                                          
0017b2   0100     MOVLB     0x0                                                                                             
0017b4   277f     ADDWF     0x7f,0x1,0x1                                                                                    
0017b6   2b80     INCF      0x80,0x1,0x1                bitIndex++;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0017b8   0e01     MOVLW     0x1                         second = TRUE;                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
0017ba   6f86     MOVWF     0x86,0x1                                                                                        
0017bc   d1f9     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0017be   0e8f     MOVLW     0x8f                    if ((t4-250)<timediff && timediff<(t4+250) && second==FALSE)                  F:\MCP\projects\CAN\canIR\Source\IRec.c
0017c0   80d8     BSF       0xd8,0x0,0x0                                                                                    
0017c2   5582     SUBFWB    0x82,0x0,0x1                                                                                    
0017c4   0e07     MOVLW     0x7                                                                                             
0017c6   5583     SUBFWB    0x83,0x0,0x1                                                                                    
0017c8   e23b     BC        0x1840                                                                                          
0017ca   0e83     MOVLW     0x83                                                                                            
0017cc   5d82     SUBWF     0x82,0x0,0x1                                                                                    
0017ce   0e09     MOVLW     0x9                                                                                             
0017d0   5983     SUBWFB    0x83,0x0,0x1                                                                                    
0017d2   e236     BC        0x1840                                                                                          
0017d4   5186     MOVF      0x86,0x0,0x1                                                                                    
0017d6   e134     BNZ       0x1840                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
0017d8   5185     MOVF      0x85,0x0,0x1                lastbit=(lastbit?0:1);                                                       F:\MCP\projects\CAN\canIR\Source\IRec.c
0017da   e002     BZ        0x17e0                                                                                          
0017dc   0e00     MOVLW     0x0                                                                                             
0017de   d001     BRA       0x17e2                                                                                          
0017e0   0e01     MOVLW     0x1                                                                                             
0017e2   6f85     MOVWF     0x85,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0017e4   5180     MOVF      0x80,0x0,0x1                if (bitIndex==0) toggle=lastbit;                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
0017e6   e102     BNZ       0x17ec                                                                                          
0017e8   c085     MOVFF     0x85,0x7d                                                                                       
0017ea   f07d                                                                                                               
0017ec   0e01     MOVLW     0x1                         if (bitIndex>=1 && bitIndex<=5) addr+=(lastbit<<(5-bitIndex));               F:\MCP\projects\CAN\canIR\Source\IRec.c
0017ee   5d80     SUBWF     0x80,0x0,0x1                                                                                    
0017f0   e310     BNC       0x1812                                                                                          
0017f2   5180     MOVF      0x80,0x0,0x1                                                                                    
0017f4   0805     SUBLW     0x5                                                                                             
0017f6   e30d     BNC       0x1812                                                                                          
0017f8   0e05     MOVLW     0x5                                                                                             
0017fa   80d8     BSF       0xd8,0x0,0x0                                                                                    
0017fc   5580     SUBFWB    0x80,0x0,0x1                                                                                    
0017fe   6e00     MOVWF     0x0,0x0                                                                                         
001800   5185     MOVF      0x85,0x0,0x1                                                                                    
001802   5200     MOVF      0x0,0x1,0x0                                                                                     
001804   e004     BZ        0x180e                                                                                          
001806   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
001808   0bfe     ANDLW     0xfe                                                                                            
00180a   0600     DECF      0x0,0x1,0x0                                                                                     
00180c   e1fc     BNZ       0x1806                                                                                          
00180e   0100     MOVLB     0x0                                                                                             
001810   277e     ADDWF     0x7e,0x1,0x1                                                                                    
001812   0e06     MOVLW     0x6                         if (bitIndex>=6 && bitIndex<=11) data+=(lastbit<<(11-bitIndex));             F:\MCP\projects\CAN\canIR\Source\IRec.c
001814   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001816   e310     BNC       0x1838                                                                                          
001818   5180     MOVF      0x80,0x0,0x1                                                                                    
00181a   080b     SUBLW     0xb                                                                                             
00181c   e30d     BNC       0x1838                                                                                          
00181e   0e0b     MOVLW     0xb                                                                                             
001820   80d8     BSF       0xd8,0x0,0x0                                                                                    
001822   5580     SUBFWB    0x80,0x0,0x1                                                                                    
001824   6e00     MOVWF     0x0,0x0                                                                                         
001826   5185     MOVF      0x85,0x0,0x1                                                                                    
001828   5200     MOVF      0x0,0x1,0x0                                                                                     
00182a   e004     BZ        0x1834                                                                                          
00182c   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
00182e   0bfe     ANDLW     0xfe                                                                                            
001830   0600     DECF      0x0,0x1,0x0                                                                                     
001832   e1fc     BNZ       0x182c                                                                                          
001834   0100     MOVLB     0x0                                                                                             
001836   277f     ADDWF     0x7f,0x1,0x1                                                                                    
001838   2b80     INCF      0x80,0x1,0x1                bitIndex++;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
00183a   0e01     MOVLW     0x1                         second = TRUE;                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
00183c   6f86     MOVWF     0x86,0x1                                                                                        
00183e   d1b8     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001840   0e33     MOVLW     0x33                    if ((t2-250)<timediff && timediff<(t2+250) && second==TRUE)                   F:\MCP\projects\CAN\canIR\Source\IRec.c
001842   80d8     BSF       0xd8,0x0,0x0                                                                                    
001844   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001846   0e03     MOVLW     0x3                                                                                             
001848   5583     SUBFWB    0x83,0x0,0x1                                                                                    
00184a   e209     BC        0x185e                                                                                          
00184c   0e27     MOVLW     0x27                                                                                            
00184e   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001850   0e05     MOVLW     0x5                                                                                             
001852   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001854   e204     BC        0x185e                                                                                          
001856   0586     DECF      0x86,0x0,0x1                                                                                    
001858   e102     BNZ       0x185e                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
00185a   6b86     CLRF      0x86,0x1                    second = FALSE;                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
00185c   d1a9     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
00185e   0e8f     MOVLW     0x8f                    if ((t4-250)<timediff && timediff<(t4+250) && second==TRUE)                   F:\MCP\projects\CAN\canIR\Source\IRec.c
001860   80d8     BSF       0xd8,0x0,0x0                                                                                    
001862   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001864   0e07     MOVLW     0x7                                                                                             
001866   5583     SUBFWB    0x83,0x0,0x1                                                                                    
001868   e239     BC        0x18dc                                                                                          
00186a   0e83     MOVLW     0x83                                                                                            
00186c   5d82     SUBWF     0x82,0x0,0x1                                                                                    
00186e   0e09     MOVLW     0x9                                                                                             
001870   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001872   e234     BC        0x18dc                                                                                          
001874   0586     DECF      0x86,0x0,0x1                                                                                    
001876   e132     BNZ       0x18dc                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001878   5185     MOVF      0x85,0x0,0x1                lastbit=(lastbit?0:1);                                                       F:\MCP\projects\CAN\canIR\Source\IRec.c
00187a   e002     BZ        0x1880                                                                                          
00187c   0e00     MOVLW     0x0                                                                                             
00187e   d001     BRA       0x1882                                                                                          
001880   0e01     MOVLW     0x1                                                                                             
001882   6f85     MOVWF     0x85,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001884   5180     MOVF      0x80,0x0,0x1                if (bitIndex==0) toggle=lastbit;                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001886   e102     BNZ       0x188c                                                                                          
001888   c085     MOVFF     0x85,0x7d                                                                                       
00188a   f07d                                                                                                               
00188c   0e01     MOVLW     0x1                         if (bitIndex>=1 && bitIndex<=5) addr+=(lastbit<<(5-bitIndex));               F:\MCP\projects\CAN\canIR\Source\IRec.c
00188e   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001890   e310     BNC       0x18b2                                                                                          
001892   5180     MOVF      0x80,0x0,0x1                                                                                    
001894   0805     SUBLW     0x5                                                                                             
001896   e30d     BNC       0x18b2                                                                                          
001898   0e05     MOVLW     0x5                                                                                             
00189a   80d8     BSF       0xd8,0x0,0x0                                                                                    
00189c   5580     SUBFWB    0x80,0x0,0x1                                                                                    
00189e   6e00     MOVWF     0x0,0x0                                                                                         
0018a0   5185     MOVF      0x85,0x0,0x1                                                                                    
0018a2   5200     MOVF      0x0,0x1,0x0                                                                                     
0018a4   e004     BZ        0x18ae                                                                                          
0018a6   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
0018a8   0bfe     ANDLW     0xfe                                                                                            
0018aa   0600     DECF      0x0,0x1,0x0                                                                                     
0018ac   e1fc     BNZ       0x18a6                                                                                          
0018ae   0100     MOVLB     0x0                                                                                             
0018b0   277e     ADDWF     0x7e,0x1,0x1                                                                                    
0018b2   0e06     MOVLW     0x6                         if (bitIndex>=6 && bitIndex<=11) data+=(lastbit<<(11-bitIndex));             F:\MCP\projects\CAN\canIR\Source\IRec.c
0018b4   5d80     SUBWF     0x80,0x0,0x1                                                                                    
0018b6   e310     BNC       0x18d8                                                                                          
0018b8   5180     MOVF      0x80,0x0,0x1                                                                                    
0018ba   080b     SUBLW     0xb                                                                                             
0018bc   e30d     BNC       0x18d8                                                                                          
0018be   0e0b     MOVLW     0xb                                                                                             
0018c0   80d8     BSF       0xd8,0x0,0x0                                                                                    
0018c2   5580     SUBFWB    0x80,0x0,0x1                                                                                    
0018c4   6e00     MOVWF     0x0,0x0                                                                                         
0018c6   5185     MOVF      0x85,0x0,0x1                                                                                    
0018c8   5200     MOVF      0x0,0x1,0x0                                                                                     
0018ca   e004     BZ        0x18d4                                                                                          
0018cc   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
0018ce   0bfe     ANDLW     0xfe                                                                                            
0018d0   0600     DECF      0x0,0x1,0x0                                                                                     
0018d2   e1fc     BNZ       0x18cc                                                                                          
0018d4   0100     MOVLB     0x0                                                                                             
0018d6   277f     ADDWF     0x7f,0x1,0x1                                                                                    
0018d8   2b80     INCF      0x80,0x1,0x1                bitIndex++;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0018da   d16a     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                } // if started and type == RC5 or RC5X                                        F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                // If RC6...                                                                   F:\MCP\projects\CAN\canIR\Source\IRec.c
0018dc   0584     DECF      0x84,0x0,0x1        if (started==TRUE && type==IR_RC6)                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
0018de   e001     BZ        0x18e2                                                                                          
0018e0   d0ce     BRA       0x1a7e                                                                                          
0018e2   0e03     MOVLW     0x3                                                                                             
0018e4   5d81     SUBWF     0x81,0x0,0x1                                                                                    
0018e6   e001     BZ        0x18ea                                                                                          
0018e8   d0ca     BRA       0x1a7e                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0018ea   0e1c     MOVLW     0x1c                    if ((t1-250)<timediff && timediff<(t1+250) && second==FALSE)                  F:\MCP\projects\CAN\canIR\Source\IRec.c
0018ec   80d8     BSF       0xd8,0x0,0x0                                                                                    
0018ee   5582     SUBFWB    0x82,0x0,0x1                                                                                    
0018f0   0e01     MOVLW     0x1                                                                                             
0018f2   5583     SUBFWB    0x83,0x0,0x1                                                                                    
0018f4   e235     BC        0x1960                                                                                          
0018f6   0e10     MOVLW     0x10                                                                                            
0018f8   5d82     SUBWF     0x82,0x0,0x1                                                                                    
0018fa   0e03     MOVLW     0x3                                                                                             
0018fc   5983     SUBWFB    0x83,0x0,0x1                                                                                    
0018fe   e230     BC        0x1960                                                                                          
001900   5186     MOVF      0x86,0x0,0x1                                                                                    
001902   e12e     BNZ       0x1960                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001904   5180     MOVF      0x80,0x0,0x1                if (bitIndex==0) toggle=lastbit;                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001906   e102     BNZ       0x190c                                                                                          
001908   c085     MOVFF     0x85,0x7d                                                                                       
00190a   f07d                                                                                                               
00190c   0e01     MOVLW     0x1                         if (bitIndex>=1 && bitIndex<=8) addr+=(lastbit<<(8-bitIndex));               F:\MCP\projects\CAN\canIR\Source\IRec.c
00190e   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001910   e310     BNC       0x1932                                                                                          
001912   5180     MOVF      0x80,0x0,0x1                                                                                    
001914   0808     SUBLW     0x8                                                                                             
001916   e30d     BNC       0x1932                                                                                          
001918   0e08     MOVLW     0x8                                                                                             
00191a   80d8     BSF       0xd8,0x0,0x0                                                                                    
00191c   5580     SUBFWB    0x80,0x0,0x1                                                                                    
00191e   6e00     MOVWF     0x0,0x0                                                                                         
001920   5185     MOVF      0x85,0x0,0x1                                                                                    
001922   5200     MOVF      0x0,0x1,0x0                                                                                     
001924   e004     BZ        0x192e                                                                                          
001926   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
001928   0bfe     ANDLW     0xfe                                                                                            
00192a   0600     DECF      0x0,0x1,0x0                                                                                     
00192c   e1fc     BNZ       0x1926                                                                                          
00192e   0100     MOVLB     0x0                                                                                             
001930   277e     ADDWF     0x7e,0x1,0x1                                                                                    
001932   0e09     MOVLW     0x9                         if (bitIndex>=9 && bitIndex<=16) data+=(lastbit<<(16-bitIndex));             F:\MCP\projects\CAN\canIR\Source\IRec.c
001934   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001936   e310     BNC       0x1958                                                                                          
001938   5180     MOVF      0x80,0x0,0x1                                                                                    
00193a   0810     SUBLW     0x10                                                                                            
00193c   e30d     BNC       0x1958                                                                                          
00193e   0e10     MOVLW     0x10                                                                                            
001940   80d8     BSF       0xd8,0x0,0x0                                                                                    
001942   5580     SUBFWB    0x80,0x0,0x1                                                                                    
001944   6e00     MOVWF     0x0,0x0                                                                                         
001946   5185     MOVF      0x85,0x0,0x1                                                                                    
001948   5200     MOVF      0x0,0x1,0x0                                                                                     
00194a   e004     BZ        0x1954                                                                                          
00194c   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
00194e   0bfe     ANDLW     0xfe                                                                                            
001950   0600     DECF      0x0,0x1,0x0                                                                                     
001952   e1fc     BNZ       0x194c                                                                                          
001954   0100     MOVLB     0x0                                                                                             
001956   277f     ADDWF     0x7f,0x1,0x1                                                                                    
001958   2b80     INCF      0x80,0x1,0x1                bitIndex++;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
00195a   0e01     MOVLW     0x1                         second = TRUE;                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
00195c   6f86     MOVWF     0x86,0x1                                                                                        
00195e   d128     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001960   0e33     MOVLW     0x33                    if ((t2-250)<timediff && timediff<(t2+250) && second==FALSE)                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001962   80d8     BSF       0xd8,0x0,0x0                                                                                    
001964   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001966   0e03     MOVLW     0x3                                                                                             
001968   5583     SUBFWB    0x83,0x0,0x1                                                                                    
00196a   e23b     BC        0x19e2                                                                                          
00196c   0e27     MOVLW     0x27                                                                                            
00196e   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001970   0e05     MOVLW     0x5                                                                                             
001972   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001974   e236     BC        0x19e2                                                                                          
001976   5186     MOVF      0x86,0x0,0x1                                                                                    
001978   e134     BNZ       0x19e2                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
00197a   5185     MOVF      0x85,0x0,0x1                lastbit=(lastbit?0:1);                                                       F:\MCP\projects\CAN\canIR\Source\IRec.c
00197c   e002     BZ        0x1982                                                                                          
00197e   0e00     MOVLW     0x0                                                                                             
001980   d001     BRA       0x1984                                                                                          
001982   0e01     MOVLW     0x1                                                                                             
001984   6f85     MOVWF     0x85,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001986   5180     MOVF      0x80,0x0,0x1                if (bitIndex==0) toggle=lastbit;                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001988   e102     BNZ       0x198e                                                                                          
00198a   c085     MOVFF     0x85,0x7d                                                                                       
00198c   f07d                                                                                                               
00198e   0e01     MOVLW     0x1                         if (bitIndex>=1 && bitIndex<=8) addr+=(lastbit<<(8-bitIndex));               F:\MCP\projects\CAN\canIR\Source\IRec.c
001990   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001992   e310     BNC       0x19b4                                                                                          
001994   5180     MOVF      0x80,0x0,0x1                                                                                    
001996   0808     SUBLW     0x8                                                                                             
001998   e30d     BNC       0x19b4                                                                                          
00199a   0e08     MOVLW     0x8                                                                                             
00199c   80d8     BSF       0xd8,0x0,0x0                                                                                    
00199e   5580     SUBFWB    0x80,0x0,0x1                                                                                    
0019a0   6e00     MOVWF     0x0,0x0                                                                                         
0019a2   5185     MOVF      0x85,0x0,0x1                                                                                    
0019a4   5200     MOVF      0x0,0x1,0x0                                                                                     
0019a6   e004     BZ        0x19b0                                                                                          
0019a8   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
0019aa   0bfe     ANDLW     0xfe                                                                                            
0019ac   0600     DECF      0x0,0x1,0x0                                                                                     
0019ae   e1fc     BNZ       0x19a8                                                                                          
0019b0   0100     MOVLB     0x0                                                                                             
0019b2   277e     ADDWF     0x7e,0x1,0x1                                                                                    
0019b4   0e09     MOVLW     0x9                         if (bitIndex>=9 && bitIndex<=16) data+=(lastbit<<(16-bitIndex));             F:\MCP\projects\CAN\canIR\Source\IRec.c
0019b6   5d80     SUBWF     0x80,0x0,0x1                                                                                    
0019b8   e310     BNC       0x19da                                                                                          
0019ba   5180     MOVF      0x80,0x0,0x1                                                                                    
0019bc   0810     SUBLW     0x10                                                                                            
0019be   e30d     BNC       0x19da                                                                                          
0019c0   0e10     MOVLW     0x10                                                                                            
0019c2   80d8     BSF       0xd8,0x0,0x0                                                                                    
0019c4   5580     SUBFWB    0x80,0x0,0x1                                                                                    
0019c6   6e00     MOVWF     0x0,0x0                                                                                         
0019c8   5185     MOVF      0x85,0x0,0x1                                                                                    
0019ca   5200     MOVF      0x0,0x1,0x0                                                                                     
0019cc   e004     BZ        0x19d6                                                                                          
0019ce   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
0019d0   0bfe     ANDLW     0xfe                                                                                            
0019d2   0600     DECF      0x0,0x1,0x0                                                                                     
0019d4   e1fc     BNZ       0x19ce                                                                                          
0019d6   0100     MOVLB     0x0                                                                                             
0019d8   277f     ADDWF     0x7f,0x1,0x1                                                                                    
0019da   2b80     INCF      0x80,0x1,0x1                bitIndex++;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0019dc   0e01     MOVLW     0x1                         second = TRUE;                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
0019de   6f86     MOVWF     0x86,0x1                                                                                        
0019e0   d0e7     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
0019e2   0e1c     MOVLW     0x1c                    if ((t1-250)<timediff && timediff<(t1+250) && second==TRUE)                   F:\MCP\projects\CAN\canIR\Source\IRec.c
0019e4   80d8     BSF       0xd8,0x0,0x0                                                                                    
0019e6   5582     SUBFWB    0x82,0x0,0x1                                                                                    
0019e8   0e01     MOVLW     0x1                                                                                             
0019ea   5583     SUBFWB    0x83,0x0,0x1                                                                                    
0019ec   e209     BC        0x1a00                                                                                          
0019ee   0e10     MOVLW     0x10                                                                                            
0019f0   5d82     SUBWF     0x82,0x0,0x1                                                                                    
0019f2   0e03     MOVLW     0x3                                                                                             
0019f4   5983     SUBWFB    0x83,0x0,0x1                                                                                    
0019f6   e204     BC        0x1a00                                                                                          
0019f8   0586     DECF      0x86,0x0,0x1                                                                                    
0019fa   e102     BNZ       0x1a00                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
0019fc   6b86     CLRF      0x86,0x1                    second = FALSE;                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
0019fe   d0d8     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001a00   0e33     MOVLW     0x33                    if ((t2-250)<timediff && timediff<(t2+250) && second==TRUE)                   F:\MCP\projects\CAN\canIR\Source\IRec.c
001a02   80d8     BSF       0xd8,0x0,0x0                                                                                    
001a04   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001a06   0e03     MOVLW     0x3                                                                                             
001a08   5583     SUBFWB    0x83,0x0,0x1                                                                                    
001a0a   e239     BC        0x1a7e                                                                                          
001a0c   0e27     MOVLW     0x27                                                                                            
001a0e   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001a10   0e05     MOVLW     0x5                                                                                             
001a12   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001a14   e234     BC        0x1a7e                                                                                          
001a16   0586     DECF      0x86,0x0,0x1                                                                                    
001a18   e132     BNZ       0x1a7e                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001a1a   5185     MOVF      0x85,0x0,0x1                lastbit=(lastbit?0:1);                                                       F:\MCP\projects\CAN\canIR\Source\IRec.c
001a1c   e002     BZ        0x1a22                                                                                          
001a1e   0e00     MOVLW     0x0                                                                                             
001a20   d001     BRA       0x1a24                                                                                          
001a22   0e01     MOVLW     0x1                                                                                             
001a24   6f85     MOVWF     0x85,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001a26   5180     MOVF      0x80,0x0,0x1                if (bitIndex==0) toggle=lastbit;                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001a28   e102     BNZ       0x1a2e                                                                                          
001a2a   c085     MOVFF     0x85,0x7d                                                                                       
001a2c   f07d                                                                                                               
001a2e   0e01     MOVLW     0x1                         if (bitIndex>=1 && bitIndex<=8) addr+=(lastbit<<(8-bitIndex));               F:\MCP\projects\CAN\canIR\Source\IRec.c
001a30   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001a32   e310     BNC       0x1a54                                                                                          
001a34   5180     MOVF      0x80,0x0,0x1                                                                                    
001a36   0808     SUBLW     0x8                                                                                             
001a38   e30d     BNC       0x1a54                                                                                          
001a3a   0e08     MOVLW     0x8                                                                                             
001a3c   80d8     BSF       0xd8,0x0,0x0                                                                                    
001a3e   5580     SUBFWB    0x80,0x0,0x1                                                                                    
001a40   6e00     MOVWF     0x0,0x0                                                                                         
001a42   5185     MOVF      0x85,0x0,0x1                                                                                    
001a44   5200     MOVF      0x0,0x1,0x0                                                                                     
001a46   e004     BZ        0x1a50                                                                                          
001a48   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
001a4a   0bfe     ANDLW     0xfe                                                                                            
001a4c   0600     DECF      0x0,0x1,0x0                                                                                     
001a4e   e1fc     BNZ       0x1a48                                                                                          
001a50   0100     MOVLB     0x0                                                                                             
001a52   277e     ADDWF     0x7e,0x1,0x1                                                                                    
001a54   0e09     MOVLW     0x9                         if (bitIndex>=9 && bitIndex<=16) data+=(lastbit<<(16-bitIndex));             F:\MCP\projects\CAN\canIR\Source\IRec.c
001a56   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001a58   e310     BNC       0x1a7a                                                                                          
001a5a   5180     MOVF      0x80,0x0,0x1                                                                                    
001a5c   0810     SUBLW     0x10                                                                                            
001a5e   e30d     BNC       0x1a7a                                                                                          
001a60   0e10     MOVLW     0x10                                                                                            
001a62   80d8     BSF       0xd8,0x0,0x0                                                                                    
001a64   5580     SUBFWB    0x80,0x0,0x1                                                                                    
001a66   6e00     MOVWF     0x0,0x0                                                                                         
001a68   5185     MOVF      0x85,0x0,0x1                                                                                    
001a6a   5200     MOVF      0x0,0x1,0x0                                                                                     
001a6c   e004     BZ        0x1a76                                                                                          
001a6e   46e8     RLNCF     0xe8,0x1,0x0                                                                                    
001a70   0bfe     ANDLW     0xfe                                                                                            
001a72   0600     DECF      0x0,0x1,0x0                                                                                     
001a74   e1fc     BNZ       0x1a6e                                                                                          
001a76   0100     MOVLB     0x0                                                                                             
001a78   277f     ADDWF     0x7f,0x1,0x1                                                                                    
001a7a   2b80     INCF      0x80,0x1,0x1                bitIndex++;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001a7c   d099     BRA       0x1bb0                      return;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                    }                                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                } // if started and type == RC6                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001a7e   2b80     INCF      0x80,0x1,0x1        bitIndex++;                                                                    F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001a80   5184     MOVF      0x84,0x0,0x1        if (started==FALSE && type==IR_NONE && bitIndex==2 && (t2-250)<timediff && timediff<(t2+250)) F:\MCP\projects\CAN\canIR\Source\IRec.c
001a82   e113     BNZ       0x1aaa                                                                                          
001a84   5181     MOVF      0x81,0x0,0x1                                                                                    
001a86   e111     BNZ       0x1aaa                                                                                          
001a88   0e02     MOVLW     0x2                                                                                             
001a8a   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001a8c   e10e     BNZ       0x1aaa                                                                                          
001a8e   0e33     MOVLW     0x33                                                                                            
001a90   80d8     BSF       0xd8,0x0,0x0                                                                                    
001a92   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001a94   0e03     MOVLW     0x3                                                                                             
001a96   5583     SUBFWB    0x83,0x0,0x1                                                                                    
001a98   e208     BC        0x1aaa                                                                                          
001a9a   0e27     MOVLW     0x27                                                                                            
001a9c   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001a9e   0e05     MOVLW     0x5                                                                                             
001aa0   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001aa2   e203     BC        0x1aaa                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001aa4   0e01     MOVLW     0x1                     type=IR_RC5;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001aa6   6f81     MOVWF     0x81,0x1                                                                                        
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001aa8   d063     BRA       0x1b70              else if (started==FALSE && type==IR_NONE && bitIndex==2 && (t4-250)<timediff && timediff<(t4+250)) F:\MCP\projects\CAN\canIR\Source\IRec.c
001aaa   5184     MOVF      0x84,0x0,0x1                                                                                    
001aac   e117     BNZ       0x1adc                                                                                          
001aae   5181     MOVF      0x81,0x0,0x1                                                                                    
001ab0   e115     BNZ       0x1adc                                                                                          
001ab2   0e02     MOVLW     0x2                                                                                             
001ab4   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001ab6   e112     BNZ       0x1adc                                                                                          
001ab8   0e8f     MOVLW     0x8f                                                                                            
001aba   80d8     BSF       0xd8,0x0,0x0                                                                                    
001abc   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001abe   0e07     MOVLW     0x7                                                                                             
001ac0   5583     SUBFWB    0x83,0x0,0x1                                                                                    
001ac2   e20c     BC        0x1adc                                                                                          
001ac4   0e83     MOVLW     0x83                                                                                            
001ac6   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001ac8   0e09     MOVLW     0x9                                                                                             
001aca   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001acc   e207     BC        0x1adc                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001ace   0e01     MOVLW     0x1                     started = TRUE;                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
001ad0   6f84     MOVWF     0x84,0x1                                                                                        
001ad2   6b80     CLRF      0x80,0x1                bitIndex = 0;                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
001ad4   6f85     MOVWF     0x85,0x1                lastbit = 1;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001ad6   0e02     MOVLW     0x2                     type=IR_RC5X;                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
001ad8   6f81     MOVWF     0x81,0x1                                                                                        
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001ada   d04a     BRA       0x1b70              else if (started==FALSE && type==IR_NONE && bitIndex==2 && (t6-250)<timediff && timediff<(t6+250)) F:\MCP\projects\CAN\canIR\Source\IRec.c
001adc   5184     MOVF      0x84,0x0,0x1                                                                                    
001ade   e113     BNZ       0x1b06                                                                                          
001ae0   5181     MOVF      0x81,0x0,0x1                                                                                    
001ae2   e111     BNZ       0x1b06                                                                                          
001ae4   0e02     MOVLW     0x2                                                                                             
001ae6   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001ae8   e10e     BNZ       0x1b06                                                                                          
001aea   0e8a     MOVLW     0x8a                                                                                            
001aec   80d8     BSF       0xd8,0x0,0x0                                                                                    
001aee   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001af0   0e0b     MOVLW     0xb                                                                                             
001af2   5583     SUBFWB    0x83,0x0,0x1                                                                                    
001af4   e208     BC        0x1b06                                                                                          
001af6   0e7e     MOVLW     0x7e                                                                                            
001af8   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001afa   0e0d     MOVLW     0xd                                                                                             
001afc   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001afe   e203     BC        0x1b06                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b00   0e03     MOVLW     0x3                     type=IR_RC6;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001b02   6f81     MOVWF     0x81,0x1                                                                                        
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b04   d035     BRA       0x1b70              else if (started==FALSE && type==IR_RC6 && bitIndex==9)                        F:\MCP\projects\CAN\canIR\Source\IRec.c
001b06   5184     MOVF      0x84,0x0,0x1                                                                                    
001b08   e10f     BNZ       0x1b28                                                                                          
001b0a   0e03     MOVLW     0x3                                                                                             
001b0c   5d81     SUBWF     0x81,0x0,0x1                                                                                    
001b0e   e10c     BNZ       0x1b28                                                                                          
001b10   0e09     MOVLW     0x9                                                                                             
001b12   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001b14   e109     BNZ       0x1b28                                                                                          
                                                {                                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
001b16   0e01     MOVLW     0x1                     started = TRUE;                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
001b18   6f84     MOVWF     0x84,0x1                                                                                        
001b1a   6b80     CLRF      0x80,0x1                bitIndex = 0;                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
001b1c   6b85     CLRF      0x85,0x1                lastbit = 0;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001b1e   0e03     MOVLW     0x3                     type=IR_RC6;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001b20   6f81     MOVWF     0x81,0x1                                                                                        
001b22   0e01     MOVLW     0x1                     second = TRUE;                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
001b24   6f86     MOVWF     0x86,0x1                                                                                        
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b26   d024     BRA       0x1b70              else if (started==FALSE && type==IR_RC5 && bitIndex==3 && (t2-250)<timediff && timediff<(t2+250)) F:\MCP\projects\CAN\canIR\Source\IRec.c
001b28   5184     MOVF      0x84,0x0,0x1                                                                                    
001b2a   e116     BNZ       0x1b58                                                                                          
001b2c   0581     DECF      0x81,0x0,0x1                                                                                    
001b2e   e114     BNZ       0x1b58                                                                                          
001b30   0e03     MOVLW     0x3                                                                                             
001b32   5d80     SUBWF     0x80,0x0,0x1                                                                                    
001b34   e111     BNZ       0x1b58                                                                                          
001b36   0e33     MOVLW     0x33                                                                                            
001b38   80d8     BSF       0xd8,0x0,0x0                                                                                    
001b3a   5582     SUBFWB    0x82,0x0,0x1                                                                                    
001b3c   0e03     MOVLW     0x3                                                                                             
001b3e   5583     SUBFWB    0x83,0x0,0x1                                                                                    
001b40   e20b     BC        0x1b58                                                                                          
001b42   0e27     MOVLW     0x27                                                                                            
001b44   5d82     SUBWF     0x82,0x0,0x1                                                                                    
001b46   0e05     MOVLW     0x5                                                                                             
001b48   5983     SUBWFB    0x83,0x0,0x1                                                                                    
001b4a   e206     BC        0x1b58                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b4c   0e01     MOVLW     0x1                     started = TRUE;                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
001b4e   6f84     MOVWF     0x84,0x1                                                                                        
001b50   6b80     CLRF      0x80,0x1                bitIndex = 0;                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
001b52   6f85     MOVWF     0x85,0x1                lastbit = 1;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001b54   6f81     MOVWF     0x81,0x1                type=IR_RC5;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b56   d00c     BRA       0x1b70              else if(bitIndex>2 && type!=IR_RC6)                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001b58   5180     MOVF      0x80,0x0,0x1                                                                                    
001b5a   0802     SUBLW     0x2                                                                                             
001b5c   e205     BC        0x1b68                                                                                          
001b5e   0e03     MOVLW     0x3                                                                                             
001b60   5d81     SUBWF     0x81,0x0,0x1                                                                                    
001b62   e002     BZ        0x1b68                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b64   6b81     CLRF      0x81,0x1                type=IR_NONE;                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b66   d004     BRA       0x1b70              else if(bitIndex>9)                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001b68   5180     MOVF      0x80,0x0,0x1                                                                                    
001b6a   0809     SUBLW     0x9                                                                                             
001b6c   e201     BC        0x1b70                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b6e   6b81     CLRF      0x81,0x1                type=IR_NONE;                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            }                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            // If timer 3 overflow                                                          F:\MCP\projects\CAN\canIR\Source\IRec.c
001b70   50a1     MOVF      0xa1,0x0,0x0    if(PIR2bits.TMR3IF && PIE2bits.TMR3IE)                                          F:\MCP\projects\CAN\canIR\Source\IRec.c
001b72   0b02     ANDLW     0x2                                                                                             
001b74   e01d     BZ        0x1bb0                                                                                          
001b76   50a0     MOVF      0xa0,0x0,0x0                                                                                    
001b78   0b02     ANDLW     0x2                                                                                             
001b7a   e01a     BZ        0x1bb0                                                                                          
                                            {                                                                                 F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001b7c   92a1     BCF       0xa1,0x1,0x0        PIR2bits.TMR3IF=0;                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001b7e   0100     MOVLB     0x0                 if (type!=IR_NONE)                                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001b80   5181     MOVF      0x81,0x0,0x1                                                                                    
001b82   e00e     BZ        0x1ba0                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001b84   c07f     MOVFF     0x7f,0xfe6              irecParse(type,toggle,addr,data);                                             F:\MCP\projects\CAN\canIR\Source\IRec.c
001b86   ffe6                                                                                                               
001b88   c07e     MOVFF     0x7e,0xfe6                                                                                      
001b8a   ffe6                                                                                                               
001b8c   c07d     MOVFF     0x7d,0xfe6                                                                                      
001b8e   ffe6                                                                                                               
001b90   c081     MOVFF     0x81,0xfe6                                                                                      
001b92   ffe6                                                                                                               
001b94   ec7d     CALL      0x1cfa,0x0                                                                                      
001b96   f00e                                                                                                               
001b98   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001b9a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001b9c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001b9e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
                                                }                                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001ba0   0100     MOVLB     0x0                 started  = FALSE;                                                              F:\MCP\projects\CAN\canIR\Source\IRec.c
001ba2   6b84     CLRF      0x84,0x1                                                                                        
001ba4   6b80     CLRF      0x80,0x1            bitIndex = 0;                                                                  F:\MCP\projects\CAN\canIR\Source\IRec.c
001ba6   6b7e     CLRF      0x7e,0x1            addr = 0;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
001ba8   6b7d     CLRF      0x7d,0x1            toggle = 0;                                                                    F:\MCP\projects\CAN\canIR\Source\IRec.c
001baa   6b7f     CLRF      0x7f,0x1            data = 0;                                                                      F:\MCP\projects\CAN\canIR\Source\IRec.c
001bac   6b81     CLRF      0x81,0x1            type = IR_NONE;                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                // wait in falling edge.                                                       F:\MCP\projects\CAN\canIR\Source\IRec.c
001bae   90bd     BCF       0xbd,0x0,0x0        CCP1CONbits.CCP1M0=0;                                                          F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                            }                                                                               F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
001bb0   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                                                                                                            F:\MCP\projects\CAN\canIR\Source\IRec.c
                                           #endif                                                                           F:\MCP\projects\CAN\canIR\Source\IRec.c