gplink-0.13.5 alpha Copyright (c) 1998-2005 gputils project Listing File Generated: 10-7-2008 22:24:24 Address Value Disassembly Source ------- ----- ----------- ------ ;-------------------------------------------------------- ; File Created by SDCC : free open source ANSI-C Compiler ; Version 2.8.3 #5235 (Sep 15 2008) (UNIX) ; This file was generated Tue Oct 7 22:24:24 2008 ;-------------------------------------------------------- ; PIC16 port for the Microchip 16-bit core micros ;-------------------------------------------------------- list p=18f2520 radix dec ;-------------------------------------------------------- ; public variables in this module ;-------------------------------------------------------- global _ed2 global _ed1 global _timerHigh global _delayMs global _i2cReset global _i2cInit global _i2cWaitForIdle1 global _i2cWaitForIdle global _i2cStart global _i2cRepStart global _i2cStop global _i2cPutByte global _i2cGetByte global _i2cWrite global _i2cRead global _lcdInit global _lcdPutChar global _lcdWriteStr global _lcdPutHexByte global _strByte global _strWordDec global _usartInit global _usartRxRdy global _usartGetc global _usartPutc global _usartPuts global _usartWrite global _eepromRead8 global _eepromWrite8 global _eepromRead16 global _eepromWrite16 global _eepromRead32 global _eepromWrite32 global _timerInit global _timerClear global _timerTick global _timerGetMicroSec global _timerGetMilliSec global _timerGetSec global _adcInit global _adcRead global _main ;-------------------------------------------------------- ; extern variables in this module ;-------------------------------------------------------- extern __gptrget1 extern __gptrput1 extern __divuchar extern __moduchar extern _PORTAbits extern _PORTBbits extern _PORTCbits extern _PORTDbits extern _PORTEbits extern _LATAbits extern _LATBbits extern _LATCbits extern _LATDbits extern _LATEbits extern _DDRAbits extern _TRISAbits extern _DDRBbits extern _TRISBbits extern _DDRCbits extern _TRISCbits extern _DDRDbits extern _TRISDbits extern _DDREbits extern _TRISEbits extern _OSCTUNEbits extern _PIE1bits extern _PIR1bits extern _IPR1bits extern _PIE2bits extern _PIR2bits extern _IPR2bits extern _EECON1bits extern _RCSTAbits extern _TXSTAbits extern _T3CONbits extern _CMCONbits extern _CVRCONbits extern _ECCP1ASbits extern _PWM1CONbits extern _BAUDCONbits extern _BAUDCTLbits extern _CCP2CONbits extern _CCP1CONbits extern _ADCON2bits extern _ADCON1bits extern _ADCON0bits extern _SSPCON2bits extern _SSPCON1bits extern _SSPSTATbits extern _T2CONbits extern _T1CONbits extern _RCONbits extern _WDTCONbits extern _HLVDCONbits extern _LVDCONbits extern _OSCCONbits extern _T0CONbits extern _STATUSbits extern _INTCON3bits extern _INTCON2bits extern _INTCONbits extern _STKPTRbits extern _PORTA extern _PORTB extern _PORTC extern _PORTD extern _PORTE extern _LATA extern _LATB extern _LATC extern _LATD extern _LATE extern _DDRA extern _TRISA extern _DDRB extern _TRISB extern _DDRC extern _TRISC extern _DDRD extern _TRISD extern _DDRE extern _TRISE extern _OSCTUNE extern _PIE1 extern _PIR1 extern _IPR1 extern _PIE2 extern _PIR2 extern _IPR2 extern _EECON1 extern _EECON2 extern _EEDATA extern _EEADR extern _RCSTA extern _TXSTA extern _TXREG extern _RCREG extern _SPBRG extern _SPBRGH extern _T3CON extern _TMR3L extern _TMR3H extern _CMCON extern _CVRCON extern _ECCP1AS extern _PWM1CON extern _BAUDCON extern _BAUDCTL extern _CCP2CON extern _CCPR2 extern _CCPR2L extern _CCPR2H extern _CCP1CON extern _CCPR1 extern _CCPR1L extern _CCPR1H extern _ADCON2 extern _ADCON1 extern _ADCON0 extern _ADRES extern _ADRESL extern _ADRESH extern _SSPCON2 extern _SSPCON1 extern _SSPSTAT extern _SSPADD extern _SSPBUF extern _T2CON extern _PR2 extern _TMR2 extern _T1CON extern _TMR1L extern _TMR1H extern _RCON extern _WDTCON extern _HLVDCON extern _LVDCON extern _OSCCON extern _T0CON extern _TMR0L extern _TMR0H extern _STATUS extern _FSR2L extern _FSR2H extern _PLUSW2 extern _PREINC2 extern _POSTDEC2 extern _POSTINC2 extern _INDF2 extern _BSR extern _FSR1L extern _FSR1H extern _PLUSW1 extern _PREINC1 extern _POSTDEC1 extern _POSTINC1 extern _INDF1 extern _WREG extern _FSR0L extern _FSR0H extern _PLUSW0 extern _PREINC0 extern _POSTDEC0 extern _POSTINC0 extern _INDF0 extern _INTCON3 extern _INTCON2 extern _INTCON extern _PROD extern _PRODL extern _PRODH extern _TABLAT extern _TBLPTR extern _TBLPTRL extern _TBLPTRH extern _TBLPTRU extern _PC extern _PCL extern _PCLATH extern _PCLATU extern _STKPTR extern _TOS extern _TOSL extern _TOSH extern _TOSU extern __divuint extern __moduint extern __divulong ;-------------------------------------------------------- ; Equates to used internal registers ;-------------------------------------------------------- STATUS equ 0xfd8 WREG equ 0xfe8 FSR0L equ 0xfe9 FSR0H equ 0xfea FSR1L equ 0xfe1 FSR2L equ 0xfd9 INDF0 equ 0xfef POSTDEC1 equ 0xfe5 PREINC1 equ 0xfe4 PLUSW2 equ 0xfdb PRODL equ 0xff3 PRODH equ 0xff4 ; Internal registers .registers udata_ovr 0x0000 r0x00 res 1 r0x01 res 1 r0x02 res 1 r0x03 res 1 r0x04 res 1 r0x05 res 1 r0x06 res 1 r0x07 res 1 r0x08 res 1 r0x09 res 1 r0x0a res 1 r0x0b res 1 eedata udata udata_testEeprom_0 udata _ed1 res 1 udata_testEeprom_1 udata _ed2 res 1 udata_testEeprom_2 udata _lcdInit_dat_1_1 res 3 udata_testEeprom_3 udata _lcdPutChar_dat_1_1 res 2 udata_testEeprom_4 udata _lcdPutHexByte_dat_1_1 res 3 udata_testEeprom_5 udata _timerHigh res 2 udata_testEeprom_6 udata _main_d_1_1 res 1 udata_testEeprom_7 udata _main_d1_1_1 res 4 ;-------------------------------------------------------- ; interrupt vector ;-------------------------------------------------------- ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- ; I code from now on! ; ; Starting pCode block S_testEeprom__main code _main: ; .line 22; testEeprom.c UInt8 d1[] = { 0x11, 0x22, 0x33, 0x44 }; 000356 0e11 movlw 0x11 MOVLW 0x11 000358 0100 movlb 0 BANKSEL _main_d1_1_1 00035a 6f80 movwf 0x80, 0x1 MOVWF _main_d1_1_1, B 00035c 0e22 movlw 0x22 MOVLW 0x22 ; removed redundant BANKSEL 00035e 6f81 movwf 0x81, 0x1 MOVWF (_main_d1_1_1 + 1), B 000360 0e33 movlw 0x33 MOVLW 0x33 ; removed redundant BANKSEL 000362 6f82 movwf 0x82, 0x1 MOVWF (_main_d1_1_1 + 2), B 000364 0e44 movlw 0x44 MOVLW 0x44 ; removed redundant BANKSEL 000366 6f83 movwf 0x83, 0x1 MOVWF (_main_d1_1_1 + 3), B ; .line 27; testEeprom.c OSCCON = 0x62; // Internal 4MHZ 000368 0e62 movlw 0x62 MOVLW 0x62 00036a 6ed3 movwf 0xd3, 0 MOVWF _OSCCON ; .line 28; testEeprom.c TRISB = 0x0F; // PORTB top 4 bits Output 00036c 0e0f movlw 0xf MOVLW 0x0f 00036e 6e93 movwf 0x93, 0 MOVWF _TRISB ; .line 30; testEeprom.c PORTB = 0; // LED's off 000370 6a81 clrf 0x81, 0 CLRF _PORTB ; .line 32; testEeprom.c PORTBbits.RB7 = 1; // Red LED on 000372 8e81 bsf 0x81, 0x7, 0 BSF _PORTBbits, 7 ; .line 34; testEeprom.c i2cInit(); 000374 ec30 call 0x1660, 0 CALL _i2cInit 000376 f00b ; .line 35; testEeprom.c lcdInit(); 000378 ecbb call 0x1376, 0 CALL _lcdInit 00037a f009 ; .line 37; testEeprom.c lcdWriteStr(0,0, "Testing"); 00037c 0e00 movlw 0 MOVLW UPPER(__str_0) 00037e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000380 0e14 movlw 0x14 MOVLW HIGH(__str_0) 000382 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000384 0ea2 movlw 0xa2 MOVLW LOW(__str_0) 000386 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000388 0e00 movlw 0 MOVLW 0x00 00038a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00038c 0e00 movlw 0 MOVLW 0x00 00038e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000390 ecfa call 0x9f4, 0 CALL _lcdWriteStr 000392 f004 000394 0e05 movlw 0x5 MOVLW 0x05 000396 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 39; testEeprom.c eepromWrite8(0, 0x55); 000398 0e55 movlw 0x55 MOVLW 0x55 00039a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00039c 0e00 movlw 0 MOVLW 0x00 00039e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003a0 ec7f call 0x14fe, 0 CALL _eepromWrite8 0003a2 f00a 0003a4 0e02 movlw 0x2 MOVLW 0x02 0003a6 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 40; testEeprom.c d = eepromRead8(0); 0003a8 0e00 movlw 0 MOVLW 0x00 0003aa 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003ac ecc7 call 0x158e, 0 CALL _eepromRead8 0003ae f00a 0003b0 6e00 movwf 0, 0 MOVWF r0x00 0003b2 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 41; testEeprom.c lcdPutHexByte(d); 0003b4 5000 movf 0, 0, 0 MOVF r0x00, W 0003b6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003b8 ec86 call 0xd0c, 0 CALL _lcdPutHexByte 0003ba f006 0003bc 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 43; testEeprom.c eepromWrite16(0, 0x1122); 0003be 0e11 movlw 0x11 MOVLW 0x11 0003c0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003c2 0e22 movlw 0x22 MOVLW 0x22 0003c4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003c6 0e00 movlw 0 MOVLW 0x00 0003c8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003ca ecf5 call 0xfea, 0 CALL _eepromWrite16 0003cc f007 0003ce 0e03 movlw 0x3 MOVLW 0x03 0003d0 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 44; testEeprom.c w = eepromRead16(0); 0003d2 0e00 movlw 0 MOVLW 0x00 0003d4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003d6 ec30 call 0x1060, 0 CALL _eepromRead16 0003d8 f008 0003da 6e00 movwf 0, 0 MOVWF r0x00 0003dc cff3 movff 0xff3, 0x1 MOVFF PRODL, r0x01 0003de f001 0003e0 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 45; testEeprom.c lcdPutHexByte(w >> 8); 0003e2 5001 movf 0x1, 0, 0 MOVF r0x01, W 0003e4 6e02 movwf 0x2, 0 MOVWF r0x02 0003e6 6a03 clrf 0x3, 0 CLRF r0x03 0003e8 5002 movf 0x2, 0, 0 MOVF r0x02, W 0003ea 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003ec ec86 call 0xd0c, 0 CALL _lcdPutHexByte 0003ee f006 0003f0 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 46; testEeprom.c lcdPutHexByte(w); 0003f2 5000 movf 0, 0, 0 MOVF r0x00, W 0003f4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0003f6 ec86 call 0xd0c, 0 CALL _lcdPutHexByte 0003f8 f006 0003fa 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 49; testEeprom.c d = 0xAA; 0003fc 0eaa movlw 0xaa MOVLW 0xaa 0003fe 0100 movlb 0 BANKSEL _main_d_1_1 000400 6f90 movwf 0x90, 0x1 MOVWF _main_d_1_1, B ; .line 50; testEeprom.c i2cWrite(0xA0, 0, I2cFast16, &d, 1); 000402 0e00 movlw 0 MOVLW HIGH(_main_d_1_1) 000404 6e01 movwf 0x1, 0 MOVWF r0x01 000406 0e90 movlw 0x90 MOVLW LOW(_main_d_1_1) 000408 6e00 movwf 0, 0 MOVWF r0x00 00040a 0e80 movlw 0x80 MOVLW 0x80 00040c 6e02 movwf 0x2, 0 MOVWF r0x02 00040e 0e01 movlw 0x1 MOVLW 0x01 000410 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000412 5002 movf 0x2, 0, 0 MOVF r0x02, W 000414 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000416 5001 movf 0x1, 0, 0 MOVF r0x01, W 000418 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00041a 5000 movf 0, 0, 0 MOVF r0x00, W 00041c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00041e 0e03 movlw 0x3 MOVLW 0x03 000420 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000422 0e00 movlw 0 MOVLW 0x00 000424 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000426 0e00 movlw 0 MOVLW 0x00 000428 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00042a 0ea0 movlw 0xa0 MOVLW 0xa0 00042c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00042e ec79 call 0x8f2, 0 CALL _i2cWrite 000430 f004 000432 0e08 movlw 0x8 MOVLW 0x08 000434 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 52; testEeprom.c i2cWrite(0xA0, 1, I2cFast16, d1, sizeof(d1)); 000436 0e00 movlw 0 MOVLW HIGH(_main_d1_1_1) 000438 6e01 movwf 0x1, 0 MOVWF r0x01 00043a 0e80 movlw 0x80 MOVLW LOW(_main_d1_1_1) 00043c 6e00 movwf 0, 0 MOVWF r0x00 00043e 0e80 movlw 0x80 MOVLW 0x80 000440 6e02 movwf 0x2, 0 MOVWF r0x02 000442 0e04 movlw 0x4 MOVLW 0x04 000444 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000446 5002 movf 0x2, 0, 0 MOVF r0x02, W 000448 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00044a 5001 movf 0x1, 0, 0 MOVF r0x01, W 00044c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00044e 5000 movf 0, 0, 0 MOVF r0x00, W 000450 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000452 0e03 movlw 0x3 MOVLW 0x03 000454 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000456 0e00 movlw 0 MOVLW 0x00 000458 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00045a 0e01 movlw 0x1 MOVLW 0x01 00045c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00045e 0ea0 movlw 0xa0 MOVLW 0xa0 000460 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000462 ec79 call 0x8f2, 0 CALL _i2cWrite 000464 f004 000466 0e08 movlw 0x8 MOVLW 0x08 000468 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 00046a 0100 movlb 0 BANKSEL _main_d_1_1 ; .line 55; testEeprom.c d = 0; 00046c 6b90 clrf 0x90, 0x1 CLRF _main_d_1_1, B ; .line 56; testEeprom.c i2cRead(0xA0, 0, I2cFast16, &d, 1); 00046e 0e00 movlw 0 MOVLW HIGH(_main_d_1_1) 000470 6e01 movwf 0x1, 0 MOVWF r0x01 000472 0e90 movlw 0x90 MOVLW LOW(_main_d_1_1) 000474 6e00 movwf 0, 0 MOVWF r0x00 000476 0e80 movlw 0x80 MOVLW 0x80 000478 6e02 movwf 0x2, 0 MOVWF r0x02 00047a 0e01 movlw 0x1 MOVLW 0x01 00047c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00047e 5002 movf 0x2, 0, 0 MOVF r0x02, W 000480 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000482 5001 movf 0x1, 0, 0 MOVF r0x01, W 000484 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000486 5000 movf 0, 0, 0 MOVF r0x00, W 000488 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00048a 0e03 movlw 0x3 MOVLW 0x03 00048c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00048e 0e00 movlw 0 MOVLW 0x00 000490 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000492 0e00 movlw 0 MOVLW 0x00 000494 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000496 0ea0 movlw 0xa0 MOVLW 0xa0 000498 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00049a ec4d call 0x69a, 0 CALL _i2cRead 00049c f003 00049e 0e08 movlw 0x8 MOVLW 0x08 0004a0 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 0004a2 0100 movlb 0 BANKSEL _main_d_1_1 ; .line 57; testEeprom.c lcdPutHexByte(d); 0004a4 5190 movf 0x90, 0, 0x1 MOVF _main_d_1_1, W, B 0004a6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004a8 ec86 call 0xd0c, 0 CALL _lcdPutHexByte 0004aa f006 0004ac 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 59; testEeprom.c i2cRead(0xA0, 1, I2cFast16, d1, sizeof(d1)); 0004ae 0e00 movlw 0 MOVLW HIGH(_main_d1_1_1) 0004b0 6e01 movwf 0x1, 0 MOVWF r0x01 0004b2 0e80 movlw 0x80 MOVLW LOW(_main_d1_1_1) 0004b4 6e00 movwf 0, 0 MOVWF r0x00 0004b6 0e80 movlw 0x80 MOVLW 0x80 0004b8 6e02 movwf 0x2, 0 MOVWF r0x02 0004ba 0e04 movlw 0x4 MOVLW 0x04 0004bc 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004be 5002 movf 0x2, 0, 0 MOVF r0x02, W 0004c0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004c2 5001 movf 0x1, 0, 0 MOVF r0x01, W 0004c4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004c6 5000 movf 0, 0, 0 MOVF r0x00, W 0004c8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004ca 0e03 movlw 0x3 MOVLW 0x03 0004cc 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004ce 0e00 movlw 0 MOVLW 0x00 0004d0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004d2 0e01 movlw 0x1 MOVLW 0x01 0004d4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004d6 0ea0 movlw 0xa0 MOVLW 0xa0 0004d8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004da ec4d call 0x69a, 0 CALL _i2cRead 0004dc f003 0004de 0e08 movlw 0x8 MOVLW 0x08 0004e0 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 60; testEeprom.c lcdWriteStr(0, 1, ""); 0004e2 0e00 movlw 0 MOVLW UPPER(__str_1) 0004e4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004e6 0e14 movlw 0x14 MOVLW HIGH(__str_1) 0004e8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004ea 0eaa movlw 0xaa MOVLW LOW(__str_1) 0004ec 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004ee 0e01 movlw 0x1 MOVLW 0x01 0004f0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004f2 0e00 movlw 0 MOVLW 0x00 0004f4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0004f6 ecfa call 0x9f4, 0 CALL _lcdWriteStr 0004f8 f004 0004fa 0e05 movlw 0x5 MOVLW 0x05 0004fc 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 61; testEeprom.c for(i = 0; i < sizeof(d1); i++) 0004fe 6a00 clrf 0, 0 CLRF r0x00 _00462_DS_: 000500 0e04 movlw 0x4 MOVLW 0x04 000502 5c00 subwf 0, 0, 0 SUBWF r0x00, W 000504 e213 bc 0x52c BC _00460_DS_ ; .line 62; testEeprom.c lcdPutHexByte(d1[i]); 000506 0e80 movlw 0x80 MOVLW LOW(_main_d1_1_1) 000508 2400 addwf 0, 0, 0 ADDWF r0x00, W 00050a 6e01 movwf 0x1, 0 MOVWF r0x01 00050c 6a02 clrf 0x2, 0 CLRF r0x02 00050e 0e00 movlw 0 MOVLW HIGH(_main_d1_1_1) 000510 2202 addwfc 0x2, 0x1, 0 ADDWFC r0x02, F 000512 c001 movff 0x1, 0xfe9 MOVFF r0x01, FSR0L 000514 ffe9 000516 c002 movff 0x2, 0xfea MOVFF r0x02, FSR0H 000518 ffea 00051a cfef movff 0xfef, 0x1 MOVFF INDF0, r0x01 00051c f001 00051e 5001 movf 0x1, 0, 0 MOVF r0x01, W 000520 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000522 ec86 call 0xd0c, 0 CALL _lcdPutHexByte 000524 f006 000526 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 61; testEeprom.c for(i = 0; i < sizeof(d1); i++) 000528 2a00 incf 0, 0x1, 0 INCF r0x00, F 00052a d7ea bra 0x500 BRA _00462_DS_ _00460_DS_: ; .line 65; testEeprom.c while(1){ 00052c d7ff bra 0x52c BRA _00460_DS_ 00052e 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__adcRead code _adcRead: ; .line 660; ./picLib3.c UInt16 adcRead(UInt8 channel){ 0013e0 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 0013e2 ffe5 0013e4 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 0013e6 ffd9 0013e8 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0013ea ffe5 0013ec c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 0013ee ffe5 0013f0 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 0013f2 ffe5 0013f4 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 0013f6 ffe5 0013f8 0e02 movlw 0x2 MOVLW 0x02 0013fa cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 0013fc f000 ; .line 662; ./picLib3.c ADCON0 = (channel << 2) | 0x03; 0013fe 4400 rlncf 0, 0, 0 RLNCF r0x00, W 001400 44e8 rlncf 0xe8, 0, 0 RLNCF WREG, W 001402 0bfc andlw 0xfc ANDLW 0xfc 001404 6e01 movwf 0x1, 0 MOVWF r0x01 001406 0e03 movlw 0x3 MOVLW 0x03 001408 1001 iorwf 0x1, 0, 0 IORWF r0x01, W 00140a 6ec2 movwf 0xc2, 0 MOVWF _ADCON0 _00451_DS_: ; .line 664; ./picLib3.c while(ADCON0bits.NOT_DONE){ 00140c b2c2 btfsc 0xc2, 0x1, 0 BTFSC _ADCON0bits, 1 00140e d7fe bra 0x140c BRA _00451_DS_ ; .line 668; ./picLib3.c return (ADRESH << 8) + ADRESL; 001410 cfc4 movff 0xfc4, 0 MOVFF _ADRESH, r0x00 001412 f000 001414 6a01 clrf 0x1, 0 CLRF r0x01 001416 5000 movf 0, 0, 0 MOVF r0x00, W 001418 6e03 movwf 0x3, 0 MOVWF r0x03 00141a 6a02 clrf 0x2, 0 CLRF r0x02 00141c cfc3 movff 0xfc3, 0 MOVFF _ADRESL, r0x00 00141e f000 001420 6a01 clrf 0x1, 0 CLRF r0x01 001422 5000 movf 0, 0, 0 MOVF r0x00, W 001424 2602 addwf 0x2, 0x1, 0 ADDWF r0x02, F 001426 5001 movf 0x1, 0, 0 MOVF r0x01, W 001428 2203 addwfc 0x3, 0x1, 0 ADDWFC r0x03, F 00142a c003 movff 0x3, 0xff3 MOVFF r0x03, PRODL 00142c fff3 00142e 5002 movf 0x2, 0, 0 MOVF r0x02, W 001430 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 001432 f003 001434 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 001436 f002 001438 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 00143a f001 00143c cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 00143e f000 001440 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 001442 ffd9 001444 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__adcInit code _adcInit: ; .line 655; ./picLib3.c ADCON0 = 0x01; // Enable ADC 0016e4 0e01 movlw 0x1 MOVLW 0x01 0016e6 6ec2 movwf 0xc2, 0 MOVWF _ADCON0 ; .line 656; ./picLib3.c ADCON1 = 0x05; // Enable first 9 ADC inputs and use internal voltage reference 0016e8 0e05 movlw 0x5 MOVLW 0x05 0016ea 6ec1 movwf 0xc1, 0 MOVWF _ADCON1 ; .line 657; ./picLib3.c ADCON2 = 0x94; // Setup Aquisition times for 4MHz Clock 0016ec 0e94 movlw 0x94 MOVLW 0x94 0016ee 6ec0 movwf 0xc0, 0 MOVWF _ADCON2 0016f0 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__timerGetSec code _timerGetSec: ; .line 644; ./picLib3.c UInt16 timerGetSec(){ 0011bc c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0011be ffe5 0011c0 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 0011c2 ffe5 0011c4 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 0011c6 ffe5 0011c8 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 0011ca ffe5 ; .line 645; ./picLib3.c return timerGetMicroSec() / 1000000; 0011cc ec85 call 0x130a, 0 CALL _timerGetMicroSec 0011ce f009 0011d0 6e00 movwf 0, 0 MOVWF r0x00 0011d2 cff3 movff 0xff3, 0x1 MOVFF PRODL, r0x01 0011d4 f001 0011d6 cff4 movff 0xff4, 0x2 MOVFF PRODH, r0x02 0011d8 f002 0011da cfe9 movff 0xfe9, 0x3 MOVFF FSR0L, r0x03 0011dc f003 0011de 0e00 movlw 0 MOVLW 0x00 0011e0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011e2 0e0f movlw 0xf MOVLW 0x0f 0011e4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011e6 0e42 movlw 0x42 MOVLW 0x42 0011e8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011ea 0e40 movlw 0x40 MOVLW 0x40 0011ec 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011ee 5003 movf 0x3, 0, 0 MOVF r0x03, W 0011f0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011f2 5002 movf 0x2, 0, 0 MOVF r0x02, W 0011f4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011f6 5001 movf 0x1, 0, 0 MOVF r0x01, W 0011f8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011fa 5000 movf 0, 0, 0 MOVF r0x00, W 0011fc 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0011fe ecec call 0x7d8, 0 CALL __divulong 001200 f003 001202 6e00 movwf 0, 0 MOVWF r0x00 001204 cff3 movff 0xff3, 0x1 MOVFF PRODL, r0x01 001206 f001 001208 cff4 movff 0xff4, 0x2 MOVFF PRODH, r0x02 00120a f002 00120c cfe9 movff 0xfe9, 0x3 MOVFF FSR0L, r0x03 00120e f003 001210 0e08 movlw 0x8 MOVLW 0x08 001212 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 001214 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 001216 fff3 001218 5000 movf 0, 0, 0 MOVF r0x00, W 00121a cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 00121c f003 00121e cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 001220 f002 001222 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 001224 f001 001226 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 001228 f000 00122a 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__timerGetMilliSec code _timerGetMilliSec: ; .line 640; ./picLib3.c UInt16 timerGetMilliSec(){ 00122c c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 00122e ffe5 001230 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 001232 ffe5 001234 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 001236 ffe5 001238 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 00123a ffe5 ; .line 641; ./picLib3.c return timerGetMicroSec() / 1000; 00123c ec85 call 0x130a, 0 CALL _timerGetMicroSec 00123e f009 001240 6e00 movwf 0, 0 MOVWF r0x00 001242 cff3 movff 0xff3, 0x1 MOVFF PRODL, r0x01 001244 f001 001246 cff4 movff 0xff4, 0x2 MOVFF PRODH, r0x02 001248 f002 00124a cfe9 movff 0xfe9, 0x3 MOVFF FSR0L, r0x03 00124c f003 00124e 0e00 movlw 0 MOVLW 0x00 001250 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 001252 0e00 movlw 0 MOVLW 0x00 001254 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 001256 0e03 movlw 0x3 MOVLW 0x03 001258 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00125a 0ee8 movlw 0xe8 MOVLW 0xe8 00125c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00125e 5003 movf 0x3, 0, 0 MOVF r0x03, W 001260 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 001262 5002 movf 0x2, 0, 0 MOVF r0x02, W 001264 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 001266 5001 movf 0x1, 0, 0 MOVF r0x01, W 001268 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00126a 5000 movf 0, 0, 0 MOVF r0x00, W 00126c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00126e ecec call 0x7d8, 0 CALL __divulong 001270 f003 001272 6e00 movwf 0, 0 MOVWF r0x00 001274 cff3 movff 0xff3, 0x1 MOVFF PRODL, r0x01 001276 f001 001278 cff4 movff 0xff4, 0x2 MOVFF PRODH, r0x02 00127a f002 00127c cfe9 movff 0xfe9, 0x3 MOVFF FSR0L, r0x03 00127e f003 001280 0e08 movlw 0x8 MOVLW 0x08 001282 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 001284 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 001286 fff3 001288 5000 movf 0, 0, 0 MOVF r0x00, W 00128a cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 00128c f003 00128e cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 001290 f002 001292 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 001294 f001 001296 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 001298 f000 00129a 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__timerGetMicroSec code _timerGetMicroSec: 00130a c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 00130c ffe5 00130e c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 001310 ffe5 001312 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 001314 ffe5 001316 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 001318 ffe5 00131a c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 00131c ffe5 00131e c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 001320 ffe5 ; t1 = (TMR3H << 8) | TMR3L; 001322 cfb2 movff 0xfb2, 0 MOVFF _TMR3L, r0x00 001324 f000 001326 cfb3 movff 0xfb3, 0x1 MOVFF _TMR3H, r0x01 001328 f001 00132a c08c movff 0x8c, 0x2 MOVFF _timerHigh, r0x02 00132c f002 00132e c08d movff 0x8d, 0x3 MOVFF (_timerHigh + 1), r0x03 001330 f003 ; t3 = (TMR3H << 8) | TMR3L; 001332 cfb2 movff 0xfb2, 0x4 MOVFF _TMR3L, r0x04 001334 f004 001336 cfb3 movff 0xfb3, 0x5 MOVFF _TMR3H, r0x05 001338 f005 ; if(t3 < t1){ 00133a 5001 movf 0x1, 0, 0 MOVF r0x01, W 00133c 5c05 subwf 0x5, 0, 0 SUBWF r0x05, W 00133e e102 bnz 0x1344 BNZ _00001 001340 5000 movf 0, 0, 0 MOVF r0x00, W 001342 5c04 subwf 0x4, 0, 0 SUBWF r0x04, W _00001: 001344 e204 bc 0x134e BC _00002 001346 c08c movff 0x8c, 0x2 MOVFF _timerHigh, r0x02 001348 f002 00134a c08d movff 0x8d, 0x3 MOVFF (_timerHigh + 1), r0x03 00134c f003 _00002: ; return ((UInt32)timerHigh << 16) | t3; 00134e c003 movff 0x3, 0xfe9 MOVFF r0x03, FSR0L 001350 ffe9 001352 c002 movff 0x2, 0xff4 MOVFF r0x02, PRODH 001354 fff4 001356 c005 movff 0x5, 0xff3 MOVFF r0x05, PRODL 001358 fff3 00135a 5004 movf 0x4, 0, 0 MOVF r0x04, W 00135c cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 00135e f005 001360 cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 001362 f004 001364 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 001366 f003 001368 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 00136a f002 00136c cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 00136e f001 001370 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 001372 f000 001374 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__timerTick code _timerTick: 001730 0100 movlb 0 BANKSEL _timerHigh ; .line 575; ./picLib3.c timerHigh++; 001732 2b8c incf 0x8c, 0x1, 0x1 INCF _timerHigh, F, B 001734 e301 bnc 0x1738 BNC _10459_DS_ ; removed redundant BANKSEL 001736 2b8d incf 0x8d, 0x1, 0x1 INCF (_timerHigh + 1), F, B _10459_DS_: 001738 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__timerClear code _timerClear: ; .line 568; ./picLib3.c TMR3H = 0; 001700 6ab3 clrf 0xb3, 0 CLRF _TMR3H ; .line 569; ./picLib3.c TMR3L = 0; 001702 6ab2 clrf 0xb2, 0 CLRF _TMR3L 001704 0100 movlb 0 BANKSEL _timerHigh ; .line 571; ./picLib3.c timerHigh = 0; 001706 6b8c clrf 0x8c, 0x1 CLRF _timerHigh, B ; removed redundant BANKSEL 001708 6b8d clrf 0x8d, 0x1 CLRF (_timerHigh + 1), B 00170a 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__timerInit code _timerInit: ; .line 560; ./picLib3.c T3CON = 0x81; 0016d4 0e81 movlw 0x81 MOVLW 0x81 0016d6 6eb1 movwf 0xb1, 0 MOVWF _T3CON ; .line 561; ./picLib3.c TMR3H = 0; 0016d8 6ab3 clrf 0xb3, 0 CLRF _TMR3H ; .line 562; ./picLib3.c TMR3L = 0; 0016da 6ab2 clrf 0xb2, 0 CLRF _TMR3L 0016dc 0100 movlb 0 BANKSEL _timerHigh ; .line 564; ./picLib3.c timerHigh = 0; 0016de 6b8c clrf 0x8c, 0x1 CLRF _timerHigh, B ; removed redundant BANKSEL 0016e0 6b8d clrf 0x8d, 0x1 CLRF (_timerHigh + 1), B 0016e2 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__eepromWrite32 code _eepromWrite32: ; .line 483; ./picLib3.c void eepromWrite32(UInt8 address, UInt32 value){ 000db2 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 000db4 ffe5 000db6 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000db8 ffd9 000dba c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000dbc ffe5 000dbe c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000dc0 ffe5 000dc2 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000dc4 ffe5 000dc6 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000dc8 ffe5 000dca c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000dcc ffe5 000dce c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 000dd0 ffe5 000dd2 c006 movff 0x6, 0xfe5 MOVFF r0x06, POSTDEC1 000dd4 ffe5 000dd6 0e02 movlw 0x2 MOVLW 0x02 000dd8 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000dda f000 000ddc 0e03 movlw 0x3 MOVLW 0x03 000dde cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 000de0 f001 000de2 0e04 movlw 0x4 MOVLW 0x04 000de4 cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 000de6 f002 000de8 0e05 movlw 0x5 MOVLW 0x05 000dea cfdb movff 0xfdb, 0x3 MOVFF PLUSW2, r0x03 000dec f003 000dee 0e06 movlw 0x6 MOVLW 0x06 000df0 cfdb movff 0xfdb, 0x4 MOVFF PLUSW2, r0x04 000df2 f004 ; .line 484; ./picLib3.c eepromWrite16(address, value); 000df4 5001 movf 0x1, 0, 0 MOVF r0x01, W 000df6 6e05 movwf 0x5, 0 MOVWF r0x05 ; # MOVF r0x02, W ; # MOVWF r0x06 ; # MOVF r0x06, W 000df8 5002 movf 0x2, 0, 0 MOVF r0x02, W 000dfa 6e06 movwf 0x6, 0 MOVWF r0x06 000dfc 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000dfe 5005 movf 0x5, 0, 0 MOVF r0x05, W 000e00 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000e02 5000 movf 0, 0, 0 MOVF r0x00, W 000e04 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000e06 ecf5 call 0xfea, 0 CALL _eepromWrite16 000e08 f007 000e0a 0e03 movlw 0x3 MOVLW 0x03 000e0c 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 485; ./picLib3.c eepromWrite16(address + 2, value >> 16); 000e0e 2a00 incf 0, 0x1, 0 INCF r0x00, F 000e10 2a00 incf 0, 0x1, 0 INCF r0x00, F 000e12 5003 movf 0x3, 0, 0 MOVF r0x03, W 000e14 6e01 movwf 0x1, 0 MOVWF r0x01 000e16 5004 movf 0x4, 0, 0 MOVF r0x04, W 000e18 6e02 movwf 0x2, 0 MOVWF r0x02 000e1a 6a03 clrf 0x3, 0 CLRF r0x03 000e1c 6a04 clrf 0x4, 0 CLRF r0x04 000e1e 5002 movf 0x2, 0, 0 MOVF r0x02, W 000e20 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000e22 5001 movf 0x1, 0, 0 MOVF r0x01, W 000e24 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000e26 5000 movf 0, 0, 0 MOVF r0x00, W 000e28 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000e2a ecf5 call 0xfea, 0 CALL _eepromWrite16 000e2c f007 000e2e 0e03 movlw 0x3 MOVLW 0x03 000e30 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 000e32 cfe4 movff 0xfe4, 0x6 MOVFF PREINC1, r0x06 000e34 f006 000e36 cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 000e38 f005 000e3a cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 000e3c f004 000e3e cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 000e40 f003 000e42 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000e44 f002 000e46 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 000e48 f001 000e4a cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 000e4c f000 000e4e cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000e50 ffd9 000e52 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__eepromRead32 code _eepromRead32: ; .line 475; ./picLib3.c UInt32 eepromRead32(UInt8 address){ 000ae0 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 000ae2 ffe5 000ae4 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000ae6 ffd9 000ae8 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000aea ffe5 000aec c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000aee ffe5 000af0 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000af2 ffe5 000af4 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000af6 ffe5 000af8 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000afa ffe5 000afc c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 000afe ffe5 000b00 c006 movff 0x6, 0xfe5 MOVFF r0x06, POSTDEC1 000b02 ffe5 000b04 c007 movff 0x7, 0xfe5 MOVFF r0x07, POSTDEC1 000b06 ffe5 000b08 c008 movff 0x8, 0xfe5 MOVFF r0x08, POSTDEC1 000b0a ffe5 000b0c c009 movff 0x9, 0xfe5 MOVFF r0x09, POSTDEC1 000b0e ffe5 000b10 c00a movff 0xa, 0xfe5 MOVFF r0x0a, POSTDEC1 000b12 ffe5 000b14 c00b movff 0xb, 0xfe5 MOVFF r0x0b, POSTDEC1 000b16 ffe5 000b18 0e02 movlw 0x2 MOVLW 0x02 000b1a cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000b1c f000 ; .line 478; ./picLib3.c v = eepromRead16(address); 000b1e 5000 movf 0, 0, 0 MOVF r0x00, W 000b20 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000b22 ec30 call 0x1060, 0 CALL _eepromRead16 000b24 f008 000b26 6e01 movwf 0x1, 0 MOVWF r0x01 000b28 cff3 movff 0xff3, 0x2 MOVFF PRODL, r0x02 000b2a f002 000b2c 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F 000b2e 6a03 clrf 0x3, 0 CLRF r0x03 000b30 6a04 clrf 0x4, 0 CLRF r0x04 ; .line 479; ./picLib3.c v |= ((UInt32)eepromRead16(address + 2) << 16); 000b32 2a00 incf 0, 0x1, 0 INCF r0x00, F 000b34 2a00 incf 0, 0x1, 0 INCF r0x00, F 000b36 5000 movf 0, 0, 0 MOVF r0x00, W 000b38 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000b3a ec30 call 0x1060, 0 CALL _eepromRead16 000b3c f008 000b3e 6e00 movwf 0, 0 MOVWF r0x00 000b40 cff3 movff 0xff3, 0x5 MOVFF PRODL, r0x05 000b42 f005 000b44 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F 000b46 6a06 clrf 0x6, 0 CLRF r0x06 000b48 6a07 clrf 0x7, 0 CLRF r0x07 000b4a 5005 movf 0x5, 0, 0 MOVF r0x05, W 000b4c 6e0b movwf 0xb, 0 MOVWF r0x0b 000b4e 5000 movf 0, 0, 0 MOVF r0x00, W 000b50 6e0a movwf 0xa, 0 MOVWF r0x0a 000b52 6a08 clrf 0x8, 0 CLRF r0x08 000b54 6a09 clrf 0x9, 0 CLRF r0x09 000b56 5008 movf 0x8, 0, 0 MOVF r0x08, W 000b58 1201 iorwf 0x1, 0x1, 0 IORWF r0x01, F 000b5a 5009 movf 0x9, 0, 0 MOVF r0x09, W 000b5c 1202 iorwf 0x2, 0x1, 0 IORWF r0x02, F 000b5e 500a movf 0xa, 0, 0 MOVF r0x0a, W 000b60 1203 iorwf 0x3, 0x1, 0 IORWF r0x03, F 000b62 500b movf 0xb, 0, 0 MOVF r0x0b, W 000b64 1204 iorwf 0x4, 0x1, 0 IORWF r0x04, F ; .line 480; ./picLib3.c return v; 000b66 c004 movff 0x4, 0xfe9 MOVFF r0x04, FSR0L 000b68 ffe9 000b6a c003 movff 0x3, 0xff4 MOVFF r0x03, PRODH 000b6c fff4 000b6e c002 movff 0x2, 0xff3 MOVFF r0x02, PRODL 000b70 fff3 000b72 5001 movf 0x1, 0, 0 MOVF r0x01, W 000b74 cfe4 movff 0xfe4, 0xb MOVFF PREINC1, r0x0b 000b76 f00b 000b78 cfe4 movff 0xfe4, 0xa MOVFF PREINC1, r0x0a 000b7a f00a 000b7c cfe4 movff 0xfe4, 0x9 MOVFF PREINC1, r0x09 000b7e f009 000b80 cfe4 movff 0xfe4, 0x8 MOVFF PREINC1, r0x08 000b82 f008 000b84 cfe4 movff 0xfe4, 0x7 MOVFF PREINC1, r0x07 000b86 f007 000b88 cfe4 movff 0xfe4, 0x6 MOVFF PREINC1, r0x06 000b8a f006 000b8c cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 000b8e f005 000b90 cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 000b92 f004 000b94 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 000b96 f003 000b98 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000b9a f002 000b9c cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 000b9e f001 000ba0 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 000ba2 f000 000ba4 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000ba6 ffd9 000ba8 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__eepromWrite16 code _eepromWrite16: ; .line 445; ./picLib3.c void eepromWrite16(UInt8 address, UInt16 value){ 000fea cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 000fec ffe5 000fee cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000ff0 ffd9 000ff2 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000ff4 ffe5 000ff6 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000ff8 ffe5 000ffa c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000ffc ffe5 000ffe 0e02 movlw 0x2 MOVLW 0x02 001000 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 001002 f000 001004 0e03 movlw 0x3 MOVLW 0x03 001006 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 001008 f001 00100a 0e04 movlw 0x4 MOVLW 0x04 00100c cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 00100e f002 ; .line 447; ./picLib3.c EECON1bits.EEPGD = 0; 001010 9ea6 bcf 0xa6, 0x7, 0 BCF _EECON1bits, 7 ; .line 448; ./picLib3.c EECON1bits.CFGS = 0; 001012 9ca6 bcf 0xa6, 0x6, 0 BCF _EECON1bits, 6 ; .line 449; ./picLib3.c EECON1bits.WREN = 1; // Enable writes to data EEPROM 001014 84a6 bsf 0xa6, 0x2, 0 BSF _EECON1bits, 2 ; .line 450; ./picLib3.c INTCONbits.GIE = 0; // Disable interrupts 001016 9ef2 bcf 0xf2, 0x7, 0 BCF _INTCONbits, 7 ; .line 452; ./picLib3.c EEADR = address; 001018 c000 movff 0, 0xfa9 MOVFF r0x00, _EEADR 00101a ffa9 ; .line 453; ./picLib3.c EEDATA = value; 00101c 5001 movf 0x1, 0, 0 MOVF r0x01, W 00101e 6ea8 movwf 0xa8, 0 MOVWF _EEDATA ; .line 454; ./picLib3.c EECON2 = 0x55; 001020 0e55 movlw 0x55 MOVLW 0x55 001022 6ea7 movwf 0xa7, 0 MOVWF _EECON2 ; .line 455; ./picLib3.c EECON2 = 0x0AA; 001024 0eaa movlw 0xaa MOVLW 0xaa 001026 6ea7 movwf 0xa7, 0 MOVWF _EECON2 ; .line 456; ./picLib3.c EECON1bits.WR = 1; // Start writing 001028 82a6 bsf 0xa6, 0x1, 0 BSF _EECON1bits, 1 _00395_DS_: ; .line 457; ./picLib3.c while(EECON1bits.WR); 00102a b2a6 btfsc 0xa6, 0x1, 0 BTFSC _EECON1bits, 1 00102c d7fe bra 0x102a BRA _00395_DS_ ; .line 459; ./picLib3.c EEADR = address + 1; 00102e 2800 incf 0, 0, 0 INCF r0x00, W 001030 6ea9 movwf 0xa9, 0 MOVWF _EEADR ; .line 460; ./picLib3.c EEDATA = value >> 8; 001032 5002 movf 0x2, 0, 0 MOVF r0x02, W 001034 6e01 movwf 0x1, 0 MOVWF r0x01 001036 6a02 clrf 0x2, 0 CLRF r0x02 001038 5001 movf 0x1, 0, 0 MOVF r0x01, W 00103a 6ea8 movwf 0xa8, 0 MOVWF _EEDATA ; .line 461; ./picLib3.c EECON2 = 0x55; 00103c 0e55 movlw 0x55 MOVLW 0x55 00103e 6ea7 movwf 0xa7, 0 MOVWF _EECON2 ; .line 462; ./picLib3.c EECON2 = 0x0AA; 001040 0eaa movlw 0xaa MOVLW 0xaa 001042 6ea7 movwf 0xa7, 0 MOVWF _EECON2 ; .line 463; ./picLib3.c EECON1bits.WR = 1; // Start writing 001044 82a6 bsf 0xa6, 0x1, 0 BSF _EECON1bits, 1 _00398_DS_: ; .line 464; ./picLib3.c while(EECON1bits.WR); 001046 b2a6 btfsc 0xa6, 0x1, 0 BTFSC _EECON1bits, 1 001048 d7fe bra 0x1046 BRA _00398_DS_ ; .line 471; ./picLib3.c EECON1bits.WREN = 0; 00104a 94a6 bcf 0xa6, 0x2, 0 BCF _EECON1bits, 2 ; .line 472; ./picLib3.c INTCONbits.GIE = 1; // enable interrupts 00104c 8ef2 bsf 0xf2, 0x7, 0 BSF _INTCONbits, 7 00104e cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 001050 f002 001052 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 001054 f001 001056 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 001058 f000 00105a cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 00105c ffd9 00105e 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__eepromRead16 code _eepromRead16: ; .line 431; ./picLib3.c UInt16 eepromRead16(UInt8 address){ 001060 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 001062 ffe5 001064 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 001066 ffd9 001068 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 00106a ffe5 00106c c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 00106e ffe5 001070 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 001072 ffe5 001074 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 001076 ffe5 001078 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 00107a ffe5 00107c c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 00107e ffe5 001080 0e02 movlw 0x2 MOVLW 0x02 001082 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 001084 f000 ; .line 434; ./picLib3.c EECON1bits.CFGS = 0; 001086 9ca6 bcf 0xa6, 0x6, 0 BCF _EECON1bits, 6 ; .line 435; ./picLib3.c EECON1bits.EEPGD = 0; 001088 9ea6 bcf 0xa6, 0x7, 0 BCF _EECON1bits, 7 ; .line 436; ./picLib3.c EEADR = address; 00108a c000 movff 0, 0xfa9 MOVFF r0x00, _EEADR 00108c ffa9 ; .line 437; ./picLib3.c EECON1bits.RD = 1; 00108e 80a6 bsf 0xa6, 0, 0 BSF _EECON1bits, 0 ; .line 438; ./picLib3.c v = EEDATA; 001090 cfa8 movff 0xfa8, 0x1 MOVFF _EEDATA, r0x01 001092 f001 001094 6a02 clrf 0x2, 0 CLRF r0x02 ; .line 439; ./picLib3.c EEADR = address + 1; 001096 2800 incf 0, 0, 0 INCF r0x00, W 001098 6ea9 movwf 0xa9, 0 MOVWF _EEADR ; .line 440; ./picLib3.c EECON1bits.RD = 1; 00109a 80a6 bsf 0xa6, 0, 0 BSF _EECON1bits, 0 ; .line 441; ./picLib3.c v |= (EEDATA << 8); 00109c cfa8 movff 0xfa8, 0 MOVFF _EEDATA, r0x00 00109e f000 0010a0 6a03 clrf 0x3, 0 CLRF r0x03 0010a2 5000 movf 0, 0, 0 MOVF r0x00, W 0010a4 6e05 movwf 0x5, 0 MOVWF r0x05 0010a6 6a04 clrf 0x4, 0 CLRF r0x04 0010a8 5004 movf 0x4, 0, 0 MOVF r0x04, W 0010aa 1201 iorwf 0x1, 0x1, 0 IORWF r0x01, F 0010ac 5005 movf 0x5, 0, 0 MOVF r0x05, W 0010ae 1202 iorwf 0x2, 0x1, 0 IORWF r0x02, F ; .line 442; ./picLib3.c return v; 0010b0 c002 movff 0x2, 0xff3 MOVFF r0x02, PRODL 0010b2 fff3 0010b4 5001 movf 0x1, 0, 0 MOVF r0x01, W 0010b6 cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 0010b8 f005 0010ba cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 0010bc f004 0010be cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 0010c0 f003 0010c2 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 0010c4 f002 0010c6 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 0010c8 f001 0010ca cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0010cc f000 0010ce cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 0010d0 ffd9 0010d2 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__eepromWrite8 code _eepromWrite8: ; .line 409; ./picLib3.c void eepromWrite8(UInt8 address, UInt8 value){ 0014fe cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 001500 ffe5 001502 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 001504 ffd9 001506 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 001508 ffe5 00150a c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 00150c ffe5 00150e 0e02 movlw 0x2 MOVLW 0x02 001510 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 001512 f000 001514 0e03 movlw 0x3 MOVLW 0x03 001516 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 001518 f001 ; .line 411; ./picLib3.c EECON1bits.EEPGD = 0; 00151a 9ea6 bcf 0xa6, 0x7, 0 BCF _EECON1bits, 7 ; .line 412; ./picLib3.c EECON1bits.CFGS = 0; 00151c 9ca6 bcf 0xa6, 0x6, 0 BCF _EECON1bits, 6 ; .line 413; ./picLib3.c EECON1bits.WREN = 1; // Enable writes to data EEPROM 00151e 84a6 bsf 0xa6, 0x2, 0 BSF _EECON1bits, 2 ; .line 414; ./picLib3.c INTCONbits.GIE = 0; // Disable interrupts 001520 9ef2 bcf 0xf2, 0x7, 0 BCF _INTCONbits, 7 ; .line 416; ./picLib3.c EEDATA = value; 001522 c001 movff 0x1, 0xfa8 MOVFF r0x01, _EEDATA 001524 ffa8 ; .line 417; ./picLib3.c EEADR = address; 001526 c000 movff 0, 0xfa9 MOVFF r0x00, _EEADR 001528 ffa9 ; .line 418; ./picLib3.c EECON2 = 0x55; 00152a 0e55 movlw 0x55 MOVLW 0x55 00152c 6ea7 movwf 0xa7, 0 MOVWF _EECON2 ; .line 419; ./picLib3.c EECON2 = 0x0AA; 00152e 0eaa movlw 0xaa MOVLW 0xaa 001530 6ea7 movwf 0xa7, 0 MOVWF _EECON2 ; .line 420; ./picLib3.c EECON1bits.WR = 1; // Start writing 001532 82a6 bsf 0xa6, 0x1, 0 BSF _EECON1bits, 1 _00382_DS_: ; .line 421; ./picLib3.c while(EECON1bits.WR); 001534 b2a6 btfsc 0xa6, 0x1, 0 BTFSC _EECON1bits, 1 001536 d7fe bra 0x1534 BRA _00382_DS_ ; .line 427; ./picLib3.c EECON1bits.WREN = 0; 001538 94a6 bcf 0xa6, 0x2, 0 BCF _EECON1bits, 2 ; .line 428; ./picLib3.c INTCONbits.GIE = 1; // enable interrupts 00153a 8ef2 bsf 0xf2, 0x7, 0 BSF _INTCONbits, 7 00153c cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 00153e f001 001540 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 001542 f000 001544 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 001546 ffd9 001548 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__eepromRead8 code _eepromRead8: ; .line 401; ./picLib3.c UInt8 eepromRead8(UInt8 address){ 00158e cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 001590 ffe5 001592 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 001594 ffd9 001596 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 001598 ffe5 00159a 0e02 movlw 0x2 MOVLW 0x02 00159c cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 00159e f000 ; .line 402; ./picLib3.c EECON1bits.CFGS = 0; 0015a0 9ca6 bcf 0xa6, 0x6, 0 BCF _EECON1bits, 6 ; .line 403; ./picLib3.c EECON1bits.EEPGD = 0; 0015a2 9ea6 bcf 0xa6, 0x7, 0 BCF _EECON1bits, 7 ; .line 404; ./picLib3.c EEADR = address; 0015a4 c000 movff 0, 0xfa9 MOVFF r0x00, _EEADR 0015a6 ffa9 ; .line 405; ./picLib3.c EECON1bits.RD = 1; 0015a8 80a6 bsf 0xa6, 0, 0 BSF _EECON1bits, 0 ; .line 406; ./picLib3.c return EEDATA; 0015aa 50a8 movf 0xa8, 0, 0 MOVF _EEDATA, W 0015ac cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0015ae f000 0015b0 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 0015b2 ffd9 0015b4 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__usartWrite code _usartWrite: ; .line 389; ./picLib3.c void usartWrite(char* buffer, UInt8 len){ 000eec cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 000eee ffe5 000ef0 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000ef2 ffd9 000ef4 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000ef6 ffe5 000ef8 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000efa ffe5 000efc c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000efe ffe5 000f00 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000f02 ffe5 000f04 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000f06 ffe5 000f08 c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 000f0a ffe5 000f0c 0e02 movlw 0x2 MOVLW 0x02 000f0e cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000f10 f000 000f12 0e03 movlw 0x3 MOVLW 0x03 000f14 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 000f16 f001 000f18 0e04 movlw 0x4 MOVLW 0x04 000f1a cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 000f1c f002 000f1e 0e05 movlw 0x5 MOVLW 0x05 000f20 cfdb movff 0xfdb, 0x3 MOVFF PLUSW2, r0x03 000f22 f003 ; .line 392; ./picLib3.c for(i = 0; i < len; i++){ 000f24 6a04 clrf 0x4, 0 CLRF r0x04 _00363_DS_: 000f26 5003 movf 0x3, 0, 0 MOVF r0x03, W 000f28 5c04 subwf 0x4, 0, 0 SUBWF r0x04, W 000f2a e214 bc 0xf54 BC _00367_DS_ ; .line 393; ./picLib3.c usartPutc(*buffer++); 000f2c c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 000f2e ffe9 000f30 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 000f32 fff3 000f34 5002 movf 0x2, 0, 0 MOVF r0x02, W 000f36 ec00 call 0x1600, 0 CALL __gptrget1 000f38 f00b 000f3a 6e05 movwf 0x5, 0 MOVWF r0x05 000f3c 2a00 incf 0, 0x1, 0 INCF r0x00, F 000f3e b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000f40 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 000f42 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000f44 2a02 incf 0x2, 0x1, 0 INCF r0x02, F 000f46 5005 movf 0x5, 0, 0 MOVF r0x05, W 000f48 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000f4a ecee call 0x15dc, 0 CALL _usartPutc 000f4c f00a 000f4e 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 392; ./picLib3.c for(i = 0; i < len; i++){ 000f50 2a04 incf 0x4, 0x1, 0 INCF r0x04, F 000f52 d7e9 bra 0xf26 BRA _00363_DS_ _00367_DS_: 000f54 cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 000f56 f005 000f58 cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 000f5a f004 000f5c cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 000f5e f003 000f60 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000f62 f002 000f64 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 000f66 f001 000f68 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 000f6a f000 000f6c cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000f6e ffd9 000f70 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__usartPuts code _usartPuts: ; .line 356; ./picLib3.c void usartPuts(char* p){ 0010d4 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 0010d6 ffe5 0010d8 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 0010da ffd9 0010dc c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0010de ffe5 0010e0 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 0010e2 ffe5 0010e4 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 0010e6 ffe5 0010e8 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 0010ea ffe5 0010ec 0e02 movlw 0x2 MOVLW 0x02 0010ee cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 0010f0 f000 0010f2 0e03 movlw 0x3 MOVLW 0x03 0010f4 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 0010f6 f001 0010f8 0e04 movlw 0x4 MOVLW 0x04 0010fa cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 0010fc f002 _00355_DS_: ; .line 357; ./picLib3.c while(*p){ 0010fe c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 001100 ffe9 001102 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 001104 fff3 001106 5002 movf 0x2, 0, 0 MOVF r0x02, W 001108 ec00 call 0x1600, 0 CALL __gptrget1 00110a f00b 00110c 6e03 movwf 0x3, 0 MOVWF r0x03 00110e 5003 movf 0x3, 0, 0 MOVF r0x03, W 001110 e010 bz 0x1132 BZ _00358_DS_ _00352_DS_: ; .line 358; ./picLib3.c while(!TXSTAbits.TRMT); 001112 a2ac btfss 0xac, 0x1, 0 BTFSS _TXSTAbits, 1 001114 d7fe bra 0x1112 BRA _00352_DS_ ; .line 359; ./picLib3.c TXREG = *p++; 001116 c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 001118 ffe9 00111a c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 00111c fff3 00111e 5002 movf 0x2, 0, 0 MOVF r0x02, W 001120 ec00 call 0x1600, 0 CALL __gptrget1 001122 f00b 001124 6ead movwf 0xad, 0 MOVWF _TXREG 001126 2a00 incf 0, 0x1, 0 INCF r0x00, F 001128 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00112a 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 00112c b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00112e 2a02 incf 0x2, 0x1, 0 INCF r0x02, F 001130 d7e6 bra 0x10fe BRA _00355_DS_ _00358_DS_: 001132 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 001134 f003 001136 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 001138 f002 00113a cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 00113c f001 00113e cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 001140 f000 001142 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 001144 ffd9 001146 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__usartPutc code _usartPutc: ; .line 351; ./picLib3.c void usartPutc(UInt8 c){ 0015dc cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 0015de ffe5 0015e0 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 0015e2 ffd9 0015e4 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0015e6 ffe5 0015e8 0e02 movlw 0x2 MOVLW 0x02 0015ea cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 0015ec f000 _00344_DS_: ; .line 352; ./picLib3.c while(!TXSTAbits.TRMT); 0015ee a2ac btfss 0xac, 0x1, 0 BTFSS _TXSTAbits, 1 0015f0 d7fe bra 0x15ee BRA _00344_DS_ ; .line 353; ./picLib3.c TXREG = c; 0015f2 c000 movff 0, 0xfad MOVFF r0x00, _TXREG 0015f4 ffad 0015f6 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0015f8 f000 0015fa cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 0015fc ffd9 0015fe 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__usartGetc code _usartGetc: _00336_DS_: ; .line 347; ./picLib3.c while(PIR1bits.RCIF == 0); 00173a aa9e btfss 0x9e, 0x5, 0 BTFSS _PIR1bits, 5 00173c d7fe bra 0x173a BRA _00336_DS_ ; .line 348; ./picLib3.c return RCREG; 00173e 50ae movf 0xae, 0, 0 MOVF _RCREG, W 001740 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__usartRxRdy code _usartRxRdy: ; .line 342; ./picLib3.c unsigned char usartRxRdy(void){ 0016c2 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0016c4 ffe5 ; .line 343; ./picLib3.c return PIR1bits.RCIF; 0016c6 6a00 clrf 0, 0 CLRF r0x00 0016c8 ba9e btfsc 0x9e, 0x5, 0 BTFSC _PIR1bits, 5 0016ca 2a00 incf 0, 0x1, 0 INCF r0x00, F 0016cc 5000 movf 0, 0, 0 MOVF r0x00, W 0016ce cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0016d0 f000 0016d2 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__usartInit code _usartInit: ; .line 329; ./picLib3.c TXSTA = 0x20; 001642 0e20 movlw 0x20 MOVLW 0x20 001644 6eac movwf 0xac, 0 MOVWF _TXSTA ; .line 330; ./picLib3.c RCSTA = 0x90; 001646 0e90 movlw 0x90 MOVLW 0x90 001648 6eab movwf 0xab, 0 MOVWF _RCSTA ; .line 336; ./picLib3.c SPBRG = 12; // 4800 Baud 4MHz Clock 00164a 0e0c movlw 0xc MOVLW 0x0c 00164c 6eaf movwf 0xaf, 0 MOVWF _SPBRG ; .line 339; ./picLib3.c delayMs(1); 00164e 0e00 movlw 0 MOVLW 0x00 001650 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 001652 0e01 movlw 0x1 MOVLW 0x01 001654 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 001656 ec23 call 0x1446, 0 CALL _delayMs 001658 f00a 00165a 0e02 movlw 0x2 MOVLW 0x02 00165c 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 00165e 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__strWordDec code _strWordDec: ; .line 297; ./picLib3.c void strWordDec(char* str, UInt8 decPlace, UInt16 v){ 00002a cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 00002c ffe5 00002e cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000030 ffd9 000032 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000034 ffe5 000036 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000038 ffe5 00003a c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 00003c ffe5 00003e c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000040 ffe5 000042 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000044 ffe5 000046 c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 000048 ffe5 00004a c006 movff 0x6, 0xfe5 MOVFF r0x06, POSTDEC1 00004c ffe5 00004e c007 movff 0x7, 0xfe5 MOVFF r0x07, POSTDEC1 000050 ffe5 000052 c008 movff 0x8, 0xfe5 MOVFF r0x08, POSTDEC1 000054 ffe5 000056 c009 movff 0x9, 0xfe5 MOVFF r0x09, POSTDEC1 000058 ffe5 00005a c00a movff 0xa, 0xfe5 MOVFF r0x0a, POSTDEC1 00005c ffe5 00005e 0e02 movlw 0x2 MOVLW 0x02 000060 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000062 f000 000064 0e03 movlw 0x3 MOVLW 0x03 000066 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 000068 f001 00006a 0e04 movlw 0x4 MOVLW 0x04 00006c cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 00006e f002 000070 0e05 movlw 0x5 MOVLW 0x05 000072 cfdb movff 0xfdb, 0x3 MOVFF PLUSW2, r0x03 000074 f003 000076 0e06 movlw 0x6 MOVLW 0x06 000078 cfdb movff 0xfdb, 0x4 MOVFF PLUSW2, r0x04 00007a f004 00007c 0e07 movlw 0x7 MOVLW 0x07 00007e cfdb movff 0xfdb, 0x5 MOVFF PLUSW2, r0x05 000080 f005 ; .line 298; ./picLib3.c char* p = str; 000082 c000 movff 0, 0x6 MOVFF r0x00, r0x06 000084 f006 000086 c001 movff 0x1, 0x7 MOVFF r0x01, r0x07 000088 f007 00008a c002 movff 0x2, 0x8 MOVFF r0x02, r0x08 00008c f008 ; .line 300; ./picLib3.c if(decPlace) 00008e 5003 movf 0x3, 0, 0 MOVF r0x03, W 000090 e003 bz 0x98 BZ _00289_DS_ ; .line 301; ./picLib3.c decPlace = 5 - decPlace; 000092 5003 movf 0x3, 0, 0 MOVF r0x03, W 000094 0805 sublw 0x5 SUBLW 0x05 000096 6e03 movwf 0x3, 0 MOVWF r0x03 _00289_DS_: ; .line 303; ./picLib3.c *p++ = (v / 10000) + '0'; 000098 0e27 movlw 0x27 MOVLW 0x27 00009a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00009c 0e10 movlw 0x10 MOVLW 0x10 00009e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0000a0 5005 movf 0x5, 0, 0 MOVF r0x05, W 0000a2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0000a4 5004 movf 0x4, 0, 0 MOVF r0x04, W 0000a6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0000a8 ec31 call 0xc62, 0 CALL __divuint 0000aa f006 0000ac 6e09 movwf 0x9, 0 MOVWF r0x09 0000ae cff3 movff 0xff3, 0xa MOVFF PRODL, r0x0a 0000b0 f00a 0000b2 0e04 movlw 0x4 MOVLW 0x04 0000b4 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 0000b6 0e30 movlw 0x30 MOVLW 0x30 0000b8 2609 addwf 0x9, 0x1, 0 ADDWF r0x09, F 0000ba c009 movff 0x9, 0xfe5 MOVFF r0x09, POSTDEC1 0000bc ffe5 0000be c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 0000c0 ffe9 0000c2 c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 0000c4 fff3 0000c6 5008 movf 0x8, 0, 0 MOVF r0x08, W 0000c8 ec57 call 0x16ae, 0 CALL __gptrput1 0000ca f00b 0000cc 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 0000ce b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0000d0 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 0000d2 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0000d4 2a08 incf 0x8, 0x1, 0 INCF r0x08, F ; .line 304; ./picLib3.c if(!--decPlace) *p++ = '.'; 0000d6 0603 decf 0x3, 0x1, 0 DECF r0x03, F 0000d8 5003 movf 0x3, 0, 0 MOVF r0x03, W 0000da e10e bnz 0xf8 BNZ _00291_DS_ 0000dc 0e2e movlw 0x2e MOVLW 0x2e 0000de 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0000e0 c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 0000e2 ffe9 0000e4 c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 0000e6 fff3 0000e8 5008 movf 0x8, 0, 0 MOVF r0x08, W 0000ea ec57 call 0x16ae, 0 CALL __gptrput1 0000ec f00b 0000ee 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 0000f0 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0000f2 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 0000f4 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0000f6 2a08 incf 0x8, 0x1, 0 INCF r0x08, F _00291_DS_: ; .line 305; ./picLib3.c v = v % 10000; 0000f8 0e27 movlw 0x27 MOVLW 0x27 0000fa 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0000fc 0e10 movlw 0x10 MOVLW 0x10 0000fe 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000100 5005 movf 0x5, 0, 0 MOVF r0x05, W 000102 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000104 5004 movf 0x4, 0, 0 MOVF r0x04, W 000106 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000108 ecd5 call 0xbaa, 0 CALL __moduint 00010a f005 00010c 6e04 movwf 0x4, 0 MOVWF r0x04 00010e cff3 movff 0xff3, 0x5 MOVFF PRODL, r0x05 000110 f005 000112 0e04 movlw 0x4 MOVLW 0x04 000114 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 306; ./picLib3.c *p++ = (v / 1000) + '0'; 000116 0e03 movlw 0x3 MOVLW 0x03 000118 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00011a 0ee8 movlw 0xe8 MOVLW 0xe8 00011c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00011e 5005 movf 0x5, 0, 0 MOVF r0x05, W 000120 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000122 5004 movf 0x4, 0, 0 MOVF r0x04, W 000124 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000126 ec31 call 0xc62, 0 CALL __divuint 000128 f006 00012a 6e09 movwf 0x9, 0 MOVWF r0x09 00012c cff3 movff 0xff3, 0xa MOVFF PRODL, r0x0a 00012e f00a 000130 0e04 movlw 0x4 MOVLW 0x04 000132 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 000134 0e30 movlw 0x30 MOVLW 0x30 000136 2609 addwf 0x9, 0x1, 0 ADDWF r0x09, F 000138 c009 movff 0x9, 0xfe5 MOVFF r0x09, POSTDEC1 00013a ffe5 00013c c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 00013e ffe9 000140 c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 000142 fff3 000144 5008 movf 0x8, 0, 0 MOVF r0x08, W 000146 ec57 call 0x16ae, 0 CALL __gptrput1 000148 f00b 00014a 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 00014c b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00014e 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 000150 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000152 2a08 incf 0x8, 0x1, 0 INCF r0x08, F ; .line 307; ./picLib3.c if(!--decPlace) *p++ = '.'; 000154 0603 decf 0x3, 0x1, 0 DECF r0x03, F 000156 5003 movf 0x3, 0, 0 MOVF r0x03, W 000158 e10e bnz 0x176 BNZ _00293_DS_ 00015a 0e2e movlw 0x2e MOVLW 0x2e 00015c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00015e c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 000160 ffe9 000162 c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 000164 fff3 000166 5008 movf 0x8, 0, 0 MOVF r0x08, W 000168 ec57 call 0x16ae, 0 CALL __gptrput1 00016a f00b 00016c 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 00016e b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000170 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 000172 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000174 2a08 incf 0x8, 0x1, 0 INCF r0x08, F _00293_DS_: ; .line 308; ./picLib3.c v = v % 1000; 000176 0e03 movlw 0x3 MOVLW 0x03 000178 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00017a 0ee8 movlw 0xe8 MOVLW 0xe8 00017c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00017e 5005 movf 0x5, 0, 0 MOVF r0x05, W 000180 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000182 5004 movf 0x4, 0, 0 MOVF r0x04, W 000184 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000186 ecd5 call 0xbaa, 0 CALL __moduint 000188 f005 00018a 6e04 movwf 0x4, 0 MOVWF r0x04 00018c cff3 movff 0xff3, 0x5 MOVFF PRODL, r0x05 00018e f005 000190 0e04 movlw 0x4 MOVLW 0x04 000192 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 309; ./picLib3.c *p++ = (v / 100) + '0'; 000194 0e00 movlw 0 MOVLW 0x00 000196 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000198 0e64 movlw 0x64 MOVLW 0x64 00019a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00019c 5005 movf 0x5, 0, 0 MOVF r0x05, W 00019e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0001a0 5004 movf 0x4, 0, 0 MOVF r0x04, W 0001a2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0001a4 ec31 call 0xc62, 0 CALL __divuint 0001a6 f006 0001a8 6e09 movwf 0x9, 0 MOVWF r0x09 0001aa cff3 movff 0xff3, 0xa MOVFF PRODL, r0x0a 0001ac f00a 0001ae 0e04 movlw 0x4 MOVLW 0x04 0001b0 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 0001b2 0e30 movlw 0x30 MOVLW 0x30 0001b4 2609 addwf 0x9, 0x1, 0 ADDWF r0x09, F 0001b6 c009 movff 0x9, 0xfe5 MOVFF r0x09, POSTDEC1 0001b8 ffe5 0001ba c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 0001bc ffe9 0001be c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 0001c0 fff3 0001c2 5008 movf 0x8, 0, 0 MOVF r0x08, W 0001c4 ec57 call 0x16ae, 0 CALL __gptrput1 0001c6 f00b 0001c8 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 0001ca b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0001cc 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 0001ce b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0001d0 2a08 incf 0x8, 0x1, 0 INCF r0x08, F ; .line 310; ./picLib3.c if(!--decPlace) *p++ = '.'; 0001d2 0603 decf 0x3, 0x1, 0 DECF r0x03, F 0001d4 5003 movf 0x3, 0, 0 MOVF r0x03, W 0001d6 e10e bnz 0x1f4 BNZ _00295_DS_ 0001d8 0e2e movlw 0x2e MOVLW 0x2e 0001da 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0001dc c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 0001de ffe9 0001e0 c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 0001e2 fff3 0001e4 5008 movf 0x8, 0, 0 MOVF r0x08, W 0001e6 ec57 call 0x16ae, 0 CALL __gptrput1 0001e8 f00b 0001ea 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 0001ec b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0001ee 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 0001f0 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0001f2 2a08 incf 0x8, 0x1, 0 INCF r0x08, F _00295_DS_: ; .line 311; ./picLib3.c v = v % 100; 0001f4 0e00 movlw 0 MOVLW 0x00 0001f6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0001f8 0e64 movlw 0x64 MOVLW 0x64 0001fa 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0001fc 5005 movf 0x5, 0, 0 MOVF r0x05, W 0001fe 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000200 5004 movf 0x4, 0, 0 MOVF r0x04, W 000202 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000204 ecd5 call 0xbaa, 0 CALL __moduint 000206 f005 000208 6e04 movwf 0x4, 0 MOVWF r0x04 00020a cff3 movff 0xff3, 0x5 MOVFF PRODL, r0x05 00020c f005 00020e 0e04 movlw 0x4 MOVLW 0x04 000210 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 312; ./picLib3.c *p++ = (v / 10) + '0'; 000212 0e00 movlw 0 MOVLW 0x00 000214 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000216 0e0a movlw 0xa MOVLW 0x0a 000218 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00021a 5005 movf 0x5, 0, 0 MOVF r0x05, W 00021c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00021e 5004 movf 0x4, 0, 0 MOVF r0x04, W 000220 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000222 ec31 call 0xc62, 0 CALL __divuint 000224 f006 000226 6e09 movwf 0x9, 0 MOVWF r0x09 000228 cff3 movff 0xff3, 0xa MOVFF PRODL, r0x0a 00022a f00a 00022c 0e04 movlw 0x4 MOVLW 0x04 00022e 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 000230 0e30 movlw 0x30 MOVLW 0x30 000232 2609 addwf 0x9, 0x1, 0 ADDWF r0x09, F 000234 c009 movff 0x9, 0xfe5 MOVFF r0x09, POSTDEC1 000236 ffe5 000238 c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 00023a ffe9 00023c c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 00023e fff3 000240 5008 movf 0x8, 0, 0 MOVF r0x08, W 000242 ec57 call 0x16ae, 0 CALL __gptrput1 000244 f00b 000246 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 000248 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00024a 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 00024c b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00024e 2a08 incf 0x8, 0x1, 0 INCF r0x08, F ; .line 313; ./picLib3.c if(!--decPlace) *p++ = '.'; 000250 0603 decf 0x3, 0x1, 0 DECF r0x03, F 000252 5003 movf 0x3, 0, 0 MOVF r0x03, W 000254 e10e bnz 0x272 BNZ _00297_DS_ 000256 0e2e movlw 0x2e MOVLW 0x2e 000258 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00025a c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 00025c ffe9 00025e c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 000260 fff3 000262 5008 movf 0x8, 0, 0 MOVF r0x08, W 000264 ec57 call 0x16ae, 0 CALL __gptrput1 000266 f00b 000268 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 00026a b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00026c 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 00026e b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000270 2a08 incf 0x8, 0x1, 0 INCF r0x08, F _00297_DS_: ; .line 314; ./picLib3.c v = v % 10; 000272 0e00 movlw 0 MOVLW 0x00 000274 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000276 0e0a movlw 0xa MOVLW 0x0a 000278 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00027a 5005 movf 0x5, 0, 0 MOVF r0x05, W 00027c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00027e 5004 movf 0x4, 0, 0 MOVF r0x04, W 000280 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000282 ecd5 call 0xbaa, 0 CALL __moduint 000284 f005 000286 6e04 movwf 0x4, 0 MOVWF r0x04 000288 cff3 movff 0xff3, 0x5 MOVFF PRODL, r0x05 00028a f005 00028c 0e04 movlw 0x4 MOVLW 0x04 00028e 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 315; ./picLib3.c *p++ = v + '0'; 000290 0e30 movlw 0x30 MOVLW 0x30 000292 2604 addwf 0x4, 0x1, 0 ADDWF r0x04, F 000294 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000296 ffe5 000298 c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 00029a ffe9 00029c c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 00029e fff3 0002a0 5008 movf 0x8, 0, 0 MOVF r0x08, W 0002a2 ec57 call 0x16ae, 0 CALL __gptrput1 0002a4 f00b 0002a6 2a06 incf 0x6, 0x1, 0 INCF r0x06, F 0002a8 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0002aa 2a07 incf 0x7, 0x1, 0 INCF r0x07, F 0002ac b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0002ae 2a08 incf 0x8, 0x1, 0 INCF r0x08, F ; .line 316; ./picLib3.c if(!--decPlace) *p++ = '.'; 0002b0 2e03 decfsz 0x3, 0x1, 0 DECFSZ r0x03, F 0002b2 d009 bra 0x2c6 BRA _00315_DS_ 0002b4 0e2e movlw 0x2e MOVLW 0x2e 0002b6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0002b8 c006 movff 0x6, 0xfe9 MOVFF r0x06, FSR0L 0002ba ffe9 0002bc c007 movff 0x7, 0xff3 MOVFF r0x07, PRODL 0002be fff3 0002c0 5008 movf 0x8, 0, 0 MOVF r0x08, W 0002c2 ec57 call 0x16ae, 0 CALL __gptrput1 0002c4 f00b _00315_DS_: ; .line 319; ./picLib3.c for(p = str; (p < str + 4) && (*p == '0'); p++) 0002c6 5000 movf 0, 0, 0 MOVF r0x00, W 0002c8 0f04 addlw 0x4 ADDLW 0x04 0002ca 6e03 movwf 0x3, 0 MOVWF r0x03 0002cc 0e00 movlw 0 MOVLW 0x00 0002ce 2001 addwfc 0x1, 0, 0 ADDWFC r0x01, W 0002d0 6e04 movwf 0x4, 0 MOVWF r0x04 0002d2 0e00 movlw 0 MOVLW 0x00 0002d4 2002 addwfc 0x2, 0, 0 ADDWFC r0x02, W 0002d6 6e05 movwf 0x5, 0 MOVWF r0x05 _00301_DS_: 0002d8 5002 movf 0x2, 0, 0 MOVF r0x02, W 0002da 0f80 addlw 0x80 ADDLW 0x80 0002dc 6ef3 movwf 0xf3, 0 MOVWF PRODL 0002de 5005 movf 0x5, 0, 0 MOVF r0x05, W 0002e0 0f80 addlw 0x80 ADDLW 0x80 0002e2 5cf3 subwf 0xf3, 0, 0 SUBWF PRODL, W 0002e4 e105 bnz 0x2f0 BNZ _00319_DS_ 0002e6 5004 movf 0x4, 0, 0 MOVF r0x04, W 0002e8 5c01 subwf 0x1, 0, 0 SUBWF r0x01, W 0002ea e102 bnz 0x2f0 BNZ _00319_DS_ 0002ec 5003 movf 0x3, 0, 0 MOVF r0x03, W 0002ee 5c00 subwf 0, 0, 0 SUBWF r0x00, W _00319_DS_: 0002f0 e219 bc 0x324 BC _00305_DS_ 0002f2 c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 0002f4 ffe9 0002f6 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 0002f8 fff3 0002fa 5002 movf 0x2, 0, 0 MOVF r0x02, W 0002fc ec00 call 0x1600, 0 CALL __gptrget1 0002fe f00b ; # MOVWF r0x06 ; # MOVF r0x06, W 000300 6e06 movwf 0x6, 0 MOVWF r0x06 000302 0a30 xorlw 0x30 XORLW 0x30 000304 e10f bnz 0x324 BNZ _00305_DS_ ; .line 320; ./picLib3.c *p = ' '; 000306 0e20 movlw 0x20 MOVLW 0x20 000308 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00030a c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 00030c ffe9 00030e c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 000310 fff3 000312 5002 movf 0x2, 0, 0 MOVF r0x02, W 000314 ec57 call 0x16ae, 0 CALL __gptrput1 000316 f00b ; .line 319; ./picLib3.c for(p = str; (p < str + 4) && (*p == '0'); p++) 000318 2a00 incf 0, 0x1, 0 INCF r0x00, F 00031a b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00031c 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 00031e b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000320 2a02 incf 0x2, 0x1, 0 INCF r0x02, F 000322 d7da bra 0x2d8 BRA _00301_DS_ _00305_DS_: 000324 cfe4 movff 0xfe4, 0xa MOVFF PREINC1, r0x0a 000326 f00a 000328 cfe4 movff 0xfe4, 0x9 MOVFF PREINC1, r0x09 00032a f009 00032c cfe4 movff 0xfe4, 0x8 MOVFF PREINC1, r0x08 00032e f008 000330 cfe4 movff 0xfe4, 0x7 MOVFF PREINC1, r0x07 000332 f007 000334 cfe4 movff 0xfe4, 0x6 MOVFF PREINC1, r0x06 000336 f006 000338 cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 00033a f005 00033c cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 00033e f004 000340 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 000342 f003 000344 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000346 f002 000348 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 00034a f001 00034c cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 00034e f000 000350 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000352 ffd9 000354 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__strByte code _strByte: ; .line 283; ./picLib3.c void strByte(char* str, UInt8 v){ 000530 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 000532 ffe5 000534 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000536 ffd9 000538 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 00053a ffe5 00053c c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 00053e ffe5 000540 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000542 ffe5 000544 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000546 ffe5 000548 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 00054a ffe5 00054c c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 00054e ffe5 000550 c006 movff 0x6, 0xfe5 MOVFF r0x06, POSTDEC1 000552 ffe5 000554 c007 movff 0x7, 0xfe5 MOVFF r0x07, POSTDEC1 000556 ffe5 000558 0e02 movlw 0x2 MOVLW 0x02 00055a cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 00055c f000 00055e 0e03 movlw 0x3 MOVLW 0x03 000560 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 000562 f001 000564 0e04 movlw 0x4 MOVLW 0x04 000566 cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 000568 f002 00056a 0e05 movlw 0x5 MOVLW 0x05 00056c cfdb movff 0xfdb, 0x3 MOVFF PLUSW2, r0x03 00056e f003 ; .line 286; ./picLib3.c *p++ = (v / 100) + '0'; 000570 0e64 movlw 0x64 MOVLW 0x64 000572 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000574 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000576 ffe5 000578 ec4e call 0x129c, 0 CALL __divuchar 00057a f009 00057c 6e04 movwf 0x4, 0 MOVWF r0x04 00057e 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W 000580 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W 000582 0e30 movlw 0x30 MOVLW 0x30 000584 2604 addwf 0x4, 0x1, 0 ADDWF r0x04, F 000586 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000588 ffe5 00058a c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 00058c ffe9 00058e c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 000590 fff3 000592 5002 movf 0x2, 0, 0 MOVF r0x02, W 000594 ec57 call 0x16ae, 0 CALL __gptrput1 000596 f00b 000598 5000 movf 0, 0, 0 MOVF r0x00, W 00059a 0f01 addlw 0x1 ADDLW 0x01 00059c 6e04 movwf 0x4, 0 MOVWF r0x04 00059e 0e00 movlw 0 MOVLW 0x00 0005a0 2001 addwfc 0x1, 0, 0 ADDWFC r0x01, W 0005a2 6e05 movwf 0x5, 0 MOVWF r0x05 0005a4 0e00 movlw 0 MOVLW 0x00 0005a6 2002 addwfc 0x2, 0, 0 ADDWFC r0x02, W 0005a8 6e06 movwf 0x6, 0 MOVWF r0x06 ; .line 287; ./picLib3.c v = v % 100; 0005aa 0e64 movlw 0x64 MOVLW 0x64 0005ac 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0005ae c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 0005b0 ffe5 0005b2 eca4 call 0x1148, 0 CALL __moduchar 0005b4 f008 0005b6 6e03 movwf 0x3, 0 MOVWF r0x03 0005b8 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W 0005ba 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W ; .line 288; ./picLib3.c *p++ = (v / 10) + '0'; 0005bc 0e0a movlw 0xa MOVLW 0x0a 0005be 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0005c0 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 0005c2 ffe5 0005c4 ec4e call 0x129c, 0 CALL __divuchar 0005c6 f009 0005c8 6e07 movwf 0x7, 0 MOVWF r0x07 0005ca 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W 0005cc 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W 0005ce 0e30 movlw 0x30 MOVLW 0x30 0005d0 2607 addwf 0x7, 0x1, 0 ADDWF r0x07, F 0005d2 c007 movff 0x7, 0xfe5 MOVFF r0x07, POSTDEC1 0005d4 ffe5 0005d6 c004 movff 0x4, 0xfe9 MOVFF r0x04, FSR0L 0005d8 ffe9 0005da c005 movff 0x5, 0xff3 MOVFF r0x05, PRODL 0005dc fff3 0005de 5006 movf 0x6, 0, 0 MOVF r0x06, W 0005e0 ec57 call 0x16ae, 0 CALL __gptrput1 0005e2 f00b 0005e4 2a04 incf 0x4, 0x1, 0 INCF r0x04, F 0005e6 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0005e8 2a05 incf 0x5, 0x1, 0 INCF r0x05, F 0005ea b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0005ec 2a06 incf 0x6, 0x1, 0 INCF r0x06, F ; .line 289; ./picLib3.c v = v % 10; 0005ee 0e0a movlw 0xa MOVLW 0x0a 0005f0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0005f2 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 0005f4 ffe5 0005f6 eca4 call 0x1148, 0 CALL __moduchar 0005f8 f008 0005fa 6e03 movwf 0x3, 0 MOVWF r0x03 0005fc 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W 0005fe 50e4 movf 0xe4, 0, 0 MOVF PREINC1, W ; .line 290; ./picLib3.c *p++ = v + '0'; 000600 0e30 movlw 0x30 MOVLW 0x30 000602 2603 addwf 0x3, 0x1, 0 ADDWF r0x03, F 000604 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000606 ffe5 000608 c004 movff 0x4, 0xfe9 MOVFF r0x04, FSR0L 00060a ffe9 00060c c005 movff 0x5, 0xff3 MOVFF r0x05, PRODL 00060e fff3 000610 5006 movf 0x6, 0, 0 MOVF r0x06, W 000612 ec57 call 0x16ae, 0 CALL __gptrput1 000614 f00b ; .line 293; ./picLib3.c for(p = str; (p < str + 2) && (*p == '0'); p++) 000616 5000 movf 0, 0, 0 MOVF r0x00, W 000618 0f02 addlw 0x2 ADDLW 0x02 00061a 6e03 movwf 0x3, 0 MOVWF r0x03 00061c 0e00 movlw 0 MOVLW 0x00 00061e 2001 addwfc 0x1, 0, 0 ADDWFC r0x01, W 000620 6e04 movwf 0x4, 0 MOVWF r0x04 000622 0e00 movlw 0 MOVLW 0x00 000624 2002 addwfc 0x2, 0, 0 ADDWFC r0x02, W 000626 6e05 movwf 0x5, 0 MOVWF r0x05 _00271_DS_: 000628 5002 movf 0x2, 0, 0 MOVF r0x02, W 00062a 0f80 addlw 0x80 ADDLW 0x80 00062c 6ef3 movwf 0xf3, 0 MOVWF PRODL 00062e 5005 movf 0x5, 0, 0 MOVF r0x05, W 000630 0f80 addlw 0x80 ADDLW 0x80 000632 5cf3 subwf 0xf3, 0, 0 SUBWF PRODL, W 000634 e105 bnz 0x640 BNZ _00281_DS_ 000636 5004 movf 0x4, 0, 0 MOVF r0x04, W 000638 5c01 subwf 0x1, 0, 0 SUBWF r0x01, W 00063a e102 bnz 0x640 BNZ _00281_DS_ 00063c 5003 movf 0x3, 0, 0 MOVF r0x03, W 00063e 5c00 subwf 0, 0, 0 SUBWF r0x00, W _00281_DS_: 000640 e219 bc 0x674 BC _00275_DS_ 000642 c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 000644 ffe9 000646 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 000648 fff3 00064a 5002 movf 0x2, 0, 0 MOVF r0x02, W 00064c ec00 call 0x1600, 0 CALL __gptrget1 00064e f00b ; # MOVWF r0x06 ; # MOVF r0x06, W 000650 6e06 movwf 0x6, 0 MOVWF r0x06 000652 0a30 xorlw 0x30 XORLW 0x30 000654 e10f bnz 0x674 BNZ _00275_DS_ ; .line 294; ./picLib3.c *p = ' '; 000656 0e20 movlw 0x20 MOVLW 0x20 000658 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00065a c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 00065c ffe9 00065e c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 000660 fff3 000662 5002 movf 0x2, 0, 0 MOVF r0x02, W 000664 ec57 call 0x16ae, 0 CALL __gptrput1 000666 f00b ; .line 293; ./picLib3.c for(p = str; (p < str + 2) && (*p == '0'); p++) 000668 2a00 incf 0, 0x1, 0 INCF r0x00, F 00066a b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00066c 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 00066e b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000670 2a02 incf 0x2, 0x1, 0 INCF r0x02, F 000672 d7da bra 0x628 BRA _00271_DS_ _00275_DS_: 000674 cfe4 movff 0xfe4, 0x7 MOVFF PREINC1, r0x07 000676 f007 000678 cfe4 movff 0xfe4, 0x6 MOVFF PREINC1, r0x06 00067a f006 00067c cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 00067e f005 000680 cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 000682 f004 000684 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 000686 f003 000688 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 00068a f002 00068c cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 00068e f001 000690 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 000692 f000 000694 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000696 ffd9 000698 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__lcdPutHexByte code _lcdPutHexByte: ; .line 260; ./picLib3.c void lcdPutHexByte(UInt8 v){ 000d0c cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 000d0e ffe5 000d10 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000d12 ffd9 000d14 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000d16 ffe5 000d18 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000d1a ffe5 000d1c c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000d1e ffe5 000d20 0e02 movlw 0x2 MOVLW 0x02 000d22 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000d24 f000 ; .line 264; ./picLib3.c c = v / 16; 000d26 3800 swapf 0, 0, 0 SWAPF r0x00, W 000d28 0b0f andlw 0xf ANDLW 0x0f 000d2a 6e01 movwf 0x1, 0 MOVWF r0x01 ; .line 265; ./picLib3.c c += '0'; 000d2c 0e30 movlw 0x30 MOVLW 0x30 000d2e 2601 addwf 0x1, 0x1, 0 ADDWF r0x01, F ; .line 266; ./picLib3.c if(c > '9') 000d30 0e3a movlw 0x3a MOVLW 0x3a 000d32 5c01 subwf 0x1, 0, 0 SUBWF r0x01, W 000d34 e302 bnc 0xd3a BNC _00256_DS_ ; .line 267; ./picLib3.c c += 7; 000d36 0e07 movlw 0x7 MOVLW 0x07 000d38 2601 addwf 0x1, 0x1, 0 ADDWF r0x01, F _00256_DS_: ; .line 269; ./picLib3.c dat[0] = c; 000d3a 5001 movf 0x1, 0, 0 MOVF r0x01, W 000d3c 0100 movlb 0 BANKSEL _lcdPutHexByte_dat_1_1 000d3e 6f87 movwf 0x87, 0x1 MOVWF _lcdPutHexByte_dat_1_1, B ; .line 271; ./picLib3.c c = v & 0x0F; 000d40 0e0f movlw 0xf MOVLW 0x0f 000d42 1400 andwf 0, 0, 0 ANDWF r0x00, W 000d44 6e01 movwf 0x1, 0 MOVWF r0x01 ; .line 272; ./picLib3.c c += '0'; 000d46 0e30 movlw 0x30 MOVLW 0x30 000d48 2601 addwf 0x1, 0x1, 0 ADDWF r0x01, F ; .line 273; ./picLib3.c if(c > '9') 000d4a 0e3a movlw 0x3a MOVLW 0x3a 000d4c 5c01 subwf 0x1, 0, 0 SUBWF r0x01, W 000d4e e302 bnc 0xd54 BNC _00258_DS_ ; .line 274; ./picLib3.c c += 7; 000d50 0e07 movlw 0x7 MOVLW 0x07 000d52 2601 addwf 0x1, 0x1, 0 ADDWF r0x01, F _00258_DS_: ; .line 275; ./picLib3.c dat[1] = c; 000d54 5001 movf 0x1, 0, 0 MOVF r0x01, W 000d56 0100 movlb 0 BANKSEL (_lcdPutHexByte_dat_1_1 + 1) 000d58 6f88 movwf 0x88, 0x1 MOVWF (_lcdPutHexByte_dat_1_1 + 1), B ; removed redundant BANKSEL ; .line 276; ./picLib3.c dat[2] = 0xFF; 000d5a 6989 setf 0x89, 0x1 SETF (_lcdPutHexByte_dat_1_1 + 2), B ; .line 278; ./picLib3.c i2cWrite(0xC6, 0, I2cSlow8, dat, 3); 000d5c 0e00 movlw 0 MOVLW HIGH(_lcdPutHexByte_dat_1_1) 000d5e 6e01 movwf 0x1, 0 MOVWF r0x01 000d60 0e87 movlw 0x87 MOVLW LOW(_lcdPutHexByte_dat_1_1) 000d62 6e00 movwf 0, 0 MOVWF r0x00 000d64 0e80 movlw 0x80 MOVLW 0x80 000d66 6e02 movwf 0x2, 0 MOVWF r0x02 000d68 0e03 movlw 0x3 MOVLW 0x03 000d6a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d6c 5002 movf 0x2, 0, 0 MOVF r0x02, W 000d6e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d70 5001 movf 0x1, 0, 0 MOVF r0x01, W 000d72 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d74 5000 movf 0, 0, 0 MOVF r0x00, W 000d76 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d78 0e00 movlw 0 MOVLW 0x00 000d7a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d7c 0e00 movlw 0 MOVLW 0x00 000d7e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d80 0e00 movlw 0 MOVLW 0x00 000d82 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d84 0ec6 movlw 0xc6 MOVLW 0xc6 000d86 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d88 ec79 call 0x8f2, 0 CALL _i2cWrite 000d8a f004 000d8c 0e08 movlw 0x8 MOVLW 0x08 000d8e 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 279; ./picLib3.c delayMs(10); 000d90 0e00 movlw 0 MOVLW 0x00 000d92 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d94 0e0a movlw 0xa MOVLW 0x0a 000d96 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000d98 ec23 call 0x1446, 0 CALL _delayMs 000d9a f00a 000d9c 0e02 movlw 0x2 MOVLW 0x02 000d9e 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 000da0 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000da2 f002 000da4 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 000da6 f001 000da8 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 000daa f000 000dac cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000dae ffd9 000db0 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__lcdWriteStr code _lcdWriteStr: ; .line 237; ./picLib3.c void lcdWriteStr(UInt8 x, UInt8 y, char* str){ 0009f4 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 0009f6 ffe5 0009f8 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 0009fa ffd9 0009fc c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0009fe ffe5 000a00 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000a02 ffe5 000a04 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000a06 ffe5 000a08 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000a0a ffe5 000a0c c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000a0e ffe5 000a10 0e02 movlw 0x2 MOVLW 0x02 000a12 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000a14 f000 000a16 0e03 movlw 0x3 MOVLW 0x03 000a18 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 000a1a f001 000a1c 0e04 movlw 0x4 MOVLW 0x04 000a1e cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 000a20 f002 000a22 0e05 movlw 0x5 MOVLW 0x05 000a24 cfdb movff 0xfdb, 0x3 MOVFF PLUSW2, r0x03 000a26 f003 000a28 0e06 movlw 0x6 MOVLW 0x06 000a2a cfdb movff 0xfdb, 0x4 MOVFF PLUSW2, r0x04 000a2c f004 ; .line 238; ./picLib3.c i2cWaitForIdle(); 000a2e ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 000a30 f00a ; .line 240; ./picLib3.c SSPADD = 0x09; // Set the baud rate to 100KHz at 4MHz CLK 000a32 0e09 movlw 0x9 MOVLW 0x09 000a34 6ec8 movwf 0xc8, 0 MOVWF _SSPADD ; .line 242; ./picLib3.c i2cStart(); 000a36 ec92 call 0x1724, 0 CALL _i2cStart 000a38 f00b ; .line 244; ./picLib3.c i2cPutByte(0xC6); 000a3a 0ec6 movlw 0xc6 MOVLW 0xc6 000a3c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000a3e ec3f call 0x167e, 0 CALL _i2cPutByte 000a40 f00b 000a42 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 245; ./picLib3.c i2cPutByte(0x00); 000a44 0e00 movlw 0 MOVLW 0x00 000a46 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000a48 ec3f call 0x167e, 0 CALL _i2cPutByte 000a4a f00b 000a4c 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 246; ./picLib3.c i2cPutByte(0xFE); 000a4e 0efe movlw 0xfe MOVLW 0xfe 000a50 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000a52 ec3f call 0x167e, 0 CALL _i2cPutByte 000a54 f00b 000a56 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; ;multiply lit val:0x40 by variable r0x01 and store in r0x01 ; ;Unrolled 8 X 8 multiplication ; ;FIXME: the function does not support result==WREG ; .line 247; ./picLib3.c i2cPutByte(128 + (y * 64) + x); 000a58 5001 movf 0x1, 0, 0 MOVF r0x01, W 000a5a 0d40 mullw 0x40 MULLW 0x40 000a5c cff3 movff 0xff3, 0x1 MOVFF PRODL, r0x01 000a5e f001 000a60 0e80 movlw 0x80 MOVLW 0x80 000a62 2601 addwf 0x1, 0x1, 0 ADDWF r0x01, F 000a64 5001 movf 0x1, 0, 0 MOVF r0x01, W 000a66 2600 addwf 0, 0x1, 0 ADDWF r0x00, F 000a68 5000 movf 0, 0, 0 MOVF r0x00, W 000a6a 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000a6c ec3f call 0x167e, 0 CALL _i2cPutByte 000a6e f00b 000a70 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 249; ./picLib3.c while(*str){ 000a72 c002 movff 0x2, 0 MOVFF r0x02, r0x00 000a74 f000 000a76 c003 movff 0x3, 0x1 MOVFF r0x03, r0x01 000a78 f001 000a7a c004 movff 0x4, 0x2 MOVFF r0x04, r0x02 000a7c f002 _00247_DS_: 000a7e c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 000a80 ffe9 000a82 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 000a84 fff3 000a86 5002 movf 0x2, 0, 0 MOVF r0x02, W 000a88 ec00 call 0x1600, 0 CALL __gptrget1 000a8a f00b 000a8c 6e03 movwf 0x3, 0 MOVWF r0x03 000a8e 5003 movf 0x3, 0, 0 MOVF r0x03, W 000a90 e00b bz 0xaa8 BZ _00249_DS_ ; .line 250; ./picLib3.c i2cPutByte(*str++); 000a92 2a00 incf 0, 0x1, 0 INCF r0x00, F 000a94 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000a96 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 000a98 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000a9a 2a02 incf 0x2, 0x1, 0 INCF r0x02, F 000a9c 5003 movf 0x3, 0, 0 MOVF r0x03, W 000a9e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000aa0 ec3f call 0x167e, 0 CALL _i2cPutByte 000aa2 f00b 000aa4 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F 000aa6 d7eb bra 0xa7e BRA _00247_DS_ _00249_DS_: ; .line 253; ./picLib3.c i2cPutByte(0xFF); 000aa8 0eff movlw 0xff MOVLW 0xff 000aaa 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000aac ec3f call 0x167e, 0 CALL _i2cPutByte 000aae f00b 000ab0 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 255; ./picLib3.c i2cStop(); 000ab2 ec86 call 0x170c, 0 CALL _i2cStop 000ab4 f00b ; .line 256; ./picLib3.c delayMs(10); 000ab6 0e00 movlw 0 MOVLW 0x00 000ab8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000aba 0e0a movlw 0xa MOVLW 0x0a 000abc 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000abe ec23 call 0x1446, 0 CALL _delayMs 000ac0 f00a 000ac2 0e02 movlw 0x2 MOVLW 0x02 000ac4 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 000ac6 cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 000ac8 f004 000aca cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 000acc f003 000ace cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000ad0 f002 000ad2 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 000ad4 f001 000ad6 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 000ad8 f000 000ada cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000adc ffd9 000ade 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__lcdPutChar code _lcdPutChar: ; .line 227; ./picLib3.c void lcdPutChar(char c){ 000f72 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 000f74 ffe5 000f76 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 000f78 ffd9 000f7a c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 000f7c ffe5 000f7e c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000f80 ffe5 000f82 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000f84 ffe5 000f86 0e02 movlw 0x2 MOVLW 0x02 000f88 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 000f8a f000 ; .line 230; ./picLib3.c dat[0] = c; 000f8c 5000 movf 0, 0, 0 MOVF r0x00, W 000f8e 0100 movlb 0 BANKSEL _lcdPutChar_dat_1_1 000f90 6f8a movwf 0x8a, 0x1 MOVWF _lcdPutChar_dat_1_1, B ; removed redundant BANKSEL ; .line 231; ./picLib3.c dat[1] = 255; 000f92 698b setf 0x8b, 0x1 SETF (_lcdPutChar_dat_1_1 + 1), B ; .line 233; ./picLib3.c i2cWrite(0xC6, 0, I2cSlow8, dat, 2); 000f94 0e00 movlw 0 MOVLW HIGH(_lcdPutChar_dat_1_1) 000f96 6e01 movwf 0x1, 0 MOVWF r0x01 000f98 0e8a movlw 0x8a MOVLW LOW(_lcdPutChar_dat_1_1) 000f9a 6e00 movwf 0, 0 MOVWF r0x00 000f9c 0e80 movlw 0x80 MOVLW 0x80 000f9e 6e02 movwf 0x2, 0 MOVWF r0x02 000fa0 0e02 movlw 0x2 MOVLW 0x02 000fa2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fa4 5002 movf 0x2, 0, 0 MOVF r0x02, W 000fa6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fa8 5001 movf 0x1, 0, 0 MOVF r0x01, W 000faa 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fac 5000 movf 0, 0, 0 MOVF r0x00, W 000fae 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fb0 0e00 movlw 0 MOVLW 0x00 000fb2 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fb4 0e00 movlw 0 MOVLW 0x00 000fb6 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fb8 0e00 movlw 0 MOVLW 0x00 000fba 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fbc 0ec6 movlw 0xc6 MOVLW 0xc6 000fbe 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fc0 ec79 call 0x8f2, 0 CALL _i2cWrite 000fc2 f004 000fc4 0e08 movlw 0x8 MOVLW 0x08 000fc6 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 234; ./picLib3.c delayMs(10); 000fc8 0e00 movlw 0 MOVLW 0x00 000fca 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fcc 0e0a movlw 0xa MOVLW 0x0a 000fce 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000fd0 ec23 call 0x1446, 0 CALL _delayMs 000fd2 f00a 000fd4 0e02 movlw 0x2 MOVLW 0x02 000fd6 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 000fd8 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 000fda f002 000fdc cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 000fde f001 000fe0 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 000fe2 f000 000fe4 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 000fe6 ffd9 000fe8 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__lcdInit code _lcdInit: ; .line 219; ./picLib3.c void lcdInit(){ 001376 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 001378 ffe5 00137a c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 00137c ffe5 00137e c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 001380 ffe5 ; .line 220; ./picLib3.c UInt8 dat[] = { 254,1,255 }; 001382 0efe movlw 0xfe MOVLW 0xfe 001384 0100 movlb 0 BANKSEL _lcdInit_dat_1_1 001386 6f84 movwf 0x84, 0x1 MOVWF _lcdInit_dat_1_1, B 001388 0e01 movlw 0x1 MOVLW 0x01 ; removed redundant BANKSEL 00138a 6f85 movwf 0x85, 0x1 MOVWF (_lcdInit_dat_1_1 + 1), B ; removed redundant BANKSEL 00138c 6986 setf 0x86, 0x1 SETF (_lcdInit_dat_1_1 + 2), B ; .line 223; ./picLib3.c i2cWrite(0xC6, 0, I2cSlow8, dat, sizeof(dat)); 00138e 0e00 movlw 0 MOVLW HIGH(_lcdInit_dat_1_1) 001390 6e01 movwf 0x1, 0 MOVWF r0x01 001392 0e84 movlw 0x84 MOVLW LOW(_lcdInit_dat_1_1) 001394 6e00 movwf 0, 0 MOVWF r0x00 001396 0e80 movlw 0x80 MOVLW 0x80 001398 6e02 movwf 0x2, 0 MOVWF r0x02 00139a 0e03 movlw 0x3 MOVLW 0x03 00139c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00139e 5002 movf 0x2, 0, 0 MOVF r0x02, W 0013a0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013a2 5001 movf 0x1, 0, 0 MOVF r0x01, W 0013a4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013a6 5000 movf 0, 0, 0 MOVF r0x00, W 0013a8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013aa 0e00 movlw 0 MOVLW 0x00 0013ac 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013ae 0e00 movlw 0 MOVLW 0x00 0013b0 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013b2 0e00 movlw 0 MOVLW 0x00 0013b4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013b6 0ec6 movlw 0xc6 MOVLW 0xc6 0013b8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013ba ec79 call 0x8f2, 0 CALL _i2cWrite 0013bc f004 0013be 0e08 movlw 0x8 MOVLW 0x08 0013c0 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F ; .line 224; ./picLib3.c delayMs(10); 0013c2 0e00 movlw 0 MOVLW 0x00 0013c4 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013c6 0e0a movlw 0xa MOVLW 0x0a 0013c8 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0013ca ec23 call 0x1446, 0 CALL _delayMs 0013cc f00a 0013ce 0e02 movlw 0x2 MOVLW 0x02 0013d0 26e1 addwf 0xe1, 0x1, 0 ADDWF FSR1L, F 0013d2 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 0013d4 f002 0013d6 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 0013d8 f001 0013da cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0013dc f000 0013de 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cRead code _i2cRead: ; .line 183; ./picLib3.c Int8 i2cRead(UInt8 chipAddress, UInt16 regAddress, I2cMode mode, UInt8* dat, UInt8 len){ 00069a cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 00069c ffe5 00069e cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 0006a0 ffd9 0006a2 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0006a4 ffe5 0006a6 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 0006a8 ffe5 0006aa c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 0006ac ffe5 0006ae c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 0006b0 ffe5 0006b2 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 0006b4 ffe5 0006b6 c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 0006b8 ffe5 0006ba c006 movff 0x6, 0xfe5 MOVFF r0x06, POSTDEC1 0006bc ffe5 0006be c007 movff 0x7, 0xfe5 MOVFF r0x07, POSTDEC1 0006c0 ffe5 0006c2 c008 movff 0x8, 0xfe5 MOVFF r0x08, POSTDEC1 0006c4 ffe5 0006c6 0e02 movlw 0x2 MOVLW 0x02 0006c8 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 0006ca f000 0006cc 0e03 movlw 0x3 MOVLW 0x03 0006ce cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 0006d0 f001 0006d2 0e04 movlw 0x4 MOVLW 0x04 0006d4 cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 0006d6 f002 0006d8 0e05 movlw 0x5 MOVLW 0x05 0006da cfdb movff 0xfdb, 0x3 MOVFF PLUSW2, r0x03 0006dc f003 0006de 0e06 movlw 0x6 MOVLW 0x06 0006e0 cfdb movff 0xfdb, 0x4 MOVFF PLUSW2, r0x04 0006e2 f004 0006e4 0e07 movlw 0x7 MOVLW 0x07 0006e6 cfdb movff 0xfdb, 0x5 MOVFF PLUSW2, r0x05 0006e8 f005 0006ea 0e08 movlw 0x8 MOVLW 0x08 0006ec cfdb movff 0xfdb, 0x6 MOVFF PLUSW2, r0x06 0006ee f006 0006f0 0e09 movlw 0x9 MOVLW 0x09 0006f2 cfdb movff 0xfdb, 0x7 MOVFF PLUSW2, r0x07 0006f4 f007 ; .line 184; ./picLib3.c i2cWaitForIdle(); 0006f6 ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 0006f8 f00a ; .line 186; ./picLib3.c if(mode & 0x01) 0006fa a003 btfss 0x3, 0, 0 BTFSS r0x03, 0 0006fc d003 bra 0x704 BRA _00212_DS_ ; .line 187; ./picLib3.c SSPADD = 0x02; // Set the baud rate to 333KHz at 4MHz CLK 0006fe 0e02 movlw 0x2 MOVLW 0x02 000700 6ec8 movwf 0xc8, 0 MOVWF _SSPADD 000702 d002 bra 0x708 BRA _00213_DS_ _00212_DS_: ; .line 189; ./picLib3.c SSPADD = 0x09; // Set the baud rate to 100KHz at 4MHz CLK 000704 0e09 movlw 0x9 MOVLW 0x09 000706 6ec8 movwf 0xc8, 0 MOVWF _SSPADD _00213_DS_: ; .line 191; ./picLib3.c i2cStart(); 000708 ec92 call 0x1724, 0 CALL _i2cStart 00070a f00b ; .line 193; ./picLib3.c i2cPutByte(chipAddress); 00070c 5000 movf 0, 0, 0 MOVF r0x00, W 00070e 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000710 ec3f call 0x167e, 0 CALL _i2cPutByte 000712 f00b 000714 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 194; ./picLib3.c if(mode & 0x02) 000716 a203 btfss 0x3, 0x1, 0 BTFSS r0x03, 1 000718 d008 bra 0x72a BRA _00215_DS_ ; .line 195; ./picLib3.c i2cPutByte(regAddress >> 8); 00071a 5002 movf 0x2, 0, 0 MOVF r0x02, W 00071c 6e03 movwf 0x3, 0 MOVWF r0x03 00071e 6a08 clrf 0x8, 0 CLRF r0x08 000720 5003 movf 0x3, 0, 0 MOVF r0x03, W 000722 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000724 ec3f call 0x167e, 0 CALL _i2cPutByte 000726 f00b 000728 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F _00215_DS_: ; .line 196; ./picLib3.c i2cPutByte(regAddress); 00072a 5001 movf 0x1, 0, 0 MOVF r0x01, W 00072c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00072e ec3f call 0x167e, 0 CALL _i2cPutByte 000730 f00b 000732 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 198; ./picLib3.c i2cRepStart(); 000734 ec8c call 0x1718, 0 CALL _i2cRepStart 000736 f00b ; .line 200; ./picLib3.c i2cPutByte(chipAddress | 0x01); 000738 8000 bsf 0, 0, 0 BSF r0x00, 0 00073a 5000 movf 0, 0, 0 MOVF r0x00, W 00073c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00073e ec3f call 0x167e, 0 CALL _i2cPutByte 000740 f00b 000742 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 202; ./picLib3.c while(len > 1){ 000744 c004 movff 0x4, 0 MOVFF r0x04, r0x00 000746 f000 000748 c005 movff 0x5, 0x1 MOVFF r0x05, r0x01 00074a f001 00074c c006 movff 0x6, 0x2 MOVFF r0x06, r0x02 00074e f002 000750 c007 movff 0x7, 0x3 MOVFF r0x07, r0x03 000752 f003 _00216_DS_: 000754 0e02 movlw 0x2 MOVLW 0x02 000756 5c03 subwf 0x3, 0, 0 SUBWF r0x03, W 000758 e316 bnc 0x786 BNC _00218_DS_ ; .line 203; ./picLib3.c *dat++ = i2cGetByte(1); 00075a 0e01 movlw 0x1 MOVLW 0x01 00075c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00075e eca5 call 0x154a, 0 CALL _i2cGetByte 000760 f00a 000762 6e04 movwf 0x4, 0 MOVWF r0x04 000764 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F 000766 c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 000768 ffe5 00076a c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 00076c ffe9 00076e c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 000770 fff3 000772 5002 movf 0x2, 0, 0 MOVF r0x02, W 000774 ec57 call 0x16ae, 0 CALL __gptrput1 000776 f00b 000778 2a00 incf 0, 0x1, 0 INCF r0x00, F 00077a b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 00077c 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 00077e b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 000780 2a02 incf 0x2, 0x1, 0 INCF r0x02, F ; .line 204; ./picLib3.c len--; 000782 0603 decf 0x3, 0x1, 0 DECF r0x03, F 000784 d7e7 bra 0x754 BRA _00216_DS_ _00218_DS_: ; .line 206; ./picLib3.c if(len != 0){ 000786 5003 movf 0x3, 0, 0 MOVF r0x03, W 000788 e00f bz 0x7a8 BZ _00220_DS_ ; .line 207; ./picLib3.c *dat++ = i2cGetByte(0); 00078a 0e00 movlw 0 MOVLW 0x00 00078c 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 00078e eca5 call 0x154a, 0 CALL _i2cGetByte 000790 f00a 000792 6e03 movwf 0x3, 0 MOVWF r0x03 000794 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F 000796 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000798 ffe5 00079a c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 00079c ffe9 00079e c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 0007a0 fff3 0007a2 5002 movf 0x2, 0, 0 MOVF r0x02, W 0007a4 ec57 call 0x16ae, 0 CALL __gptrput1 0007a6 f00b _00220_DS_: ; .line 210; ./picLib3.c i2cStop(); 0007a8 ec86 call 0x170c, 0 CALL _i2cStop 0007aa f00b ; .line 212; ./picLib3.c return 0; 0007ac 6ae8 clrf 0xe8, 0 CLRF WREG 0007ae cfe4 movff 0xfe4, 0x8 MOVFF PREINC1, r0x08 0007b0 f008 0007b2 cfe4 movff 0xfe4, 0x7 MOVFF PREINC1, r0x07 0007b4 f007 0007b6 cfe4 movff 0xfe4, 0x6 MOVFF PREINC1, r0x06 0007b8 f006 0007ba cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 0007bc f005 0007be cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 0007c0 f004 0007c2 cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 0007c4 f003 0007c6 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 0007c8 f002 0007ca cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 0007cc f001 0007ce cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0007d0 f000 0007d2 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 0007d4 ffd9 0007d6 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cWrite code _i2cWrite: ; .line 158; ./picLib3.c Int8 i2cWrite(UInt8 chipAddress, UInt16 regAddress, I2cMode mode, UInt8* dat, UInt8 len){ 0008f2 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 0008f4 ffe5 0008f6 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 0008f8 ffd9 0008fa c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0008fc ffe5 0008fe c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 000900 ffe5 000902 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 000904 ffe5 000906 c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 000908 ffe5 00090a c004 movff 0x4, 0xfe5 MOVFF r0x04, POSTDEC1 00090c ffe5 00090e c005 movff 0x5, 0xfe5 MOVFF r0x05, POSTDEC1 000910 ffe5 000912 c006 movff 0x6, 0xfe5 MOVFF r0x06, POSTDEC1 000914 ffe5 000916 c007 movff 0x7, 0xfe5 MOVFF r0x07, POSTDEC1 000918 ffe5 00091a 0e02 movlw 0x2 MOVLW 0x02 00091c cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 00091e f000 000920 0e03 movlw 0x3 MOVLW 0x03 000922 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 000924 f001 000926 0e04 movlw 0x4 MOVLW 0x04 000928 cfdb movff 0xfdb, 0x2 MOVFF PLUSW2, r0x02 00092a f002 00092c 0e05 movlw 0x5 MOVLW 0x05 00092e cfdb movff 0xfdb, 0x3 MOVFF PLUSW2, r0x03 000930 f003 000932 0e06 movlw 0x6 MOVLW 0x06 000934 cfdb movff 0xfdb, 0x4 MOVFF PLUSW2, r0x04 000936 f004 000938 0e07 movlw 0x7 MOVLW 0x07 00093a cfdb movff 0xfdb, 0x5 MOVFF PLUSW2, r0x05 00093c f005 00093e 0e08 movlw 0x8 MOVLW 0x08 000940 cfdb movff 0xfdb, 0x6 MOVFF PLUSW2, r0x06 000942 f006 000944 0e09 movlw 0x9 MOVLW 0x09 000946 cfdb movff 0xfdb, 0x7 MOVFF PLUSW2, r0x07 000948 f007 ; .line 159; ./picLib3.c i2cWaitForIdle(); 00094a ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 00094c f00a ; .line 161; ./picLib3.c if(mode & 0x01) 00094e a003 btfss 0x3, 0, 0 BTFSS r0x03, 0 000950 d003 bra 0x958 BRA _00191_DS_ ; .line 162; ./picLib3.c SSPADD = 0x02; // Set the baud rate to 333KHz at 4MHz CLK 000952 0e02 movlw 0x2 MOVLW 0x02 000954 6ec8 movwf 0xc8, 0 MOVWF _SSPADD 000956 d002 bra 0x95c BRA _00192_DS_ _00191_DS_: ; .line 164; ./picLib3.c SSPADD = 0x09; // Set the baud rate to 100KHz at 4MHz CLK 000958 0e09 movlw 0x9 MOVLW 0x09 00095a 6ec8 movwf 0xc8, 0 MOVWF _SSPADD _00192_DS_: ; .line 166; ./picLib3.c i2cStart(); 00095c ec92 call 0x1724, 0 CALL _i2cStart 00095e f00b ; .line 168; ./picLib3.c i2cPutByte(chipAddress); 000960 5000 movf 0, 0, 0 MOVF r0x00, W 000962 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000964 ec3f call 0x167e, 0 CALL _i2cPutByte 000966 f00b 000968 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 169; ./picLib3.c if(mode & 0x02) 00096a a203 btfss 0x3, 0x1, 0 BTFSS r0x03, 1 00096c d008 bra 0x97e BRA _00194_DS_ ; .line 170; ./picLib3.c i2cPutByte(regAddress >> 8); 00096e 5002 movf 0x2, 0, 0 MOVF r0x02, W 000970 6e00 movwf 0, 0 MOVWF r0x00 000972 6a03 clrf 0x3, 0 CLRF r0x03 000974 5000 movf 0, 0, 0 MOVF r0x00, W 000976 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000978 ec3f call 0x167e, 0 CALL _i2cPutByte 00097a f00b 00097c 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F _00194_DS_: ; .line 171; ./picLib3.c i2cPutByte(regAddress); 00097e 5001 movf 0x1, 0, 0 MOVF r0x01, W 000980 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 000982 ec3f call 0x167e, 0 CALL _i2cPutByte 000984 f00b 000986 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F ; .line 173; ./picLib3.c while(len--){ 000988 c004 movff 0x4, 0 MOVFF r0x04, r0x00 00098a f000 00098c c005 movff 0x5, 0x1 MOVFF r0x05, r0x01 00098e f001 000990 c006 movff 0x6, 0x2 MOVFF r0x06, r0x02 000992 f002 000994 c007 movff 0x7, 0x3 MOVFF r0x07, r0x03 000996 f003 _00195_DS_: 000998 c003 movff 0x3, 0x4 MOVFF r0x03, r0x04 00099a f004 00099c 0603 decf 0x3, 0x1, 0 DECF r0x03, F 00099e 5004 movf 0x4, 0, 0 MOVF r0x04, W 0009a0 e013 bz 0x9c8 BZ _00197_DS_ ; .line 174; ./picLib3.c i2cPutByte(*dat++); 0009a2 c000 movff 0, 0xfe9 MOVFF r0x00, FSR0L 0009a4 ffe9 0009a6 c001 movff 0x1, 0xff3 MOVFF r0x01, PRODL 0009a8 fff3 0009aa 5002 movf 0x2, 0, 0 MOVF r0x02, W 0009ac ec00 call 0x1600, 0 CALL __gptrget1 0009ae f00b 0009b0 6e04 movwf 0x4, 0 MOVWF r0x04 0009b2 2a00 incf 0, 0x1, 0 INCF r0x00, F 0009b4 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0009b6 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 0009b8 b0d8 btfsc 0xd8, 0, 0 BTFSC STATUS, 0 0009ba 2a02 incf 0x2, 0x1, 0 INCF r0x02, F 0009bc 5004 movf 0x4, 0, 0 MOVF r0x04, W 0009be 6ee5 movwf 0xe5, 0 MOVWF POSTDEC1 0009c0 ec3f call 0x167e, 0 CALL _i2cPutByte 0009c2 f00b 0009c4 2ae1 incf 0xe1, 0x1, 0 INCF FSR1L, F 0009c6 d7e8 bra 0x998 BRA _00195_DS_ _00197_DS_: ; .line 177; ./picLib3.c i2cStop(); 0009c8 ec86 call 0x170c, 0 CALL _i2cStop 0009ca f00b ; .line 179; ./picLib3.c return 0; 0009cc 6ae8 clrf 0xe8, 0 CLRF WREG 0009ce cfe4 movff 0xfe4, 0x7 MOVFF PREINC1, r0x07 0009d0 f007 0009d2 cfe4 movff 0xfe4, 0x6 MOVFF PREINC1, r0x06 0009d4 f006 0009d6 cfe4 movff 0xfe4, 0x5 MOVFF PREINC1, r0x05 0009d8 f005 0009da cfe4 movff 0xfe4, 0x4 MOVFF PREINC1, r0x04 0009dc f004 0009de cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 0009e0 f003 0009e2 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 0009e4 f002 0009e6 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 0009e8 f001 0009ea cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0009ec f000 0009ee cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 0009f0 ffd9 0009f2 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cGetByte code _i2cGetByte: ; .line 139; ./picLib3.c UInt8 i2cGetByte(UInt8 ack){ 00154a cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 00154c ffe5 00154e cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 001550 ffd9 001552 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 001554 ffe5 001556 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 001558 ffe5 00155a 0e02 movlw 0x2 MOVLW 0x02 00155c cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 00155e f000 ; .line 142; ./picLib3.c i2cWaitForIdle(); 001560 ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 001562 f00a ; .line 143; ./picLib3.c SSPCON2bits.RCEN = 1; 001564 86c5 bsf 0xc5, 0x3, 0 BSF _SSPCON2bits, 3 ; .line 144; ./picLib3.c i2cWaitForIdle(); 001566 ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 001568 f00a ; .line 145; ./picLib3.c v = SSPBUF; 00156a cfc9 movff 0xfc9, 0x1 MOVFF _SSPBUF, r0x01 00156c f001 ; .line 146; ./picLib3.c i2cWaitForIdle(); 00156e ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 001570 f00a ; .line 148; ./picLib3.c if(ack) 001572 5000 movf 0, 0, 0 MOVF r0x00, W 001574 e002 bz 0x157a BZ _00183_DS_ ; .line 149; ./picLib3.c SSPCON2bits.ACKDT = 0; 001576 9ac5 bcf 0xc5, 0x5, 0 BCF _SSPCON2bits, 5 001578 d001 bra 0x157c BRA _00184_DS_ _00183_DS_: ; .line 151; ./picLib3.c SSPCON2bits.ACKDT = 1; 00157a 8ac5 bsf 0xc5, 0x5, 0 BSF _SSPCON2bits, 5 _00184_DS_: ; .line 153; ./picLib3.c SSPCON2bits.ACKEN = 1; // Send acknowledge sequence 00157c 88c5 bsf 0xc5, 0x4, 0 BSF _SSPCON2bits, 4 ; .line 155; ./picLib3.c return v; 00157e 5001 movf 0x1, 0, 0 MOVF r0x01, W 001580 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 001582 f001 001584 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 001586 f000 001588 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 00158a ffd9 00158c 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cPutByte code _i2cPutByte: ; .line 128; ./picLib3.c void i2cPutByte(UInt8 v){ 00167e cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 001680 ffe5 001682 cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 001684 ffd9 001686 0e02 movlw 0x2 MOVLW 0x02 001688 cfdb movff 0xfdb, 0xfc9 MOVFF PLUSW2, _SSPBUF 00168a ffc9 ; .line 134; ./picLib3.c i2cWaitForIdle(); 00168c ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 00168e f00a ; .line 135; ./picLib3.c SSPBUF = v; 001690 cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 001692 ffd9 001694 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cStop code _i2cStop: ; .line 123; ./picLib3.c i2cWaitForIdle(); 00170c ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 00170e f00a ; .line 124; ./picLib3.c SSPCON2bits.PEN = 1; 001710 84c5 bsf 0xc5, 0x2, 0 BSF _SSPCON2bits, 2 _00169_DS_: ; .line 125; ./picLib3.c while(SSPCON2bits.PEN); 001712 b4c5 btfsc 0xc5, 0x2, 0 BTFSC _SSPCON2bits, 2 001714 d7fe bra 0x1712 BRA _00169_DS_ 001716 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cRepStart code _i2cRepStart: ; .line 117; ./picLib3.c i2cWaitForIdle(); 001718 ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 00171a f00a ; .line 118; ./picLib3.c SSPCON2bits.RSEN = 1; 00171c 82c5 bsf 0xc5, 0x1, 0 BSF _SSPCON2bits, 1 _00161_DS_: ; .line 119; ./picLib3.c while(SSPCON2bits.RSEN); 00171e b2c5 btfsc 0xc5, 0x1, 0 BTFSC _SSPCON2bits, 1 001720 d7fe bra 0x171e BRA _00161_DS_ 001722 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cStart code _i2cStart: ; .line 111; ./picLib3.c i2cWaitForIdle(); 001724 ec56 call 0x14ac, 0 CALL _i2cWaitForIdle 001726 f00a ; .line 112; ./picLib3.c SSPCON2bits.SEN = 1; 001728 80c5 bsf 0xc5, 0, 0 BSF _SSPCON2bits, 0 _00153_DS_: ; .line 113; ./picLib3.c while(SSPCON2bits.SEN); 00172a b0c5 btfsc 0xc5, 0, 0 BTFSC _SSPCON2bits, 0 00172c d7fe bra 0x172a BRA _00153_DS_ 00172e 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cWaitForIdle code _i2cWaitForIdle: ; .line 99; ./picLib3.c Int8 i2cWaitForIdle(){ 0014ac c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0014ae ffe5 0014b0 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 0014b2 ffe5 0014b4 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 0014b6 ffe5 ; .line 102; ./picLib3.c while(((SSPCON2 & 0x1F) | SSPSTATbits.R_W) && --to); // Wait for idle and not writing 0014b8 0eff movlw 0xff MOVLW 0xff 0014ba 6e00 movwf 0, 0 MOVWF r0x00 _00138_DS_: 0014bc 0e1f movlw 0x1f MOVLW 0x1f 0014be 14c5 andwf 0xc5, 0, 0 ANDWF _SSPCON2, W 0014c0 6e01 movwf 0x1, 0 MOVWF r0x01 0014c2 6a02 clrf 0x2, 0 CLRF r0x02 0014c4 b4c7 btfsc 0xc7, 0x2, 0 BTFSC _SSPSTATbits, 2 0014c6 2a02 incf 0x2, 0x1, 0 INCF r0x02, F 0014c8 5002 movf 0x2, 0, 0 MOVF r0x02, W 0014ca 1201 iorwf 0x1, 0x1, 0 IORWF r0x01, F 0014cc 5001 movf 0x1, 0, 0 MOVF r0x01, W 0014ce e003 bz 0x14d6 BZ _00148_DS_ 0014d0 0600 decf 0, 0x1, 0 DECF r0x00, F 0014d2 5000 movf 0, 0, 0 MOVF r0x00, W 0014d4 e1f3 bnz 0x14bc BNZ _00138_DS_ _00148_DS_: 0014d6 c000 movff 0, 0x1 MOVFF r0x00, r0x01 0014d8 f001 ; # MOVF r0x00, W ; # BTFSS STATUS, 2 ; # GOTO _00142_DS_ ; # CALL _i2cReset ; # MOVF r0x01, W ; .line 105; ./picLib3.c if(!to) 0014da 5000 movf 0, 0, 0 MOVF r0x00, W ; .line 106; ./picLib3.c i2cReset(); 0014dc b4d8 btfsc 0xd8, 0x2, 0 BTFSC STATUS, 2 ; .line 107; ./picLib3.c return !to; 0014de ec11 call 0x1622, 0 CALL _i2cReset 0014e0 f00b 0014e2 5001 movf 0x1, 0, 0 MOVF r0x01, W 0014e4 80d8 bsf 0xd8, 0, 0 BSF STATUS, 0 0014e6 66e8 tstfsz 0xe8, 0 TSTFSZ WREG 0014e8 90d8 bcf 0xd8, 0, 0 BCF STATUS, 0 0014ea 6a01 clrf 0x1, 0 CLRF r0x01 0014ec 3601 rlcf 0x1, 0x1, 0 RLCF r0x01, F 0014ee 5001 movf 0x1, 0, 0 MOVF r0x01, W 0014f0 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 0014f2 f002 0014f4 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 0014f6 f001 0014f8 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0014fa f000 0014fc 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cWaitForIdle1 code _i2cWaitForIdle1: ; .line 95; ./picLib3.c void i2cWaitForIdle1(){ 0015b6 c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 0015b8 ffe5 0015ba c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 0015bc ffe5 _00129_DS_: ; .line 96; ./picLib3.c while((SSPCON2 & 0x1F) | SSPSTATbits.R_W); // Wait for idle and not writing 0015be 0e1f movlw 0x1f MOVLW 0x1f 0015c0 14c5 andwf 0xc5, 0, 0 ANDWF _SSPCON2, W 0015c2 6e00 movwf 0, 0 MOVWF r0x00 0015c4 6a01 clrf 0x1, 0 CLRF r0x01 0015c6 b4c7 btfsc 0xc7, 0x2, 0 BTFSC _SSPSTATbits, 2 0015c8 2a01 incf 0x1, 0x1, 0 INCF r0x01, F 0015ca 5001 movf 0x1, 0, 0 MOVF r0x01, W 0015cc 1200 iorwf 0, 0x1, 0 IORWF r0x00, F 0015ce 5000 movf 0, 0, 0 MOVF r0x00, W 0015d0 e1f6 bnz 0x15be BNZ _00129_DS_ 0015d2 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 0015d4 f001 0015d6 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 0015d8 f000 0015da 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cInit code _i2cInit: ; .line 76; ./picLib3.c SSPSTAT &= 0x3f; 001660 0e3f movlw 0x3f MOVLW 0x3f 001662 16c7 andwf 0xc7, 0x1, 0 ANDWF _SSPSTAT, F ; .line 78; ./picLib3.c SSPCON1 = 0x28; // Set I2C master mode 001664 0e28 movlw 0x28 MOVLW 0x28 001666 6ec6 movwf 0xc6, 0 MOVWF _SSPCON1 ; .line 79; ./picLib3.c SSPCON2 = 0x00; 001668 6ac5 clrf 0xc5, 0 CLRF _SSPCON2 ; .line 80; ./picLib3.c SSPADD = 0x09; // Set the baud rate to 100KHz at 4MHz 00166a 0e09 movlw 0x9 MOVLW 0x09 00166c 6ec8 movwf 0xc8, 0 MOVWF _SSPADD ; .line 82; ./picLib3.c TRISCbits.TRISC3 = 1; // Enable pins 00166e 8694 bsf 0x94, 0x3, 0 BSF _TRISCbits, 3 ; .line 83; ./picLib3.c TRISCbits.TRISC4 = 1; 001670 8894 bsf 0x94, 0x4, 0 BSF _TRISCbits, 4 ; .line 88; ./picLib3.c PIR1bits.SSPIF = 0; // clear SSPIF interrupt flag 001672 969e bcf 0x9e, 0x3, 0 BCF _PIR1bits, 3 ; .line 89; ./picLib3.c PIR2bits.BCLIF = 0; // clear bus collision flag 001674 96a1 bcf 0xa1, 0x3, 0 BCF _PIR2bits, 3 ; .line 91; ./picLib3.c i2cReset(); 001676 ec11 call 0x1622, 0 CALL _i2cReset 001678 f00b ; .line 92; ./picLib3.c PORTBbits.RB5 = 0; 00167a 9a81 bcf 0x81, 0x5, 0 BCF _PORTBbits, 5 00167c 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__i2cReset code _i2cReset: ; .line 53; ./picLib3.c PORTBbits.RB5 = 1; 001622 8a81 bsf 0x81, 0x5, 0 BSF _PORTBbits, 5 ; .line 55; ./picLib3.c SSPCON1bits.SSPEN = 0; // Disable I2C hardware 001624 9ac6 bcf 0xc6, 0x5, 0 BCF _SSPCON1bits, 5 ; .line 56; ./picLib3.c TRISCbits.TRISC3 = 0; 001626 9694 bcf 0x94, 0x3, 0 BCF _TRISCbits, 3 ; .line 57; ./picLib3.c PORTCbits.RC3 = 1; 001628 8682 bsf 0x82, 0x3, 0 BSF _PORTCbits, 3 _00116_DS_: ; .line 60; ./picLib3.c while(!PORTCbits.RC4){ 00162a b882 btfsc 0x82, 0x4, 0 BTFSC _PORTCbits, 4 00162c d003 bra 0x1634 BRA _00118_DS_ ; .line 61; ./picLib3.c PORTCbits.RC3 = 0; 00162e 9682 bcf 0x82, 0x3, 0 BCF _PORTCbits, 3 ; .line 62; ./picLib3.c PORTCbits.RC3 = 1; 001630 8682 bsf 0x82, 0x3, 0 BSF _PORTCbits, 3 001632 d7fb bra 0x162a BRA _00116_DS_ _00118_DS_: ; .line 66; ./picLib3.c TRISCbits.TRISC4 = 0; 001634 9894 bcf 0x94, 0x4, 0 BCF _TRISCbits, 4 ; .line 67; ./picLib3.c PORTCbits.RC4 = 0; 001636 9882 bcf 0x82, 0x4, 0 BCF _PORTCbits, 4 ; .line 68; ./picLib3.c PORTCbits.RC4 = 1; 001638 8882 bsf 0x82, 0x4, 0 BSF _PORTCbits, 4 ; .line 70; ./picLib3.c TRISCbits.TRISC3 = 1; // Enable pins 00163a 8694 bsf 0x94, 0x3, 0 BSF _TRISCbits, 3 ; .line 71; ./picLib3.c TRISCbits.TRISC4 = 1; 00163c 8894 bsf 0x94, 0x4, 0 BSF _TRISCbits, 4 ; .line 72; ./picLib3.c SSPCON1bits.SSPEN = 1; // Re-enable I2C hardware 00163e 8ac6 bsf 0xc6, 0x5, 0 BSF _SSPCON1bits, 5 001640 0012 return 0 RETURN ; ; Starting pCode block S_testEeprom__delayMs code _delayMs: ; .line 27; ./picLib3.c void delayMs(UInt16 n){ 001446 cfd9 movff 0xfd9, 0xfe5 MOVFF FSR2L, POSTDEC1 001448 ffe5 00144a cfe1 movff 0xfe1, 0xfd9 MOVFF FSR1L, FSR2L 00144c ffd9 00144e c000 movff 0, 0xfe5 MOVFF r0x00, POSTDEC1 001450 ffe5 001452 c001 movff 0x1, 0xfe5 MOVFF r0x01, POSTDEC1 001454 ffe5 001456 c002 movff 0x2, 0xfe5 MOVFF r0x02, POSTDEC1 001458 ffe5 00145a c003 movff 0x3, 0xfe5 MOVFF r0x03, POSTDEC1 00145c ffe5 00145e 0e02 movlw 0x2 MOVLW 0x02 001460 cfdb movff 0xfdb, 0 MOVFF PLUSW2, r0x00 001462 f000 001464 0e03 movlw 0x3 MOVLW 0x03 001466 cfdb movff 0xfdb, 0x1 MOVFF PLUSW2, r0x01 001468 f001 _00105_DS_: ; .line 30; ./picLib3.c while(n--){ 00146a c000 movff 0, 0x2 MOVFF r0x00, r0x02 00146c f002 00146e c001 movff 0x1, 0x3 MOVFF r0x01, r0x03 001470 f003 001472 0eff movlw 0xff MOVLW 0xff 001474 2600 addwf 0, 0x1, 0 ADDWF r0x00, F 001476 a0d8 btfss 0xd8, 0, 0 BTFSS STATUS, 0 001478 0601 decf 0x1, 0x1, 0 DECF r0x01, F 00147a 5002 movf 0x2, 0, 0 MOVF r0x02, W 00147c 1003 iorwf 0x3, 0, 0 IORWF r0x03, W 00147e e006 bz 0x148c BZ _00111_DS_ ; .line 31; ./picLib3.c for(c = 0; c < 250; c++){ 001480 0efa movlw 0xfa MOVLW 0xfa 001482 6e02 movwf 0x2, 0 MOVWF r0x02 _00110_DS_: 001484 0000 nop nop 001486 2e02 decfsz 0x2, 0x1, 0 DECFSZ r0x02, F 001488 d7fd bra 0x1484 BRA _00110_DS_ ; .line 31; ./picLib3.c for(c = 0; c < 250; c++){ 00148a d7ef bra 0x146a BRA _00105_DS_ _00111_DS_: 00148c cfe4 movff 0xfe4, 0x3 MOVFF PREINC1, r0x03 00148e f003 001490 cfe4 movff 0xfe4, 0x2 MOVFF PREINC1, r0x02 001492 f002 001494 cfe4 movff 0xfe4, 0x1 MOVFF PREINC1, r0x01 001496 f001 001498 cfe4 movff 0xfe4, 0 MOVFF PREINC1, r0x00 00149a f000 00149c cfe4 movff 0xfe4, 0xfd9 MOVFF PREINC1, FSR2L 00149e ffd9 0014a0 0012 return 0 RETURN ; ; Starting pCode block __str_0: 0014a2 6554 cpfsgt 0x54, 0x1 DB 0x54, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x00 0014a4 7473 btg 0x73, 0x2, 0 0014a6 6e69 movwf 0x69, 0 0014a8 0067 dw 0x67 ;unknown opcode ; ; Starting pCode block __str_1: 0014aa 0000 nop DB 0x00 ; Statistics: ; code size: 4768 (0x12a0) bytes ( 3.64%) ; 2384 (0x0950) words ; udata size: 17 (0x0011) bytes ( 1.33%) ; access size: 12 (0x000c) bytes end