1 |   |
2 |           ;  Microchip  MPLAB  XC8  C  Compiler  V1.43 |
3 |           ;  Copyright  (C)  1984-2017  HI-TECH  Software |
4 |   |
5 |           ;  Auto-generated  runtime  startup  code  for  final  link  stage. |
6 |   |
7 |           ; |
8 |           ;  Compiler  options: |
9 |           ; |
10 |           ;  --chip=18F8720  -G  \ |
11 |           ;  -mdist/default/production/FW_PIC18F8720.production.map  --double=24  \ |
12 |           ;  --float=24  --emi=wordwrite  \ |
13 |           ;  --opt=+asm,+asmfile,-speed,+space,+debug,+local  --addrqual=ignore  \ |
14 |           ;  --mode=free  -P  -N255  --warn=-3  --asmlist  -DXPRJ_default=default  \ |
15 |           ;  --summary=default,+psect,+class,+mem,-hex,+file  --html  \ |
16 |           ;  --output=default,-inhx032  \ |
17 |           ;  --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,-plib  \ |
18 |           ;  --output=-mcof,+elf:multilocs  --stack=compiled:auto:auto:auto  \ |
19 |           ;  --errformat=%f:%l:  error:  (%n)  %s  \ |
20 |           ;  --warnformat=%f:%l:  warning:  (%n)  %s  \ |
21 |           ;  --msgformat=%f:%l:  advisory:  (%n)  %s  --summary=+xml  \ |
22 |           ;  --summarydir=dist/default/production/memoryfile.xml  \ |
23 |           ;  -odist/default/production/FW_PIC18F8720.production.elf  \ |
24 |           ;  build/default/production/Main.p1  build/default/production/display.p1  \ |
25 |           ;  build/default/production/hsv.p1  build/default/production/i2c.p1  \ |
26 |           ;  build/default/production/i2ca.p1  build/default/production/keyboard.p1  \ |
27 |           ;  build/default/production/ledI2C.p1  build/default/production/rtc.p1 |
28 |           ; |
29 |   |
30 |   |
31 |           processor       18F8720 |
32 |   |
33 |   GLOBAL  ___extmem_base |
34 |   ___extmem_base  EQU  131072 |
35 |   |
36 |           GLOBAL  _main,start |
37 |           FNROOT  _main |
38 |   |
39 |           pic18cxx        equ     1 |
40 |   |
41 |           psect   config,class=CONFIG,delta=1,noexec |
42 |           psect   idloc,class=IDLOC,delta=1,noexec |
43 |           psect   const,class=CONST,delta=1,reloc=2,noexec |
44 |           psect   smallconst,class=SMALLCONST,delta=1,reloc=2,noexec |
45 |           psect   mediumconst,class=MEDIUMCONST,delta=1,reloc=2,noexec |
46 |           psect   rbss,class=COMRAM,space=1,noexec |
47 |           psect   bss,class=RAM,space=1,noexec |
48 |           psect   rdata,class=COMRAM,space=1,noexec |
49 |           psect   irdata,class=CODE,space=0,reloc=2,noexec |
50 |           psect   bss,class=RAM,space=1,noexec |
51 |           psect   data,class=RAM,space=1,noexec |
52 |           psect   idata,class=CODE,space=0,reloc=2,noexec |
53 |           psect   nvrram,class=COMRAM,space=1,noexec |
54 |           psect   nvbit,class=COMRAM,bit,space=1,noexec |
55 |           psect   temp,ovrld,class=COMRAM,space=1,noexec |
56 |           psect   struct,ovrld,class=COMRAM,space=1,noexec |
57 |           psect   rbit,class=COMRAM,bit,space=1,noexec |
58 |           psect   bigbss,class=BIGRAM,space=1,noexec |
59 |           psect   bigdata,class=BIGRAM,space=1,noexec |
60 |           psect   ibigdata,class=CODE,space=0,reloc=2,noexec |
61 |           psect   farbss,class=FARRAM,space=0,reloc=2,delta=1,noexec |
62 |           psect   nvFARRAM,class=FARRAM,space=0,reloc=2,delta=1,noexec |
63 |           psect   fardata,class=FARRAM,space=0,reloc=2,delta=1,noexec |
64 |           psect   ifardata,class=CODE,space=0,reloc=2,delta=1,noexec |
65 |   |
66 |           psect   reset_vec,class=CODE,delta=1,reloc=2 |
67 |           psect   powerup,class=CODE,delta=1,reloc=2 |
68 |           psect   init,class=CODE,delta=1,reloc=2 |
69 |           psect   text,class=CODE,delta=1,reloc=2 |
70 |   GLOBAL  intlevel0,intlevel1,intlevel2 |
71 |   intlevel0: |
72 |   intlevel1: |
73 |   intlevel2: |
74 |   GLOBAL  intlevel3 |
75 |   intlevel3: |
76 |           psect   clrtext,class=CODE,delta=1,reloc=2 |
77 |   |
78 |           psect   intcode,class=CODE,delta=1,reloc=2 |
79 |           psect   intcode_body,class=CODE,delta=1,reloc=2 |
80 |           psect   intcodelo,class=CODE,delta=1,reloc=2 |
81 |           psect   intret,class=CODE,delta=1,reloc=2 |
82 |           psect   intentry,class=CODE,delta=1,reloc=2 |
83 |           psect   intsave_regs,class=BIGRAM,space=1 |
84 |   |
85 |           psect   eeprom_data,class=EEDATA,delta=1,noexec |
86 |           psect   smallconst |
87 |           GLOBAL  __smallconst |
88 |   __smallconst: |
89 |           psect   mediumconst |
90 |           GLOBAL  __mediumconst |
91 |   __mediumconst: |
92 |   wreg    EQU 0FE8h |
93 |   fsr0l   EQU        0FE9h |
94 |   fsr0h   EQU        0FEAh |
95 |   fsr1l   EQU        0FE1h |
96 |   fsr1h   EQU        0FE2h |
97 |   fsr2l   EQU        0FD9h |
98 |   fsr2h   EQU        0FDAh |
99 |   postinc0        EQU     0FEEh |
100 |   postdec0        EQU     0FEDh |
101 |   postinc1        EQU     0FE6h |
102 |   postdec1        EQU     0FE5h |
103 |   postinc2        EQU     0FDEh |
104 |   postdec2        EQU     0FDDh |
105 |   tblptrl EQU      0FF6h |
106 |   tblptrh EQU      0FF7h |
107 |   tblptru EQU      0FF8h |
108 |   tablat    EQU       0FF5h |
109 |   |
110 |           PSECT   ramtop,class=RAM,noexec |
111 |           GLOBAL  __S1                  ;  top  of  RAM  usage |
112 |           GLOBAL  __ramtop |
113 |           GLOBAL  __LRAM,__HRAM |
114 |   __ramtop: |
115 |   |
116 |           psect   reset_vec |
117 |   reset_vec: |
118 |           nop     ;  NOP  for  reset  vector  (precedes  GOTO  instruction) |
119 |           ;  No  powerup  routine |
120 |           global  start |
121 |   |
122 |   ;  jump  to  start |
123 |           goto  start |
124 |           GLOBAL  __accesstop |
125 |   __accesstop  EQU  96 |
126 |   |
127 |   ;Initialize  the  stack  pointer  (FSR1) |
128 |           global  stacklo,  stackhi |
129 |           stacklo equ      0127h |
130 |           stackhi equ      0EFFh |
131 |   |
132 |   |
133 |           psect   stack,class=STACK,space=2,noexec |
134 |           global  ___sp,___inthi_sp,___intlo_sp |
135 |   ___sp: |
136 |   ___inthi_sp: |
137 |   ___intlo_sp: |
138 |   |
139 |   |
140 |   |
141 |           psect   init |
142 |   start: |
143 |           global  start_initialization |
144 |           goto  start_initialization       ;jump  to  C  runtime  clear  &  initialization |
145 |   |
146 |   ;  Config  register  IDLOC0  @  0x200000 |
147 |   ;       unspecified  using  default  value |
148 |   |
149 |           psect   idloc,class=IDLOC,delta=1,noexec |
150 |                   org  0x0 |
151 |                   db  0xFF |
152 |   |
153 |   ;  Config  register  IDLOC1  @  0x200001 |
154 |   ;       unspecified  using  default  value |
155 |   |
156 |           psect   idloc,class=IDLOC,delta=1,noexec |
157 |                   org  0x1 |
158 |                   db  0xFF |
159 |   |
160 |   ;  Config  register  IDLOC2  @  0x200002 |
161 |   ;       unspecified  using  default  value |
162 |   |
163 |           psect   idloc,class=IDLOC,delta=1,noexec |
164 |                   org  0x2 |
165 |                   db  0xFF |
166 |   |
167 |   ;  Config  register  IDLOC3  @  0x200003 |
168 |   ;       unspecified  using  default  value |
169 |   |
170 |           psect   idloc,class=IDLOC,delta=1,noexec |
171 |                   org  0x3 |
172 |                   db  0xFF |
173 |   |
174 |   ;  Config  register  IDLOC4  @  0x200004 |
175 |   ;       unspecified  using  default  value |
176 |   |
177 |           psect   idloc,class=IDLOC,delta=1,noexec |
178 |                   org  0x4 |
179 |                   db  0xFF |
180 |   |
181 |   ;  Config  register  IDLOC5  @  0x200005 |
182 |   ;       unspecified  using  default  value |
183 |   |
184 |           psect   idloc,class=IDLOC,delta=1,noexec |
185 |                   org  0x5 |
186 |                   db  0xFF |
187 |   |
188 |   ;  Config  register  IDLOC6  @  0x200006 |
189 |   ;       unspecified  using  default  value |
190 |   |
191 |           psect   idloc,class=IDLOC,delta=1,noexec |
192 |                   org  0x6 |
193 |                   db  0xFF |
194 |   |
195 |   ;  Config  register  IDLOC7  @  0x200007 |
196 |   ;       unspecified  using  default  value |
197 |   |
198 |           psect   idloc,class=IDLOC,delta=1,noexec |
199 |                   org  0x7 |
200 |                   db  0xFF |
201 |   |
202 |   ;  Padding  undefined  space |
203 |           psect   config,class=CONFIG,delta=1,noexec |
204 |                   org  0x0 |
205 |                   db  0xFF |
206 |   |
207 |   ;  Config  register  CONFIG1H  @  0x300001 |
208 |   ;       Oscillator  Selection  bits |
209 |   ;       OSC  =  ECIO,  EC  oscillator  w/  OSC2  configured  as  RA6 |
210 |   ;       Oscillator  System  Clock  Switch  Enable  bit |
211 |   ;       OSCS  =  OFF,  Oscillator  system  clock  switch  option  is  disabled  (main  oscillator  is  source) |
212 |   |
213 |           psect   config,class=CONFIG,delta=1,noexec |
214 |                   org  0x1 |
215 |                   db  0x25 |
216 |   |
217 |   ;  Config  register  CONFIG2L  @  0x300002 |
218 |   ;       Power-up  Timer  Enable  bit |
219 |   ;       PWRT  =  OFF,  PWRT  disabled |
220 |   ;       Brown-out  Reset  Enable  bit |
221 |   ;       BOR  =  OFF,  Brown-out  Reset  disabled |
222 |   ;       Brown-out  Reset  Voltage  bits |
223 |   ;       BORV  =  25,  VBOR  set  to  2.5V |
224 |   |
225 |           psect   config,class=CONFIG,delta=1,noexec |
226 |                   org  0x2 |
227 |                   db  0xD |
228 |   |
229 |   ;  Config  register  CONFIG2H  @  0x300003 |
230 |   ;       Watchdog  Timer  Enable  bit |
231 |   ;       WDT  =  OFF,  WDT  disabled  (control  is  placed  on  the  SWDTEN  bit) |
232 |   ;       Watchdog  Timer  Postscale  Select  bits |
233 |   ;       WDTPS  =  128,  1:128 |
234 |   |
235 |           psect   config,class=CONFIG,delta=1,noexec |
236 |                   org  0x3 |
237 |                   db  0xE |
238 |   |
239 |   ;  Config  register  CONFIG3L  @  0x300004 |
240 |   ;       Processor  Mode  Select  bits |
241 |   ;       MODE  =  MC,  Microcontroller  mode |
242 |   ;       External  Bus  Data  Wait  Enable  bit |
243 |   ;       WAIT  =  OFF,  Wait  selections  unavailable  for  table  reads  and  table  writes |
244 |   |
245 |           psect   config,class=CONFIG,delta=1,noexec |
246 |                   org  0x4 |
247 |                   db  0x83 |
248 |   |
249 |   ;  Config  register  CONFIG3H  @  0x300005 |
250 |   ;       CCP2  Mux  bit |
251 |   ;       CCP2MUX  =  OFF,  CCP2  is  multiplexed  with  RB3  in  Extended  Microcontroller,  Microprocessor  or  Microprocessor  with  Boot  Block  mode.  Or  with  RE7  in  Microcontroller  mode. |
252 |   |
253 |           psect   config,class=CONFIG,delta=1,noexec |
254 |                   org  0x5 |
255 |                   db  0x2 |
256 |   |
257 |   ;  Config  register  CONFIG4L  @  0x300006 |
258 |   ;       Stack  Full/Underflow  Reset  Enable  bit |
259 |   ;       STVR  =  OFF,  Stack  full/underflow  will  not  cause  Reset |
260 |   ;       Low-Voltage  ICSP  Enable  bit |
261 |   ;       LVP  =  OFF,  Low-voltage  ICSP  disabled |
262 |   ;       Background  Debugger  Enable  bit |
263 |   ;       DEBUG  =  OFF,  Background  debugger  disabled.  RB6  and  RB7  configured  as  general  purpose  I/O  pins. |
264 |   |
265 |           psect   config,class=CONFIG,delta=1,noexec |
266 |                   org  0x6 |
267 |                   db  0x80 |
268 |   |
269 |   ;  Padding  undefined  space |
270 |           psect   config,class=CONFIG,delta=1,noexec |
271 |                   org  0x7 |
272 |                   db  0xFF |
273 |   |
274 |   ;  Config  register  CONFIG5L  @  0x300008 |
275 |   ;       Code  Protection  bit |
276 |   ;       CP0  =  OFF,  Block  0  (000200-003FFFh)  not  code-protected |
277 |   ;       Code  Protection  bit |
278 |   ;       CP1  =  OFF,  Block  1  (004000-007FFFh)  not  code-protected |
279 |   ;       Code  Protection  bit |
280 |   ;       CP2  =  OFF,  Block  2  (008000-00BFFFh)  not  code-protected |
281 |   ;       Code  Protection  bit |
282 |   ;       CP3  =  OFF,  Block  3  (00C000-00FFFFh)  not  code-protected |
283 |   ;       Code  Protection  bit |
284 |   ;       CP4  =  OFF,  Block  4  (010000-013FFFh)  not  code-protected |
285 |   ;       Code  Protection  bit |
286 |   ;       CP5  =  OFF,  Block  5  (014000-017FFFh)  not  code-protected |
287 |   ;       Code  Protection  bit |
288 |   ;       CP6  =  OFF,  Block  6  (018000-01BFFFh)  not  code-protected |
289 |   ;       Code  Protection  bit |
290 |   ;       CP7  =  OFF,  Block  7  (01C000-01FFFFh)  not  code-protected |
291 |   |
292 |           psect   config,class=CONFIG,delta=1,noexec |
293 |                   org  0x8 |
294 |                   db  0xFF |
295 |   |
296 |   ;  Config  register  CONFIG5H  @  0x300009 |
297 |   ;       Boot  Block  Code  Protection  bit |
298 |   ;       CPB  =  OFF,  Boot  Block  (000000-0001FFh)  not  code-protected |
299 |   ;       Data  EEPROM  Code  Protection  bit |
300 |   ;       CPD  =  OFF,  Data  EEPROM  not  code-protected |
301 |   |
302 |           psect   config,class=CONFIG,delta=1,noexec |
303 |                   org  0x9 |
304 |                   db  0xC0 |
305 |   |
306 |   ;  Config  register  CONFIG6L  @  0x30000A |
307 |   ;       Write  Protection  bit |
308 |   ;       WRT0  =  OFF,  Block  0  (000200-003FFFh)  not  write-protected |
309 |   ;       Write  Protection  bit |
310 |   ;       WRT1  =  OFF,  Block  1  (004000-007FFFh)  not  write-protected |
311 |   ;       Write  Protection  bit |
312 |   ;       WRT2  =  OFF,  Block  2  (008000-00BFFFh)  not  write-protected |
313 |   ;       Write  Protection  bit |
314 |   ;       WRT3  =  OFF,  Block  3  (00C000-00FFFFh)  not  write-protected |
315 |   ;       Write  Protection  bit |
316 |   ;       WRT4  =  OFF,  Block  4  (010000-013FFFh)  not  write-protected |
317 |   ;       Write  Protection  bit |
318 |   ;       WRT5  =  OFF,  Block  5  (014000-017FFFh)  not  write-protected |
319 |   ;       Write  Protection  bit |
320 |   ;       WRT6  =  OFF,  Block  6  (018000-01BFFFh)  not  write-protected |
321 |   ;       Write  Protection  bit |
322 |   ;       WRT7  =  OFF,  Block  7  (01C000-01FFFFh)  not  write-protected |
323 |   |
324 |           psect   config,class=CONFIG,delta=1,noexec |
325 |                   org  0xA |
326 |                   db  0xFF |
327 |   |
328 |   ;  Config  register  CONFIG6H  @  0x30000B |
329 |   ;       Configuration  Register  Write  Protection  bit |
330 |   ;       WRTC  =  OFF,  Configuration  registers  (300000-3000FFh)  not  write-protected |
331 |   ;       Boot  Block  Write  Protection  bit |
332 |   ;       WRTB  =  OFF,  Boot  Block  (000000-0001FFh)  not  write-protected |
333 |   ;       Data  EEPROM  Write  Protection  bit |
334 |   ;       WRTD  =  OFF,  Data  EEPROM  not  write-protected |
335 |   |
336 |           psect   config,class=CONFIG,delta=1,noexec |
337 |                   org  0xB |
338 |                   db  0xE0 |
339 |   |
340 |   ;  Config  register  CONFIG7L  @  0x30000C |
341 |   ;       Table  Read  Protection  bit |
342 |   ;       EBTR0  =  OFF,  Block  0  (000200-003FFFh)  not  protected  from  table  reads  executed  in  other  blocks |
343 |   ;       Table  Read  Protection  bit |
344 |   ;       EBTR1  =  OFF,  Block  1  (004000-007FFFh)  not  protected  from  table  reads  executed  in  other  blocks |
345 |   ;       Table  Read  Protection  bit |
346 |   ;       EBTR2  =  OFF,  Block  2  (008000-00BFFFh)  not  protected  from  table  reads  executed  in  other  blocks |
347 |   ;       Table  Read  Protection  bit |
348 |   ;       EBTR3  =  OFF,  Block  3  (00C000-00FFFFh)  not  protected  from  table  reads  executed  in  other  blocks |
349 |   ;       Table  Read  Protection  bit |
350 |   ;       EBTR4  =  OFF,  Block  4  (010000-013FFFh)  not  protected  from  table  reads  executed  in  other  blocks |
351 |   ;       Table  Read  Protection  bit |
352 |   ;       EBTR5  =  OFF,  Block  5  (014000-017FFFh)  not  protected  from  table  reads  executed  in  other  blocks |
353 |   ;       Table  Read  Protection  bit |
354 |   ;       EBTR6  =  OFF,  Block  6  (018000-01BFFFh)  not  protected  from  table  reads  executed  in  other  blocks |
355 |   ;       Table  Read  Protection  bit |
356 |   ;       EBTR7  =  OFF,  Block  7  (01C000-01FFFFh)  not  protected  from  table  reads  executed  in  other  blocks |
357 |   |
358 |           psect   config,class=CONFIG,delta=1,noexec |
359 |                   org  0xC |
360 |                   db  0xFF |
361 |   |
362 |   ;  Config  register  CONFIG7H  @  0x30000D |
363 |   ;       Boot  Block  Table  Read  Protection  bit |
364 |   ;       EBTRB  =  OFF,  Boot  Block  (000000-0001FFh)  not  protected  from  table  reads  executed  in  other  blocks |
365 |   |
366 |           psect   config,class=CONFIG,delta=1,noexec |
367 |                   org  0xD |
368 |                   db  0x40 |
369 |   |
370 |   |
371 |   psect  comram,class=COMRAM,space=1 |
372 |   psect  abs1,class=ABS1,space=1 |
373 |   psect  bigram,class=BIGRAM,space=1 |
374 |   psect  ram,class=RAM,space=1 |
375 |   psect  bank0,class=BANK0,space=1 |
376 |   psect  bank1,class=BANK1,space=1 |
377 |   psect  bank2,class=BANK2,space=1 |
378 |   psect  bank3,class=BANK3,space=1 |
379 |   psect  bank4,class=BANK4,space=1 |
380 |   psect  bank5,class=BANK5,space=1 |
381 |   psect  bank6,class=BANK6,space=1 |
382 |   psect  bank7,class=BANK7,space=1 |
383 |   psect  bank8,class=BANK8,space=1 |
384 |   psect  bank9,class=BANK9,space=1 |
385 |   psect  bank10,class=BANK10,space=1 |
386 |   psect  bank11,class=BANK11,space=1 |
387 |   psect  bank12,class=BANK12,space=1 |
388 |   psect  bank13,class=BANK13,space=1 |
389 |   psect  bank14,class=BANK14,space=1 |
390 |   psect  sfr,class=SFR,space=1 |
391 |   |
392 |   |
393 |           end     start |