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  -mdist/default/debug/FW_PIC18F8720.debug.map  \
11           ;  -D__DEBUG=1  --debugger=pickit3  --double=24  --float=24  --emi=wordwrite  \
12           ;  --opt=+asm,+asmfile,-speed,+space,+debug,+local  --addrqual=ignore  \
13           ;  --mode=free  -P  -N255  --warn=-3  --asmlist  -DXPRJ_default=default  \
14           ;  --summary=default,+psect,+class,+mem,-hex,+file  --html  \
15           ;  --output=default,-inhx032  \
16           ;  --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,-plib  \
17           ;  --output=-mcof,+elf:multilocs  --stack=compiled:auto:auto:auto  \
18           ;  --errformat=%f:%l:  error:  (%n)  %s  \
19           ;  --warnformat=%f:%l:  warning:  (%n)  %s  \
20           ;  --msgformat=%f:%l:  advisory:  (%n)  %s  --rom=default,-1fd30-1ffff  \
21           ;  --ram=default,-ef4-eff,-f9c-f9c,-fd4-fd4,-fdb-fdf,-fe3-fe7,-feb-fef,-ffd-fff  \
22           ;  --summary=+xml  --summarydir=dist/default/debug/memoryfile.xml  \
23           ;  -odist/default/debug/FW_PIC18F8720.debug.elf  \
24           ;  build/default/debug/Main.p1  build/default/debug/display.p1  \
25           ;  build/default/debug/hsv.p1  build/default/debug/i2c.p1  \
26           ;  build/default/debug/i2ca.p1  build/default/debug/keyboard.p1  \
27           ;  build/default/debug/ledI2C.p1  build/default/debug/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  inserted  due  to  debugger  requirements
119  
120           ;  No  powerup  routine
121           global  start
122  
123   ;  jump  to  start
124           goto  start
125           GLOBAL  __accesstop
126   __accesstop  EQU  96
127  
128   ;Initialize  the  stack  pointer  (FSR1)
129           global  stacklo,  stackhi
130           stacklo equ      0127h
131           stackhi equ      0EEEh
132  
133  
134           psect   stack,class=STACK,space=2,noexec
135           global  ___sp,___inthi_sp,___intlo_sp
136   ___sp:
137   ___inthi_sp:
138   ___intlo_sp:
139  
140  
141  
142           psect   init
143   start:
144           global  start_initialization
145           goto  start_initialization       ;jump  to  C  runtime  clear  &  initialization
146  
147   ;  Config  register  IDLOC0  @  0x200000
148   ;       unspecified  using  default  value
149  
150           psect   idloc,class=IDLOC,delta=1,noexec
151                   org  0x0
152                   db  0xFF
153  
154   ;  Config  register  IDLOC1  @  0x200001
155   ;       unspecified  using  default  value
156  
157           psect   idloc,class=IDLOC,delta=1,noexec
158                   org  0x1
159                   db  0xFF
160  
161   ;  Config  register  IDLOC2  @  0x200002
162   ;       unspecified  using  default  value
163  
164           psect   idloc,class=IDLOC,delta=1,noexec
165                   org  0x2
166                   db  0xFF
167  
168   ;  Config  register  IDLOC3  @  0x200003
169   ;       unspecified  using  default  value
170  
171           psect   idloc,class=IDLOC,delta=1,noexec
172                   org  0x3
173                   db  0xFF
174  
175   ;  Config  register  IDLOC4  @  0x200004
176   ;       unspecified  using  default  value
177  
178           psect   idloc,class=IDLOC,delta=1,noexec
179                   org  0x4
180                   db  0xFF
181  
182   ;  Config  register  IDLOC5  @  0x200005
183   ;       unspecified  using  default  value
184  
185           psect   idloc,class=IDLOC,delta=1,noexec
186                   org  0x5
187                   db  0xFF
188  
189   ;  Config  register  IDLOC6  @  0x200006
190   ;       unspecified  using  default  value
191  
192           psect   idloc,class=IDLOC,delta=1,noexec
193                   org  0x6
194                   db  0xFF
195  
196   ;  Config  register  IDLOC7  @  0x200007
197   ;       unspecified  using  default  value
198  
199           psect   idloc,class=IDLOC,delta=1,noexec
200                   org  0x7
201                   db  0xFF
202  
203   ;  Padding  undefined  space
204           psect   config,class=CONFIG,delta=1,noexec
205                   org  0x0
206                   db  0xFF
207  
208   ;  Config  register  CONFIG1H  @  0x300001
209   ;       Oscillator  Selection  bits
210   ;       OSC  =  ECIO,  EC  oscillator  w/  OSC2  configured  as  RA6
211   ;       Oscillator  System  Clock  Switch  Enable  bit
212   ;       OSCS  =  OFF,  Oscillator  system  clock  switch  option  is  disabled  (main  oscillator  is  source)
213  
214           psect   config,class=CONFIG,delta=1,noexec
215                   org  0x1
216                   db  0x25
217  
218   ;  Config  register  CONFIG2L  @  0x300002
219   ;       Power-up  Timer  Enable  bit
220   ;       PWRT  =  OFF,  PWRT  disabled
221   ;       Brown-out  Reset  Enable  bit
222   ;       BOR  =  OFF,  Brown-out  Reset  disabled
223   ;       Brown-out  Reset  Voltage  bits
224   ;       BORV  =  25,  VBOR  set  to  2.5V
225  
226           psect   config,class=CONFIG,delta=1,noexec
227                   org  0x2
228                   db  0xD
229  
230   ;  Config  register  CONFIG2H  @  0x300003
231   ;       Watchdog  Timer  Enable  bit
232   ;       WDT  =  OFF,  WDT  disabled  (control  is  placed  on  the  SWDTEN  bit)
233   ;       Watchdog  Timer  Postscale  Select  bits
234   ;       WDTPS  =  128,  1:128
235  
236           psect   config,class=CONFIG,delta=1,noexec
237                   org  0x3
238                   db  0xE
239  
240   ;  Config  register  CONFIG3L  @  0x300004
241   ;       Processor  Mode  Select  bits
242   ;       MODE  =  MC,  Microcontroller  mode
243   ;       External  Bus  Data  Wait  Enable  bit
244   ;       WAIT  =  OFF,  Wait  selections  unavailable  for  table  reads  and  table  writes
245  
246           psect   config,class=CONFIG,delta=1,noexec
247                   org  0x4
248                   db  0x83
249  
250   ;  Config  register  CONFIG3H  @  0x300005
251   ;       CCP2  Mux  bit
252   ;       CCP2MUX  =  OFF,  CCP2  is  multiplexed  with  RB3  in  Extended  Microcontroller,  Microprocessor  or  Microprocessor  with  Boot  Block  mode.  Or  with  RE7  in  Microcontroller  mode.
253  
254           psect   config,class=CONFIG,delta=1,noexec
255                   org  0x5
256                   db  0x2
257  
258   ;  Config  register  CONFIG4L  @  0x300006
259   ;       Stack  Full/Underflow  Reset  Enable  bit
260   ;       STVR  =  OFF,  Stack  full/underflow  will  not  cause  Reset
261   ;       Low-Voltage  ICSP  Enable  bit
262   ;       LVP  =  OFF,  Low-voltage  ICSP  disabled
263   ;       Background  Debugger  Enable  bit
264   ;       DEBUG  =  OFF,  Background  debugger  disabled.  RB6  and  RB7  configured  as  general  purpose  I/O  pins.
265  
266           psect   config,class=CONFIG,delta=1,noexec
267                   org  0x6
268                   db  0x80
269  
270   ;  Padding  undefined  space
271           psect   config,class=CONFIG,delta=1,noexec
272                   org  0x7
273                   db  0xFF
274  
275   ;  Config  register  CONFIG5L  @  0x300008
276   ;       Code  Protection  bit
277   ;       CP0  =  OFF,  Block  0  (000200-003FFFh)  not  code-protected
278   ;       Code  Protection  bit
279   ;       CP1  =  OFF,  Block  1  (004000-007FFFh)  not  code-protected
280   ;       Code  Protection  bit
281   ;       CP2  =  OFF,  Block  2  (008000-00BFFFh)  not  code-protected
282   ;       Code  Protection  bit
283   ;       CP3  =  OFF,  Block  3  (00C000-00FFFFh)  not  code-protected
284   ;       Code  Protection  bit
285   ;       CP4  =  OFF,  Block  4  (010000-013FFFh)  not  code-protected
286   ;       Code  Protection  bit
287   ;       CP5  =  OFF,  Block  5  (014000-017FFFh)  not  code-protected
288   ;       Code  Protection  bit
289   ;       CP6  =  OFF,  Block  6  (018000-01BFFFh)  not  code-protected
290   ;       Code  Protection  bit
291   ;       CP7  =  OFF,  Block  7  (01C000-01FFFFh)  not  code-protected
292  
293           psect   config,class=CONFIG,delta=1,noexec
294                   org  0x8
295                   db  0xFF
296  
297   ;  Config  register  CONFIG5H  @  0x300009
298   ;       Boot  Block  Code  Protection  bit
299   ;       CPB  =  OFF,  Boot  Block  (000000-0001FFh)  not  code-protected
300   ;       Data  EEPROM  Code  Protection  bit
301   ;       CPD  =  OFF,  Data  EEPROM  not  code-protected
302  
303           psect   config,class=CONFIG,delta=1,noexec
304                   org  0x9
305                   db  0xC0
306  
307   ;  Config  register  CONFIG6L  @  0x30000A
308   ;       Write  Protection  bit
309   ;       WRT0  =  OFF,  Block  0  (000200-003FFFh)  not  write-protected
310   ;       Write  Protection  bit
311   ;       WRT1  =  OFF,  Block  1  (004000-007FFFh)  not  write-protected
312   ;       Write  Protection  bit
313   ;       WRT2  =  OFF,  Block  2  (008000-00BFFFh)  not  write-protected
314   ;       Write  Protection  bit
315   ;       WRT3  =  OFF,  Block  3  (00C000-00FFFFh)  not  write-protected
316   ;       Write  Protection  bit
317   ;       WRT4  =  OFF,  Block  4  (010000-013FFFh)  not  write-protected
318   ;       Write  Protection  bit
319   ;       WRT5  =  OFF,  Block  5  (014000-017FFFh)  not  write-protected
320   ;       Write  Protection  bit
321   ;       WRT6  =  OFF,  Block  6  (018000-01BFFFh)  not  write-protected
322   ;       Write  Protection  bit
323   ;       WRT7  =  OFF,  Block  7  (01C000-01FFFFh)  not  write-protected
324  
325           psect   config,class=CONFIG,delta=1,noexec
326                   org  0xA
327                   db  0xFF
328  
329   ;  Config  register  CONFIG6H  @  0x30000B
330   ;       Configuration  Register  Write  Protection  bit
331   ;       WRTC  =  OFF,  Configuration  registers  (300000-3000FFh)  not  write-protected
332   ;       Boot  Block  Write  Protection  bit
333   ;       WRTB  =  OFF,  Boot  Block  (000000-0001FFh)  not  write-protected
334   ;       Data  EEPROM  Write  Protection  bit
335   ;       WRTD  =  OFF,  Data  EEPROM  not  write-protected
336  
337           psect   config,class=CONFIG,delta=1,noexec
338                   org  0xB
339                   db  0xE0
340  
341   ;  Config  register  CONFIG7L  @  0x30000C
342   ;       Table  Read  Protection  bit
343   ;       EBTR0  =  OFF,  Block  0  (000200-003FFFh)  not  protected  from  table  reads  executed  in  other  blocks
344   ;       Table  Read  Protection  bit
345   ;       EBTR1  =  OFF,  Block  1  (004000-007FFFh)  not  protected  from  table  reads  executed  in  other  blocks
346   ;       Table  Read  Protection  bit
347   ;       EBTR2  =  OFF,  Block  2  (008000-00BFFFh)  not  protected  from  table  reads  executed  in  other  blocks
348   ;       Table  Read  Protection  bit
349   ;       EBTR3  =  OFF,  Block  3  (00C000-00FFFFh)  not  protected  from  table  reads  executed  in  other  blocks
350   ;       Table  Read  Protection  bit
351   ;       EBTR4  =  OFF,  Block  4  (010000-013FFFh)  not  protected  from  table  reads  executed  in  other  blocks
352   ;       Table  Read  Protection  bit
353   ;       EBTR5  =  OFF,  Block  5  (014000-017FFFh)  not  protected  from  table  reads  executed  in  other  blocks
354   ;       Table  Read  Protection  bit
355   ;       EBTR6  =  OFF,  Block  6  (018000-01BFFFh)  not  protected  from  table  reads  executed  in  other  blocks
356   ;       Table  Read  Protection  bit
357   ;       EBTR7  =  OFF,  Block  7  (01C000-01FFFFh)  not  protected  from  table  reads  executed  in  other  blocks
358  
359           psect   config,class=CONFIG,delta=1,noexec
360                   org  0xC
361                   db  0xFF
362  
363   ;  Config  register  CONFIG7H  @  0x30000D
364   ;       Boot  Block  Table  Read  Protection  bit
365   ;       EBTRB  =  OFF,  Boot  Block  (000000-0001FFh)  not  protected  from  table  reads  executed  in  other  blocks
366  
367           psect   config,class=CONFIG,delta=1,noexec
368                   org  0xD
369                   db  0x40
370  
371  
372   psect  comram,class=COMRAM,space=1
373   psect  abs1,class=ABS1,space=1
374   psect  bigram,class=BIGRAM,space=1
375   psect  ram,class=RAM,space=1
376   psect  bank0,class=BANK0,space=1
377   psect  bank1,class=BANK1,space=1
378   psect  bank2,class=BANK2,space=1
379   psect  bank3,class=BANK3,space=1
380   psect  bank4,class=BANK4,space=1
381   psect  bank5,class=BANK5,space=1
382   psect  bank6,class=BANK6,space=1
383   psect  bank7,class=BANK7,space=1
384   psect  bank8,class=BANK8,space=1
385   psect  bank9,class=BANK9,space=1
386   psect  bank10,class=BANK10,space=1
387   psect  bank11,class=BANK11,space=1
388   psect  bank12,class=BANK12,space=1
389   psect  bank13,class=BANK13,space=1
390   psect  bank14,class=BANK14,space=1
391   psect  sfr,class=SFR,space=1
392  
393  
394           end     start