gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00001 radix DEC 00002 LIST P=18F252 ; change also: Configure->SelectDevice from Mplab 01312D00 00003 xtal EQU 20000000 ; you may want to change: _XT_OSC_1H _HS_OSC_1H _HSPLL_OSC_1H 0001C200 00004 baud EQU 115200 ; standard TinyBld baud rates: 115200 or 19200 00005 ; The above 3 lines can be changed and buid a bootloader for the desired frequency (and PIC type) 00006 00007 ;******************************************************************** 00008 ; Tiny Bootloader 18F series Size=100words 00009 ; claudiu.chiculita@ugal.ro 00010 ; http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm 00011 ;******************************************************************** 00012 00013 00014 #include "../icdpictypes.inc" ;takes care of: #include "p18fxxx.inc", max_flash, IdTypePIC 00001 ;IdTypePIC 00002 ;bits 7 6 5 4 3 2 1 0 00003 ;meaning: type16/18/ds | model_nr 00004 ; 00005 ; 00006 ;If you want to work with another model that is not on the list 00007 ;find one model that is similar to yours and has THE SAME amount 00008 ;of flash and replace its "IFDEF __XXXXXX" and 00009 ;"#include "ZZZZZZZZZ.inc"", but the ID must remain. 00010 ;Each IdTypePIC has one corespondent in the PC application, 00011 ;if you add new ones they will not be recognized. 00012 00000000 00013 IdTypePIC SET 0 00014 00015 IFDEF __16F876A 00016 #include "p16f876a.inc" 00017 IdTypePIC = 0x31 00018 #define max_flash 0x2000 00019 ENDIF 00020 IFDEF __16F877A 00021 #include "p16f877a.inc" 00022 IdTypePIC = 0x31 00023 #define max_flash 0x2000 00024 ENDIF 00025 00026 IFDEF __16F873A 00027 #include "p16f873a.inc" 00028 IdTypePIC = 0x32 00029 #define max_flash 0x1000 00030 ENDIF 00031 IFDEF __16F874A 00032 #include "p16f874a.inc" 00033 IdTypePIC = 0x32 00034 #define max_flash 0x1000 00035 ENDIF 00036 00037 IFDEF __16F87 00038 #include "p16f87.inc" 00039 IdTypePIC = 0x33 00040 #define max_flash 0x1000 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 2 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00041 ENDIF 00042 IFDEF __16F88 00043 #include "p16f88.inc" 00044 IdTypePIC = 0x33 00045 #define max_flash 0x1000 00046 ENDIF 00047 00048 IFDEF __16F886 00049 #include "p16f886.inc" 00050 IdTypePIC = 0x36 00051 #define max_flash 0x2000 00052 ENDIF 00053 00054 IFDEF __16F887 00055 #include "p16f887.inc" 00056 IdTypePIC = 0x36 00057 #define max_flash 0x2000 00058 ENDIF 00059 00060 00061 ;---------- 18F ------------- 00062 00063 ; 28/40pin 00064 IFDEF __18F252 00065 #include "p18f252.inc" 00001 LIST 00002 ; P18F252.INC Standard Header File, Version 1.4 Microchip Technology, Inc. 00947 LIST 00000041 00066 IdTypePIC = 0x41 0000 00067 #define max_flash 0x8000 00068 ENDIF 00069 IFDEF __18F452 00070 #include "p18f452.inc" 00071 IdTypePIC = 0x41 00072 #define max_flash 0x8000 00073 ENDIF 00074 IFDEF __18F242 00075 #include "p18f242.inc" 00076 IdTypePIC = 0x42 00077 #define max_flash 0x4000 00078 ENDIF 00079 IFDEF __18F442 00080 #include "p18f442.inc" 00081 IdTypePIC = 0x42 00082 #define max_flash 0x4000 00083 ENDIF 00084 00085 00086 00087 IFDEF __18F2520 00088 #include "p18f2520.inc" 00089 IdTypePIC = 0x41 00090 #define max_flash 0x8000 00091 ENDIF gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 3 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00092 IFDEF __18F4520 00093 #include "p18f4520.inc" 00094 IdTypePIC = 0x41 00095 #define max_flash 0x8000 00096 ENDIF 00097 IFDEF __18F2420 00098 #include "p18f2420.inc" 00099 IdTypePIC = 0x42 00100 #define max_flash 0x4000 00101 ENDIF 00102 IFDEF __18F4420 00103 #include "p18f4420.inc" 00104 IdTypePIC = 0x42 00105 #define max_flash 0x4000 00106 ENDIF 00107 IFDEF __18F4431 00108 #include "p18f4431.inc" 00109 IdTypePIC = 0x42 00110 #define max_flash 0x4000 00111 ENDIF 00112 00113 ; 28/40pin can2.0 00114 IFDEF __18F258 00115 #include 00116 IdTypePIC = 0x43 00117 #define max_flash 0x8000 00118 ENDIF 00119 IFDEF __18F2580 00120 #include 00121 IdTypePIC = 0x43 00122 #define max_flash 0x8000 00123 ENDIF 00124 IFDEF __18F458 00125 #include 00126 IdTypePIC = 0x43 00127 #define max_flash 0x8000 00128 ENDIF 00129 IFDEF __18F4580 00130 #include 00131 IdTypePIC = 0x43 00132 #define max_flash 0x8000 00133 ENDIF 00134 IFDEF __18F248 00135 #include 00136 IdTypePIC = 0x44 00137 #define max_flash 0x4000 00138 ENDIF 00139 IFDEF __18F2480 00140 #include 00141 IdTypePIC = 0x44 00142 #define max_flash 0x4000 00143 ENDIF 00144 IFDEF __18F448 00145 #include gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 4 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00146 IdTypePIC = 0x44 00147 #define max_flash 0x4000 00148 ENDIF 00149 IFDEF __18F4480 00150 #include 00151 IdTypePIC = 0x44 00152 #define max_flash 0x4000 00153 ENDIF 00154 00155 00156 ; 18/28pin 6pwm (some:I2C/SPI) 00157 IFDEF __18F1320 00158 #include 00159 IdTypePIC = 0x45 00160 #define max_flash 0x2000 00161 ENDIF 00162 IFDEF __18F2320 00163 #include 00164 IdTypePIC = 0x45 00165 #define max_flash 0x2000 00166 ENDIF 00167 IFDEF __18F2331 00168 #include 00169 IdTypePIC = 0x45 00170 #define max_flash 0x2000 00171 ENDIF 00172 IFDEF __18F1220 00173 #include 00174 IdTypePIC = 0x46 00175 #define max_flash 0x1000 00176 ENDIF 00177 IFDEF __18F2220 00178 #include 00179 IdTypePIC = 0x46 00180 #define max_flash 0x1000 00181 ENDIF 00182 00183 00184 ; 40pin 6pwm 00185 IFDEF __18F4320 00186 #include 00187 IdTypePIC = 0x47 00188 #define max_flash 0x2000 00189 ENDIF 00190 IFDEF __18F4331 00191 #include 00192 IdTypePIC = 0x47 00193 #define max_flash 0x2000 00194 ENDIF 00195 00196 IFDEF __18F4220 00197 #include 00198 IdTypePIC = 0x48 00199 #define max_flash 0x1000 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 5 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00200 ENDIF 00201 00202 00203 ; 64/80pin TQFP 2usart 00204 IFDEF __18F6720 00205 #include 00206 IdTypePIC = 0x4A 00207 #define max_flash 0x20000 00208 ENDIF 00209 IFDEF __18F8720 00210 #include 00211 IdTypePIC = 0x4A 00212 #define max_flash 0x20000 00213 ENDIF 00214 IFDEF __18F6620 00215 #include 00216 IdTypePIC = 0x4B 00217 #define max_flash 0x10000 00218 ENDIF 00219 IFDEF __18F8620 00220 #include 00221 IdTypePIC = 0x4B 00222 #define max_flash 0x10000 00223 ENDIF 00224 IFDEF __18F6520 00225 #include 00226 IdTypePIC = 0x4C 00227 #define max_flash 0x8000 00228 ENDIF 00229 IFDEF __18F8520 00230 #include 00231 IdTypePIC = 0x4C 00232 #define max_flash 0x8000 00233 ENDIF 00234 IFDEF __18F8680 00235 #include 00236 IdTypePIC = 0x4D 00237 #define max_flash 0x10000 00238 ENDIF 00239 00240 00241 ;PIC18F 2525/2620/4525/4620 EA-USART, nanoWatt, intOSC 00242 00243 IFDEF __18F2525 00244 #include "p18f2525.inc" 00245 IdTypePIC = 0x4E 00246 #define max_flash 0xC000 00247 ENDIF 00248 IFDEF __18F2585 00249 #include "p18f2585.inc" 00250 IdTypePIC = 0x4E 00251 #define max_flash 0xC000 00252 ENDIF 00253 IFDEF __18F4525 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 6 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00254 #include "p18f4525.inc" 00255 IdTypePIC = 0x4E 00256 #define max_flash 0xC000 00257 ENDIF 00258 IFDEF __18F4585 00259 #include "p18f4585.inc" 00260 IdTypePIC = 0x4E 00261 #define max_flash 0xC000 00262 ENDIF 00263 IFDEF __18F2620 00264 #include "p18f2620.inc" 00265 IdTypePIC = 0x4F 00266 #define max_flash 0x10000 00267 ENDIF 00268 IFDEF __18F2680 00269 #include "p18f2680.inc" 00270 IdTypePIC = 0x4F 00271 #define max_flash 0x10000 00272 ENDIF 00273 IFDEF __18F4620 00274 #include "p18f4620.inc" 00275 IdTypePIC = 0x4F 00276 #define max_flash 0x10000 00277 ENDIF 00278 IFDEF __18F4680 00279 #include "p18f4680.inc" 00280 IdTypePIC = 0x4F 00281 #define max_flash 0x10000 00282 ENDIF 00283 00284 ;---------------- USB ------------------------------ 00285 00286 IFDEF __18F2550 00287 #include "p18f2550.inc" 00288 IdTypePIC = 0x55 00289 #define max_flash 0x8000 00290 ENDIF 00291 IFDEF __18F4550 00292 #include "p18f4550.inc" 00293 IdTypePIC = 0x55 00294 #define max_flash 0x8000 00295 ENDIF 00296 IFDEF __18F2455 00297 #include "p18f2455.inc" 00298 IdTypePIC = 0x56 00299 #define max_flash 0x6000 00300 ENDIF 00301 IFDEF __18F4455 00302 #include "p18f4455.inc" 00303 IdTypePIC = 0x56 00304 #define max_flash 0x6000 00305 ENDIF 00306 IFDEF __18F4685 00307 #include "p18f4685.inc" gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 7 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00308 IdTypePIC = 0x57 00309 #define max_flash 0x18000 00310 ENDIF 00311 00312 if IdTypePIC==0 00313 error "Pic not yet implemeted" 00314 endif 00315 00316 00317 00318 IFDEF __18F2685 00319 #include 00320 IdTypePIC = 0x57 00321 #define max_flash 0x18000 ; 18000 00322 ENDIF 00015 #include "../spbrgselect.inc" ; RoundResult and baud_rate 00000000 00001 RoundResult SET 0 ; Rounding function. RoundResult = Round(aa/bb) 00002 Round macro aa,bb 00003 LOCAL rr = aa/bb 00004 LOCAL d1 = aa - rr*bb 00005 LOCAL d2 = (rr+1)*bb - aa 00006 RoundResult = rr 00007 if d1 >= d2 00008 RoundResult++ 00009 endif 00010 endm 00011 00000000 00012 AbsResult SET 0 00013 Abs macro nr 00014 if nr>=0 00015 AbsResult = nr 00016 else 00017 AbsResult = -nr 00018 endif 00019 endm 00020 00021 Round xtal,(16*baud) M LOCAL rr = aa/bb M LOCAL d1 = aa - rr*bb M LOCAL d2 = (rr+1)*bb - aa 0000000A M RoundResult = rr M if d1 >= d2 0000000B M RoundResult++ M endif 0000000A 00022 spbrg_value EQU RoundResult-1 00023 00024 Round xtal,(16*(spbrg_value+1)) M LOCAL rr = aa/bb M LOCAL d1 = aa - rr*bb M LOCAL d2 = (rr+1)*bb - aa 0001BBE4 M RoundResult = rr M if d1 >= d2 M RoundResult++ M endif gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 8 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0001BBE4 00025 baud_real EQU RoundResult 00026 Abs(baud_real-baud) M if nr>=0 M AbsResult = nr M else 0000061C M AbsResult = -nr M endif 00000001 00027 errpercent EQU AbsResult*100/baud 00016 0000 00017 #define first_address max_flash-200 ;100 words 00018 300000 FAFF 00019 __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H 00020 __CONFIG _CONFIG2L, _BOR_ON_2L & _BORV_20_2L & _PWRT_ON_2L 300002 FEFE 00021 __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H 300006 FFFB 00022 __CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L 00023 00024 00025 ;----------------------------- PROGRAM --------------------------------- 00026 cblock 0 00027 crc 00028 i 00029 cnt1 00030 cnt2 00031 cnt3 00032 counter_hi 00033 counter_lo 00034 flag 00035 endc 00036 cblock 10 00037 buffer:64 00038 dummy4crc 00039 endc 00040 00041 SendL macro car 00042 movlw car 00043 movwf TXREG 00044 endm 00045 00046 ;0000000000000000000000000 RESET 00000000000000000000000000 00047 0000 00048 ORG 0x0000 0000 EFA0 F03F 00049 GOTO IntrareBootloader 00050 00051 ;view with TabSize=4 00052 ;&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&&&&&& 00053 ;---------------------- Bootloader ---------------------- 00054 ;PC_flash: C1h U H L x ... <64 bytes> ... crc 00055 ;PC_eeprom: C1h 40h EEADR EEDATA 0 crc 00056 ;PC_cfg C1h U OR 80h H L 1 byte crc 00057 ;PIC_response: type `K` 00058 7F38 00059 ORG first_address ;space to deposit first 4 instr. of user prog. 7F38 0000 00060 nop 7F3A 0000 00061 nop gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 9 LOC OBJECT CODE LINE SOURCE TEXT VALUE 7F3C 0000 00062 nop 7F3E 0000 00063 nop 7F40 00064 org first_address+8 7F40 00065 IntrareBootloader 00066 ;init serial port 7F40 0E24 00067 movlw b'00100100' 7F42 6EAC 00068 movwf TXSTA 7F44 0E0A 00069 movlw spbrg_value 7F46 6EAF 00070 movwf SPBRG 7F48 0E90 00071 movlw b'10010000' 7F4A 6EAB 00072 movwf RCSTA 00073 ;wait for computer 7F4C D846 00074 rcall Receive 7F4E 08C1 00075 sublw 0xC1 ;Expect C1h 7F50 E153 00076 bnz way_to_exit 00077 SendL IdTypePIC ;send PIC type 7F52 0E41 M movlw car 7F54 6EAD M movwf TXREG 7F56 00078 MainLoop 00079 SendL 'K' ; "-Everything OK, ready and waiting." 7F56 0E4B M movlw car 7F58 6EAD M movwf TXREG 7F5A 00080 mainl 7F5A 6A00 00081 clrf crc 7F5C D83E 00082 rcall Receive ;Upper 7F5E 6EF8 00083 movwf TBLPTRU 7F60 6E07 00084 movwf flag ;(for EEPROM and CFG cases) 7F62 D83B 00085 rcall Receive ;Hi 7F64 6EF7 00086 movwf TBLPTRH 7F66 6EA9 00087 movwf EEADR ;(for EEPROM case) 7F68 D838 00088 rcall Receive ;Lo 7F6A 6EF6 00089 movwf TBLPTRL 7F6C 6EA8 00090 movwf EEDATA ;(for EEPROM case) 00091 7F6E D835 00092 rcall Receive ;count 7F70 6E01 00093 movwf i Message [305] : Using default destination of 1 (file). 7F72 2A01 00094 incf i 7F74 EE00 F009 00095 lfsr FSR0, (buffer-1) 7F78 00096 rcvoct ;read 64+1 bytes 7F78 6EF5 00097 movwf TABLAT ;prepare for cfg; => store byte before crc 7F7A D82F 00098 rcall Receive 7F7C 6EEC 00099 movwf PREINC0 Message [305] : Using default destination of 1 (file). 7F7E 2E01 00100 decfsz i 7F80 D7FB 00101 bra rcvoct 00102 7F82 6600 00103 tstfsz crc ;check crc 7F84 D01F 00104 bra ziieroare 7F86 AC07 00105 btfss flag,6 ;is EEPROM data? 7F88 D003 00106 bra noeeprom 7F8A 0E04 00107 movlw b'00000100' ;Setup eeprom 7F8C D81E 00108 rcall Write 7F8E D018 00109 bra waitwre gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 10 LOC OBJECT CODE LINE SOURCE TEXT VALUE 7F90 00110 noeeprom 7F90 AE07 00111 btfss flag,7 ;is CFG data? 7F92 D004 00112 bra noconfig 7F94 000C 00113 tblwt* ;write TABLAT(byte before crc) to TBLPTR*** 7F96 0EC4 00114 movlw b'11000100' ;Setup cfg 7F98 D818 00115 rcall Write 7F9A D012 00116 bra waitwre 7F9C 00117 noconfig 00118 ;write 7F9C 00119 eraseloop 7F9C 0E94 00120 movlw b'10010100' ; Setup erase 7F9E D815 00121 rcall Write 7FA0 000A 00122 TBLRD*- ; point to adr-1 00123 7FA2 00124 writebigloop 7FA2 0E08 00125 movlw 8 ; 8groups 7FA4 6E05 00126 movwf counter_hi 7FA6 EE00 F00A 00127 lfsr FSR0,buffer 7FAA 00128 writesloop 7FAA 0E08 00129 movlw 8 ; 8bytes = 4instr 7FAC 6E06 00130 movwf counter_lo 7FAE 00131 writebyte 7FAE 50EE 00132 movf POSTINC0,w ; put 1 byte 7FB0 6EF5 00133 movwf TABLAT 7FB2 000F 00134 tblwt+* Message [305] : Using default destination of 1 (file). 7FB4 2E06 00135 decfsz counter_lo 7FB6 D7FB 00136 bra writebyte 00137 7FB8 0E84 00138 movlw b'10000100' ; Setup writes 7FBA D807 00139 rcall Write Message [305] : Using default destination of 1 (file). 7FBC 2E05 00140 decfsz counter_hi 7FBE D7F5 00141 bra writesloop 7FC0 00142 waitwre 00143 ;btfsc EECON1,WR ;for eeprom writes (wait to finish write) 00144 ;bra waitwre ;no need: round trip time with PC bigger than 4ms 00145 7FC0 94A6 00146 bcf EECON1,WREN ;disable writes 7FC2 D7C9 00147 bra MainLoop 00148 7FC4 00149 ziieroare ;CRC failed 00150 SendL 'N' 7FC4 0E4E M movlw car 7FC6 6EAD M movwf TXREG 7FC8 D7C8 00151 bra mainl 00152 00153 ;******** procedures ****************** 00154 7FCA 00155 Write 7FCA 6EA6 00156 movwf EECON1 7FCC 0E55 00157 movlw 0x55 7FCE 6EA7 00158 movwf EECON2 7FD0 0EAA 00159 movlw 0xAA gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 11 LOC OBJECT CODE LINE SOURCE TEXT VALUE 7FD2 6EA7 00160 movwf EECON2 7FD4 82A6 00161 bsf EECON1,WR ;WRITE 7FD6 0000 00162 nop 00163 ;nop 7FD8 0012 00164 return 00165 00166 7FDA 00167 Receive 7FDA 0E0B 00168 movlw xtal/2000000+1 ; for 20MHz => 11 => 1second delay 7FDC 6E02 00169 movwf cnt1 7FDE 00170 rpt2 7FDE 6A03 00171 clrf cnt2 7FE0 00172 rpt3 7FE0 6A04 00173 clrf cnt3 7FE2 00174 rptc 7FE2 AA9E 00175 btfss PIR1,RCIF ;test RX 7FE4 D003 00176 bra notrcv 7FE6 50AE 00177 movf RCREG,w ;return read data in W 7FE8 2600 00178 addwf crc,f ;compute crc 7FEA 0012 00179 return 7FEC 00180 notrcv Message [305] : Using default destination of 1 (file). 7FEC 2E04 00181 decfsz cnt3 7FEE D7F9 00182 bra rptc Message [305] : Using default destination of 1 (file). 7FF0 2E03 00183 decfsz cnt2 7FF2 D7F6 00184 bra rpt3 Message [305] : Using default destination of 1 (file). 7FF4 2E02 00185 decfsz cnt1 7FF6 D7F3 00186 bra rpt2 00187 ;timeout: 7FF8 00188 way_to_exit 7FF8 9EAB 00189 bcf RCSTA, SPEN ; deactivate UART 7FFA D79E 00190 bra first_address 00191 ;************************************************************* 00192 ; After reset 00193 ; Do not expect the memory to be zero, 00194 ; Do not expect registers to be initialised like in catalog. 00195 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 12 SYMBOL TABLE LABEL VALUE A 00000000 ACCESS 00000000 ACKDT 00000005 ACKEN 00000004 ACKSTAT 00000006 ADCON0 00000FC2 ADCON1 00000FC1 ADCS0 00000006 ADCS1 00000007 ADCS2 00000006 ADDEN 00000003 ADFM 00000007 ADIE 00000006 ADIF 00000006 ADIP 00000006 ADON 00000000 ADRESH 00000FC4 ADRESL 00000FC3 AN0 00000000 AN1 00000001 AN2 00000002 AN3 00000003 AN4 00000005 AbsResult 0000061C BANKED 00000001 BCLIE 00000003 BCLIF 00000003 BCLIP 00000003 BF 00000000 BOR 00000000 BRGH 00000002 BSR 00000FE0 C 00000000 CCP1 00000002 CCP1CON 00000FBD CCP1IE 00000002 CCP1IF 00000002 CCP1IP 00000002 CCP1M0 00000000 CCP1M1 00000001 CCP1M2 00000002 CCP1M3 00000003 CCP1X 00000005 CCP1Y 00000004 CCP2 00000001 CCP2A 00000003 CCP2CON 00000FBA CCP2IE 00000000 CCP2IF 00000000 CCP2IP 00000000 CCP2M0 00000000 CCP2M1 00000001 CCP2M2 00000002 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 13 LOC OBJECT CODE LINE SOURCE TEXT VALUE CCP2M3 00000003 CCP2X 00000005 CCP2Y 00000004 CCPR1H 00000FBF CCPR1L 00000FBE CCPR2H 00000FBC CCPR2L 00000FBB CFGS 00000006 CHS0 00000003 CHS1 00000004 CHS2 00000005 CK 00000006 CKE 00000006 CKP 00000004 CLKO 00000006 CREN 00000004 CSRC 00000007 D 00000005 DATA_ADDRESS 00000005 DC 00000001 DC1B0 00000004 DC1B1 00000005 DC2B0 00000004 DC2B1 00000005 DONE 00000002 D_A 00000005 EEADR 00000FA9 EECON1 00000FA6 EECON2 00000FA7 EEDATA 00000FA8 EEIE 00000004 EEIF 00000004 EEIP 00000004 EEPGD 00000007 FAST 00000001 FERR 00000002 FREE 00000004 FSR0 00000000 FSR0H 00000FEA FSR0L 00000FE9 FSR1 00000001 FSR1H 00000FE2 FSR1L 00000FE1 FSR2 00000002 FSR2H 00000FDA FSR2L 00000FD9 GCEN 00000007 GIE 00000007 GIEH 00000007 GIEL 00000006 GO 00000002 GO_DONE 00000002 I2C_DAT 00000005 I2C_READ 00000002 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 14 LOC OBJECT CODE LINE SOURCE TEXT VALUE I2C_START 00000003 I2C_STOP 00000004 INDF0 00000FEF INDF1 00000FE7 INDF2 00000FDF INT0 00000000 INT0E 00000004 INT0F 00000001 INT0IE 00000004 INT0IF 00000001 INT1 00000001 INT1IE 00000003 INT1IF 00000000 INT1IP 00000006 INT2 00000002 INT2IE 00000004 INT2IF 00000001 INT2IP 00000007 INTCON 00000FF2 INTCON1 00000FF2 INTCON2 00000FF1 INTCON3 00000FF0 INTEDG0 00000006 INTEDG1 00000005 INTEDG2 00000004 IPEN 00000007 IPR1 00000F9F IPR2 00000FA2 IRVST 00000005 IdTypePIC 00000041 IntrareBootloader 00007F40 LATA 00000F89 LATB 00000F8A LATC 00000F8B LVDCON 00000FD2 LVDEN 00000004 LVDIE 00000002 LVDIF 00000002 LVDIN 00000005 LVDIP 00000002 LVDL0 00000000 LVDL1 00000001 LVDL2 00000002 LVDL3 00000003 MainLoop 00007F56 N 00000004 NOT_A 00000005 NOT_ADDRESS 00000005 NOT_BOR 00000000 NOT_DONE 00000002 NOT_PD 00000002 NOT_POR 00000001 NOT_RBPU 00000007 NOT_RC8 00000006 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 15 LOC OBJECT CODE LINE SOURCE TEXT VALUE NOT_RI 00000004 NOT_T1SYNC 00000002 NOT_T3SYNC 00000002 NOT_TO 00000003 NOT_TX8 00000006 NOT_W 00000002 NOT_WRITE 00000002 OERR 00000001 OSC2 00000006 OSCCON 00000FD3 OV 00000003 P 00000004 PCFG0 00000000 PCFG1 00000001 PCFG2 00000002 PCFG3 00000003 PCL 00000FF9 PCLATH 00000FFA PCLATU 00000FFB PD 00000002 PEIE 00000006 PEN 00000002 PIE1 00000F9D PIE2 00000FA0 PIR1 00000F9E PIR2 00000FA1 PLUSW0 00000FEB PLUSW1 00000FE3 PLUSW2 00000FDB POR 00000001 PORTA 00000F80 PORTB 00000F81 PORTC 00000F82 POSTDEC0 00000FED POSTDEC1 00000FE5 POSTDEC2 00000FDD POSTINC0 00000FEE POSTINC1 00000FE6 POSTINC2 00000FDE PR2 00000FCB PREINC0 00000FEC PREINC1 00000FE4 PREINC2 00000FDC PRODH 00000FF4 PRODL 00000FF3 PSA 00000003 PSPIE 00000007 PSPIF 00000007 PSPIP 00000007 R 00000002 RA0 00000000 RA1 00000001 RA2 00000002 RA3 00000003 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 16 LOC OBJECT CODE LINE SOURCE TEXT VALUE RA4 00000004 RA5 00000005 RA6 00000006 RB0 00000000 RB1 00000001 RB2 00000002 RB3 00000003 RB4 00000004 RB5 00000005 RB6 00000006 RB7 00000007 RBIE 00000003 RBIF 00000000 RBIP 00000000 RBPU 00000007 RC0 00000000 RC1 00000001 RC2 00000002 RC3 00000003 RC4 00000004 RC5 00000005 RC6 00000006 RC7 00000007 RC8_9 00000006 RC9 00000006 RCD8 00000000 RCEN 00000003 RCIE 00000005 RCIF 00000005 RCIP 00000005 RCON 00000FD0 RCREG 00000FAE RCSTA 00000FAB RD 00000000 RD16 00000007 READ_WRITE 00000002 RI 00000004 RSEN 00000001 RX 00000007 RX9 00000006 RX9D 00000000 R_W 00000002 Receive 00007FDA RoundResult 0001BBE4 S 00000003 SCK 00000003 SCL 00000003 SCS 00000000 SDA 00000004 SDI 00000004 SDO 00000005 SEN 00000000 SMP 00000007 SPBRG 00000FAF gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 17 LOC OBJECT CODE LINE SOURCE TEXT VALUE SPEN 00000007 SREN 00000005 SS 00000005 SSPADD 00000FC8 SSPBUF 00000FC9 SSPCON1 00000FC6 SSPCON2 00000FC5 SSPEN 00000005 SSPIE 00000003 SSPIF 00000003 SSPIP 00000003 SSPM0 00000000 SSPM1 00000001 SSPM2 00000002 SSPM3 00000003 SSPOV 00000006 SSPSTAT 00000FC7 STATUS 00000FD8 STKFUL 00000007 STKPTR 00000FFC STKUNF 00000006 SWDTE 00000000 SWDTEN 00000000 SYNC 00000004 T08BIT 00000006 T0CKI 00000004 T0CON 00000FD5 T0CS 00000005 T0IE 00000005 T0IF 00000002 T0IP 00000002 T0PS0 00000000 T0PS1 00000001 T0PS2 00000002 T0SE 00000004 T1CKI 00000000 T1CKPS0 00000004 T1CKPS1 00000005 T1CON 00000FCD T1INSYNC 00000002 T1OSCEN 00000003 T1OSI 00000001 T1OSO 00000000 T1SYNC 00000002 T2CKPS0 00000000 T2CKPS1 00000001 T2CON 00000FCA T3CCP1 00000003 T3CCP2 00000006 T3CKPS0 00000004 T3CKPS1 00000005 T3CON 00000FB1 T3INSYNC 00000002 T3SYNC 00000002 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 18 LOC OBJECT CODE LINE SOURCE TEXT VALUE TABLAT 00000FF5 TBLPTRH 00000FF7 TBLPTRL 00000FF6 TBLPTRU 00000FF8 TMR0H 00000FD7 TMR0IE 00000005 TMR0IF 00000002 TMR0IP 00000002 TMR0L 00000FD6 TMR0ON 00000007 TMR1CS 00000001 TMR1H 00000FCF TMR1IE 00000000 TMR1IF 00000000 TMR1IP 00000000 TMR1L 00000FCE TMR1ON 00000000 TMR2 00000FCC TMR2IE 00000001 TMR2IF 00000001 TMR2IP 00000001 TMR2ON 00000002 TMR3CS 00000001 TMR3H 00000FB3 TMR3IE 00000001 TMR3IF 00000001 TMR3IP 00000001 TMR3L 00000FB2 TMR3ON 00000000 TO 00000003 TOSH 00000FFE TOSL 00000FFD TOSU 00000FFF TOUTPS0 00000003 TOUTPS1 00000004 TOUTPS2 00000005 TOUTPS3 00000006 TRISA 00000F92 TRISB 00000F93 TRISC 00000F94 TRMT 00000001 TX 00000006 TX8_9 00000006 TX9 00000006 TX9D 00000000 TXD8 00000000 TXEN 00000005 TXIE 00000004 TXIF 00000004 TXIP 00000004 TXREG 00000FAD TXSTA 00000FAC UA 00000001 VREFM 00000002 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 19 LOC OBJECT CODE LINE SOURCE TEXT VALUE VREFP 00000003 W 00000000 WCOL 00000007 WDTCON 00000FD1 WR 00000001 WREG 00000FE8 WREN 00000002 WRERR 00000003 Write 00007FCA Z 00000002 _BORV_20_2L 000000FF _BORV_27_2L 000000FB _BORV_42_2L 000000F7 _BORV_45_2L 000000F3 _BOR_OFF_2L 000000FD _BOR_ON_2L 000000FF _CCP2MX_OFF_3H 000000FE _CCP2MX_ON_3H 000000FF _CONFIG1H 00300001 _CONFIG1L 00300000 _CONFIG2H 00300003 _CONFIG2L 00300002 _CONFIG3H 00300005 _CONFIG3L 00300004 _CONFIG4H 00300007 _CONFIG4L 00300006 _CONFIG5H 00300009 _CONFIG5L 00300008 _CONFIG6H 0030000B _CONFIG6L 0030000A _CONFIG7H 0030000D _CONFIG7L 0030000C _CP0_OFF_5L 000000FF _CP0_ON_5L 000000FE _CP1_OFF_5L 000000FF _CP1_ON_5L 000000FD _CP2_OFF_5L 000000FF _CP2_ON_5L 000000FB _CP3_OFF_5L 000000FF _CP3_ON_5L 000000F7 _CPB_OFF_5H 000000FF _CPB_ON_5H 000000BF _CPD_OFF_5H 000000FF _CPD_ON_5H 0000007F _DEBUG_OFF_4L 000000FF _DEBUG_ON_4L 0000007F _DEVID1 003FFFFE _DEVID2 003FFFFF _EBTR0_OFF_7L 000000FF _EBTR0_ON_7L 000000FE _EBTR1_OFF_7L 000000FF _EBTR1_ON_7L 000000FD _EBTR2_OFF_7L 000000FF _EBTR2_ON_7L 000000FB gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 20 LOC OBJECT CODE LINE SOURCE TEXT VALUE _EBTR3_OFF_7L 000000FF _EBTR3_ON_7L 000000F7 _EBTRB_OFF_7H 000000FF _EBTRB_ON_7H 000000BF _ECIO_OSC_1H 000000FD _EC_OSC_1H 000000FC _HSPLL_OSC_1H 000000FE _HS_OSC_1H 000000FA _IDLOC0 00200000 _IDLOC1 00200001 _IDLOC2 00200002 _IDLOC3 00200003 _IDLOC4 00200004 _IDLOC5 00200005 _IDLOC6 00200006 _IDLOC7 00200007 _LP_OSC_1H 000000F8 _LVP_OFF_4L 000000FB _LVP_ON_4L 000000FF _OSCS_OFF_1H 000000FF _OSCS_ON_1H 000000DF _PWRT_OFF_2L 000000FF _PWRT_ON_2L 000000FE _RCIO_OSC_1H 000000FF _RC_OSC_1H 000000FB _STVR_OFF_4L 000000FE _STVR_ON_4L 000000FF _WDTPS_128_2H 000000FF _WDTPS_16_2H 000000F9 _WDTPS_1_2H 000000F1 _WDTPS_2_2H 000000F3 _WDTPS_32_2H 000000FB _WDTPS_4_2H 000000F5 _WDTPS_64_2H 000000FD _WDTPS_8_2H 000000F7 _WDT_OFF_2H 000000FE _WDT_ON_2H 000000FF _WRT0_OFF_6L 000000FF _WRT0_ON_6L 000000FE _WRT1_OFF_6L 000000FF _WRT1_ON_6L 000000FD _WRT2_OFF_6L 000000FF _WRT2_ON_6L 000000FB _WRT3_OFF_6L 000000FF _WRT3_ON_6L 000000F7 _WRTB_OFF_6H 000000FF _WRTB_ON_6H 000000BF _WRTC_OFF_6H 000000FF _WRTC_ON_6H 000000DF _WRTD_OFF_6H 000000FF _WRTD_ON_6H 0000007F _XT_OSC_1H 000000F9 __18F252 00000001 baud 0001C200 gpasm-0.13.5 beta tinybld18F.asm8-31-2008 21:02:44 PAGE 21 LOC OBJECT CODE LINE SOURCE TEXT VALUE baud_real 0001BBE4 buffer 0000000A cnt1 00000002 cnt2 00000003 cnt3 00000004 counter_hi 00000005 counter_lo 00000006 crc 00000000 dummy4crc 0000004A eraseloop 00007F9C errpercent 00000001 flag 00000007 i 00000001 mainl 00007F5A noconfig 00007F9C noeeprom 00007F90 notrcv 00007FEC rcvoct 00007F78 rpt2 00007FDE rpt3 00007FE0 rptc 00007FE2 spbrg_value 0000000A waitwre 00007FC0 way_to_exit 00007FF8 writebigloop 00007FA2 writebyte 00007FAE writesloop 00007FAA xtal 01312D00 ziieroare 00007FC4 DDRA TRISA DDRB TRISB DDRC TRISC first_address max_flash-200 max_flash 0x8000 MEMORY USAGE MAP ('X' = Used, '-' = Unused) 00000000 : XXXX------------ ---------------- ---------------- ---------------- 00007f00 : ---------------- ---------------- ---------------- --------XXXXXXXX 00007f40 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 00007f80 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 00007fc0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXX---- 00300000 : XXXX--XX-------- ---------------- ---------------- ---------------- All other memory blocks unused. Program Memory Words Used: 103 Errors : 0 Warnings : 0 reported, 0 suppressed Messages : 7 reported, 0 suppressed