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