1 unit PIC16F1939;
2 
3 // Define hardware
4 {$SET PIC_MODEL    = 'PIC16F1939'}
5 {$SET PIC_MAXFREQ  = 32000000}
6 {$SET PIC_NPINS    = 40}
7 {$SET PIC_NUMBANKS = 32}
8 {$SET PIC_NUMPAGES = 8}
9 {$SET PIC_MAXFLASH = 16384}
10 
11 interface
12 var
13   INDF0                    : byte absolute $0000;
14   INDF1                    : byte absolute $0001;
15   PCL                      : byte absolute $0002;
16   STATUS                   : byte absolute $0003;
17   STATUS_nTO               : bit  absolute STATUS.4;
18   STATUS_nPD               : bit  absolute STATUS.3;
19   STATUS_Z                 : bit  absolute STATUS.2;
20   STATUS_DC                : bit  absolute STATUS.1;
21   STATUS_C                 : bit  absolute STATUS.0;
22   FSR0L                    : byte absolute $0004;
23   FSR0H                    : byte absolute $0005;
24   FSR1L                    : byte absolute $0006;
25   FSR1H                    : byte absolute $0007;
26   BSR                      : byte absolute $0008;
27   BSR_BSR4                 : bit  absolute BSR.4;
28   BSR_BSR3                 : bit  absolute BSR.3;
29   BSR_BSR2                 : bit  absolute BSR.2;
30   BSR_BSR1                 : bit  absolute BSR.1;
31   BSR_BSR0                 : bit  absolute BSR.0;
32   WREG                     : byte absolute $0009;
33   PCLATH                   : byte absolute $000A;
34   PCLATH_PCLATH6           : bit  absolute PCLATH.6;
35   PCLATH_PCLATH5           : bit  absolute PCLATH.5;
36   PCLATH_PCLATH4           : bit  absolute PCLATH.4;
37   PCLATH_PCLATH3           : bit  absolute PCLATH.3;
38   PCLATH_PCLATH2           : bit  absolute PCLATH.2;
39   PCLATH_PCLATH1           : bit  absolute PCLATH.1;
40   PCLATH_PCLATH0           : bit  absolute PCLATH.0;
41   INTCON                   : byte absolute $000B;
42   INTCON_GIE               : bit  absolute INTCON.7;
43   INTCON_PEIE              : bit  absolute INTCON.6;
44   INTCON_TMR0IE            : bit  absolute INTCON.5;
45   INTCON_INTE              : bit  absolute INTCON.4;
46   INTCON_IOCIE             : bit  absolute INTCON.3;
47   INTCON_TMR0IF            : bit  absolute INTCON.2;
48   INTCON_INTF              : bit  absolute INTCON.1;
49   INTCON_IOCIF             : bit  absolute INTCON.0;
50   PORTA                    : byte absolute $000C;
51   PORTA_RA7                : bit  absolute PORTA.7;
52   PORTA_RA6                : bit  absolute PORTA.6;
53   PORTA_RA5                : bit  absolute PORTA.5;
54   PORTA_RA4                : bit  absolute PORTA.4;
55   PORTA_RA3                : bit  absolute PORTA.3;
56   PORTA_RA2                : bit  absolute PORTA.2;
57   PORTA_RA1                : bit  absolute PORTA.1;
58   PORTA_RA0                : bit  absolute PORTA.0;
59   PORTB                    : byte absolute $000D;
60   PORTB_RB7                : bit  absolute PORTB.7;
61   PORTB_RB6                : bit  absolute PORTB.6;
62   PORTB_RB5                : bit  absolute PORTB.5;
63   PORTB_RB4                : bit  absolute PORTB.4;
64   PORTB_RB3                : bit  absolute PORTB.3;
65   PORTB_RB2                : bit  absolute PORTB.2;
66   PORTB_RB1                : bit  absolute PORTB.1;
67   PORTB_RB0                : bit  absolute PORTB.0;
68   PORTC                    : byte absolute $000E;
69   PORTC_RC7                : bit  absolute PORTC.7;
70   PORTC_RC6                : bit  absolute PORTC.6;
71   PORTC_RC5                : bit  absolute PORTC.5;
72   PORTC_RC4                : bit  absolute PORTC.4;
73   PORTC_RC3                : bit  absolute PORTC.3;
74   PORTC_RC2                : bit  absolute PORTC.2;
75   PORTC_RC1                : bit  absolute PORTC.1;
76   PORTC_RC0                : bit  absolute PORTC.0;
77   PORTD                    : byte absolute $000F;
78   PORTD_RD7                : bit  absolute PORTD.7;
79   PORTD_RD6                : bit  absolute PORTD.6;
80   PORTD_RD5                : bit  absolute PORTD.5;
81   PORTD_RD4                : bit  absolute PORTD.4;
82   PORTD_RD3                : bit  absolute PORTD.3;
83   PORTD_RD2                : bit  absolute PORTD.2;
84   PORTD_RD1                : bit  absolute PORTD.1;
85   PORTD_RD0                : bit  absolute PORTD.0;
86   PORTE                    : byte absolute $0010;
87   PORTE_RE3                : bit  absolute PORTE.3;
88   PORTE_RE2                : bit  absolute PORTE.2;
89   PORTE_RE1                : bit  absolute PORTE.1;
90   PORTE_RE0                : bit  absolute PORTE.0;
91   PIR1                     : byte absolute $0011;
92   PIR1_TMR1GIF             : bit  absolute PIR1.7;
93   PIR1_ADIF                : bit  absolute PIR1.6;
94   PIR1_RCIF                : bit  absolute PIR1.5;
95   PIR1_TXIF                : bit  absolute PIR1.4;
96   PIR1_SSPIF               : bit  absolute PIR1.3;
97   PIR1_CCP1IF              : bit  absolute PIR1.2;
98   PIR1_TMR2IF              : bit  absolute PIR1.1;
99   PIR1_TMR1IF              : bit  absolute PIR1.0;
100   PIR2                     : byte absolute $0012;
101   PIR2_OSFIF               : bit  absolute PIR2.7;
102   PIR2_C2IF                : bit  absolute PIR2.6;
103   PIR2_C1IF                : bit  absolute PIR2.5;
104   PIR2_EEIF                : bit  absolute PIR2.4;
105   PIR2_BCLIF               : bit  absolute PIR2.3;
106   PIR2_LCDIF               : bit  absolute PIR2.2;
107   PIR2_CCP2IF              : bit  absolute PIR2.0;
108   PIR3                     : byte absolute $0013;
109   PIR3_CCP5IF              : bit  absolute PIR3.6;
110   PIR3_CCP4IF              : bit  absolute PIR3.5;
111   PIR3_CCP3IF              : bit  absolute PIR3.4;
112   PIR3_TMR6IF              : bit  absolute PIR3.3;
113   PIR3_TMR4IF              : bit  absolute PIR3.1;
114   TMR0                     : byte absolute $0015;
115   TMR1L                    : byte absolute $0016;
116   TMR1H                    : byte absolute $0017;
117   T1CON                    : byte absolute $0018;
118   T1CON_TMR1CS1            : bit  absolute T1CON.7;
119   T1CON_TMR1CS0            : bit  absolute T1CON.6;
120   T1CON_T1CKPS1            : bit  absolute T1CON.5;
121   T1CON_T1CKPS0            : bit  absolute T1CON.4;
122   T1CON_T1OSCEN            : bit  absolute T1CON.3;
123   T1CON_nT1SYNC            : bit  absolute T1CON.2;
124   T1CON_TMR1ON             : bit  absolute T1CON.0;
125   T1GCON                   : byte absolute $0019;
126   T1GCON_TMR1GE            : bit  absolute T1GCON.7;
127   T1GCON_T1GPOL            : bit  absolute T1GCON.6;
128   T1GCON_T1GTM             : bit  absolute T1GCON.5;
129   T1GCON_T1GSPM            : bit  absolute T1GCON.4;
130   T1GCON_T1GGO_nDONE       : bit  absolute T1GCON.3;
131   T1GCON_T1GVAL            : bit  absolute T1GCON.2;
132   T1GCON_T1GSS1            : bit  absolute T1GCON.1;
133   T1GCON_T1GSS0            : bit  absolute T1GCON.0;
134   TMR2                     : byte absolute $001A;
135   PR2                      : byte absolute $001B;
136   T2CON                    : byte absolute $001C;
137   T2CON_T2OUTPS3           : bit  absolute T2CON.6;
138   T2CON_T2OUTPS2           : bit  absolute T2CON.5;
139   T2CON_T2OUTPS1           : bit  absolute T2CON.4;
140   T2CON_T2OUTPS0           : bit  absolute T2CON.3;
141   T2CON_TMR2ON             : bit  absolute T2CON.2;
142   T2CON_T2CKPS1            : bit  absolute T2CON.1;
143   T2CON_T2CKPS0            : bit  absolute T2CON.0;
144   CPSCON0                  : byte absolute $001E;
145   CPSCON0_CPSON            : bit  absolute CPSCON0.7;
146   CPSCON0_CPSRM            : bit  absolute CPSCON0.6;
147   CPSCON0_CPSRNG1          : bit  absolute CPSCON0.3;
148   CPSCON0_CPSRNG0          : bit  absolute CPSCON0.2;
149   CPSCON0_CPSOUT           : bit  absolute CPSCON0.1;
150   CPSCON0_T0XCS            : bit  absolute CPSCON0.0;
151   CPSCON1                  : byte absolute $001F;
152   CPSCON1_CPSCH3           : bit  absolute CPSCON1.3;
153   CPSCON1_CPSCH2           : bit  absolute CPSCON1.2;
154   CPSCON1_CPSCH1           : bit  absolute CPSCON1.1;
155   CPSCON1_CPSCH0           : bit  absolute CPSCON1.0;
156   TRISA                    : byte absolute $008C;
157   TRISA_TRISA7             : bit  absolute TRISA.7;
158   TRISA_TRISA6             : bit  absolute TRISA.6;
159   TRISA_TRISA5             : bit  absolute TRISA.5;
160   TRISA_TRISA4             : bit  absolute TRISA.4;
161   TRISA_TRISA3             : bit  absolute TRISA.3;
162   TRISA_TRISA2             : bit  absolute TRISA.2;
163   TRISA_TRISA1             : bit  absolute TRISA.1;
164   TRISA_TRISA0             : bit  absolute TRISA.0;
165   TRISB                    : byte absolute $008D;
166   TRISB_TRISB7             : bit  absolute TRISB.7;
167   TRISB_TRISB6             : bit  absolute TRISB.6;
168   TRISB_TRISB5             : bit  absolute TRISB.5;
169   TRISB_TRISB4             : bit  absolute TRISB.4;
170   TRISB_TRISB3             : bit  absolute TRISB.3;
171   TRISB_TRISB2             : bit  absolute TRISB.2;
172   TRISB_TRISB1             : bit  absolute TRISB.1;
173   TRISB_TRISB0             : bit  absolute TRISB.0;
174   TRISC                    : byte absolute $008E;
175   TRISC_TRISC7             : bit  absolute TRISC.7;
176   TRISC_TRISC6             : bit  absolute TRISC.6;
177   TRISC_TRISC5             : bit  absolute TRISC.5;
178   TRISC_TRISC4             : bit  absolute TRISC.4;
179   TRISC_TRISC3             : bit  absolute TRISC.3;
180   TRISC_TRISC2             : bit  absolute TRISC.2;
181   TRISC_TRISC1             : bit  absolute TRISC.1;
182   TRISC_TRISC0             : bit  absolute TRISC.0;
183   TRISD                    : byte absolute $008F;
184   TRISD_TRISD7             : bit  absolute TRISD.7;
185   TRISD_TRISD6             : bit  absolute TRISD.6;
186   TRISD_TRISD5             : bit  absolute TRISD.5;
187   TRISD_TRISD4             : bit  absolute TRISD.4;
188   TRISD_TRISD3             : bit  absolute TRISD.3;
189   TRISD_TRISD2             : bit  absolute TRISD.2;
190   TRISD_TRISD1             : bit  absolute TRISD.1;
191   TRISD_TRISD0             : bit  absolute TRISD.0;
192   TRISE                    : byte absolute $0090;
193   TRISE_TRISE3             : bit  absolute TRISE.3;
194   TRISE_TRISE2             : bit  absolute TRISE.2;
195   TRISE_TRISE1             : bit  absolute TRISE.1;
196   TRISE_TRISE0             : bit  absolute TRISE.0;
197   PIE1                     : byte absolute $0091;
198   PIE1_TMR1GIE             : bit  absolute PIE1.7;
199   PIE1_ADIE                : bit  absolute PIE1.6;
200   PIE1_RCIE                : bit  absolute PIE1.5;
201   PIE1_TXIE                : bit  absolute PIE1.4;
202   PIE1_SSPIE               : bit  absolute PIE1.3;
203   PIE1_CCP1IE              : bit  absolute PIE1.2;
204   PIE1_TMR2IE              : bit  absolute PIE1.1;
205   PIE1_TMR1IE              : bit  absolute PIE1.0;
206   PIE2                     : byte absolute $0092;
207   PIE2_OSFIE               : bit  absolute PIE2.7;
208   PIE2_C2IE                : bit  absolute PIE2.6;
209   PIE2_C1IE                : bit  absolute PIE2.5;
210   PIE2_EEIE                : bit  absolute PIE2.4;
211   PIE2_BCLIE               : bit  absolute PIE2.3;
212   PIE2_LCDIE               : bit  absolute PIE2.2;
213   PIE2_CCP2IE              : bit  absolute PIE2.0;
214   PIE3                     : byte absolute $0093;
215   PIE3_CCP5IE              : bit  absolute PIE3.6;
216   PIE3_CCP4IE              : bit  absolute PIE3.5;
217   PIE3_CCP3IE              : bit  absolute PIE3.4;
218   PIE3_TMR6IE              : bit  absolute PIE3.3;
219   PIE3_TMR4IE              : bit  absolute PIE3.1;
220   OPTION_REG               : byte absolute $0095;
221   OPTION_REG_nWPUEN        : bit  absolute OPTION_REG.7;
222   OPTION_REG_INTEDG        : bit  absolute OPTION_REG.6;
223   OPTION_REG_TMR0CS        : bit  absolute OPTION_REG.5;
224   OPTION_REG_TMR0SE        : bit  absolute OPTION_REG.4;
225   OPTION_REG_PSA           : bit  absolute OPTION_REG.3;
226   OPTION_REG_PS2           : bit  absolute OPTION_REG.2;
227   OPTION_REG_PS1           : bit  absolute OPTION_REG.1;
228   OPTION_REG_PS0           : bit  absolute OPTION_REG.0;
229   PCON                     : byte absolute $0096;
230   PCON_STKOVF              : bit  absolute PCON.7;
231   PCON_STKUNF              : bit  absolute PCON.6;
232   PCON_nRMCLR              : bit  absolute PCON.3;
233   PCON_nRI                 : bit  absolute PCON.2;
234   PCON_nPOR                : bit  absolute PCON.1;
235   PCON_nBOR                : bit  absolute PCON.0;
236   WDTCON                   : byte absolute $0097;
237   WDTCON_WDTPS4            : bit  absolute WDTCON.5;
238   WDTCON_WDTPS3            : bit  absolute WDTCON.4;
239   WDTCON_WDTPS2            : bit  absolute WDTCON.3;
240   WDTCON_WDTPS1            : bit  absolute WDTCON.2;
241   WDTCON_WDTPS0            : bit  absolute WDTCON.1;
242   WDTCON_SWDTEN            : bit  absolute WDTCON.0;
243   OSCTUNE                  : byte absolute $0098;
244   OSCTUNE_TUN5             : bit  absolute OSCTUNE.5;
245   OSCTUNE_TUN4             : bit  absolute OSCTUNE.4;
246   OSCTUNE_TUN3             : bit  absolute OSCTUNE.3;
247   OSCTUNE_TUN2             : bit  absolute OSCTUNE.2;
248   OSCTUNE_TUN1             : bit  absolute OSCTUNE.1;
249   OSCTUNE_TUN0             : bit  absolute OSCTUNE.0;
250   OSCCON                   : byte absolute $0099;
251   OSCCON_SPLLEN            : bit  absolute OSCCON.7;
252   OSCCON_IRCF3             : bit  absolute OSCCON.6;
253   OSCCON_IRCF2             : bit  absolute OSCCON.5;
254   OSCCON_IRCF1             : bit  absolute OSCCON.4;
255   OSCCON_IRCF0             : bit  absolute OSCCON.3;
256   OSCCON_SCS1              : bit  absolute OSCCON.1;
257   OSCCON_SCS0              : bit  absolute OSCCON.0;
258   OSCSTAT                  : byte absolute $009A;
259   OSCSTAT_T1OSCR           : bit  absolute OSCSTAT.7;
260   OSCSTAT_PLLR             : bit  absolute OSCSTAT.6;
261   OSCSTAT_OSTS             : bit  absolute OSCSTAT.5;
262   OSCSTAT_HFIOFR           : bit  absolute OSCSTAT.4;
263   OSCSTAT_HFIOFL           : bit  absolute OSCSTAT.3;
264   OSCSTAT_MFIOFR           : bit  absolute OSCSTAT.2;
265   OSCSTAT_LFIOFR           : bit  absolute OSCSTAT.1;
266   OSCSTAT_HFIOFS           : bit  absolute OSCSTAT.0;
267   ADRESL                   : byte absolute $009B;
268   ADRESH                   : byte absolute $009C;
269   ADCON0                   : byte absolute $009D;
270   ADCON0_CHS4              : bit  absolute ADCON0.6;
271   ADCON0_CHS3              : bit  absolute ADCON0.5;
272   ADCON0_CHS2              : bit  absolute ADCON0.4;
273   ADCON0_CHS1              : bit  absolute ADCON0.3;
274   ADCON0_CHS0              : bit  absolute ADCON0.2;
275   ADCON0_GO_nDONE          : bit  absolute ADCON0.1;
276   ADCON0_ADON              : bit  absolute ADCON0.0;
277   ADCON1                   : byte absolute $009E;
278   ADCON1_ADFM              : bit  absolute ADCON1.7;
279   ADCON1_ADCS2             : bit  absolute ADCON1.6;
280   ADCON1_ADCS1             : bit  absolute ADCON1.5;
281   ADCON1_ADCS0             : bit  absolute ADCON1.4;
282   ADCON1_ADNREF            : bit  absolute ADCON1.2;
283   ADCON1_ADPREF1           : bit  absolute ADCON1.1;
284   ADCON1_ADPREF0           : bit  absolute ADCON1.0;
285   LATA                     : byte absolute $010C;
286   LATA_LATA7               : bit  absolute LATA.7;
287   LATA_LATA6               : bit  absolute LATA.6;
288   LATA_LATA5               : bit  absolute LATA.5;
289   LATA_LATA4               : bit  absolute LATA.4;
290   LATA_LATA3               : bit  absolute LATA.3;
291   LATA_LATA2               : bit  absolute LATA.2;
292   LATA_LATA1               : bit  absolute LATA.1;
293   LATA_LATA0               : bit  absolute LATA.0;
294   LATB                     : byte absolute $010D;
295   LATB_LATB7               : bit  absolute LATB.7;
296   LATB_LATB6               : bit  absolute LATB.6;
297   LATB_LATB5               : bit  absolute LATB.5;
298   LATB_LATB4               : bit  absolute LATB.4;
299   LATB_LATB3               : bit  absolute LATB.3;
300   LATB_LATB2               : bit  absolute LATB.2;
301   LATB_LATB1               : bit  absolute LATB.1;
302   LATB_LATB0               : bit  absolute LATB.0;
303   LATC                     : byte absolute $010E;
304   LATC_LATC7               : bit  absolute LATC.7;
305   LATC_LATC6               : bit  absolute LATC.6;
306   LATC_LATC5               : bit  absolute LATC.5;
307   LATC_LATC4               : bit  absolute LATC.4;
308   LATC_LATC3               : bit  absolute LATC.3;
309   LATC_LATC2               : bit  absolute LATC.2;
310   LATC_LATC1               : bit  absolute LATC.1;
311   LATC_LATC0               : bit  absolute LATC.0;
312   LATD                     : byte absolute $010F;
313   LATD_LATD7               : bit  absolute LATD.7;
314   LATD_LATD6               : bit  absolute LATD.6;
315   LATD_LATD5               : bit  absolute LATD.5;
316   LATD_LATD4               : bit  absolute LATD.4;
317   LATD_LATD3               : bit  absolute LATD.3;
318   LATD_LATD2               : bit  absolute LATD.2;
319   LATD_LATD1               : bit  absolute LATD.1;
320   LATD_LATD0               : bit  absolute LATD.0;
321   LATE                     : byte absolute $0110;
322   LATE_LATE3               : bit  absolute LATE.3;
323   LATE_LATE2               : bit  absolute LATE.2;
324   LATE_LATE1               : bit  absolute LATE.1;
325   LATE_LATE0               : bit  absolute LATE.0;
326   CM1CON0                  : byte absolute $0111;
327   CM1CON0_C1ON             : bit  absolute CM1CON0.7;
328   CM1CON0_C1OUT            : bit  absolute CM1CON0.6;
329   CM1CON0_C1OE             : bit  absolute CM1CON0.5;
330   CM1CON0_C1POL            : bit  absolute CM1CON0.4;
331   CM1CON0_C1SP             : bit  absolute CM1CON0.2;
332   CM1CON0_C1HYS            : bit  absolute CM1CON0.1;
333   CM1CON0_C1SYNC           : bit  absolute CM1CON0.0;
334   CM1CON1                  : byte absolute $0112;
335   CM1CON1_C1INTP           : bit  absolute CM1CON1.7;
336   CM1CON1_C1INTN           : bit  absolute CM1CON1.6;
337   CM1CON1_C1PCH1           : bit  absolute CM1CON1.5;
338   CM1CON1_C1PCH0           : bit  absolute CM1CON1.4;
339   CM1CON1_C1NCH1           : bit  absolute CM1CON1.1;
340   CM1CON1_C1NCH0           : bit  absolute CM1CON1.0;
341   CM2CON0                  : byte absolute $0113;
342   CM2CON0_C2ON             : bit  absolute CM2CON0.7;
343   CM2CON0_C2OUT            : bit  absolute CM2CON0.6;
344   CM2CON0_C2OE             : bit  absolute CM2CON0.5;
345   CM2CON0_C2POL            : bit  absolute CM2CON0.4;
346   CM2CON0_C2SP             : bit  absolute CM2CON0.2;
347   CM2CON0_C2HYS            : bit  absolute CM2CON0.1;
348   CM2CON0_C2SYNC           : bit  absolute CM2CON0.0;
349   CM2CON1                  : byte absolute $0114;
350   CM2CON1_C2INTP           : bit  absolute CM2CON1.7;
351   CM2CON1_C2INTN           : bit  absolute CM2CON1.6;
352   CM2CON1_C2PCH1           : bit  absolute CM2CON1.5;
353   CM2CON1_C2PCH0           : bit  absolute CM2CON1.4;
354   CM2CON1_C2NCH1           : bit  absolute CM2CON1.1;
355   CM2CON1_C2NCH0           : bit  absolute CM2CON1.0;
356   CMOUT                    : byte absolute $0115;
357   CMOUT_MC2OUT             : bit  absolute CMOUT.1;
358   CMOUT_MC1OUT             : bit  absolute CMOUT.0;
359   BORCON                   : byte absolute $0116;
360   BORCON_SBOREN            : bit  absolute BORCON.7;
361   BORCON_BORRDY            : bit  absolute BORCON.0;
362   FVRCON                   : byte absolute $0117;
363   FVRCON_FVREN             : bit  absolute FVRCON.7;
364   FVRCON_FVRRDY            : bit  absolute FVRCON.6;
365   FVRCON_TSEN              : bit  absolute FVRCON.5;
366   FVRCON_TSRNG             : bit  absolute FVRCON.4;
367   FVRCON_CDAFVR1           : bit  absolute FVRCON.3;
368   FVRCON_CDAFVR0           : bit  absolute FVRCON.2;
369   FVRCON_ADFVR1            : bit  absolute FVRCON.1;
370   FVRCON_ADFVR0            : bit  absolute FVRCON.0;
371   DACCON0                  : byte absolute $0118;
372   DACCON0_DACEN            : bit  absolute DACCON0.7;
373   DACCON0_DACLPS           : bit  absolute DACCON0.6;
374   DACCON0_DACOE            : bit  absolute DACCON0.5;
375   DACCON0_DACPSS1          : bit  absolute DACCON0.3;
376   DACCON0_DACPSS0          : bit  absolute DACCON0.2;
377   DACCON0_DACNSS           : bit  absolute DACCON0.0;
378   DACCON1                  : byte absolute $0119;
379   DACCON1_DACR4            : bit  absolute DACCON1.4;
380   DACCON1_DACR3            : bit  absolute DACCON1.3;
381   DACCON1_DACR2            : bit  absolute DACCON1.2;
382   DACCON1_DACR1            : bit  absolute DACCON1.1;
383   DACCON1_DACR0            : bit  absolute DACCON1.0;
384   SRCON0                   : byte absolute $011A;
385   SRCON0_SRLEN             : bit  absolute SRCON0.7;
386   SRCON0_SRCLK2            : bit  absolute SRCON0.6;
387   SRCON0_SRCLK1            : bit  absolute SRCON0.5;
388   SRCON0_SRCLK0            : bit  absolute SRCON0.4;
389   SRCON0_SRQEN             : bit  absolute SRCON0.3;
390   SRCON0_SRNQEN            : bit  absolute SRCON0.2;
391   SRCON0_SRPS              : bit  absolute SRCON0.1;
392   SRCON0_SRPR              : bit  absolute SRCON0.0;
393   SRCON1                   : byte absolute $011B;
394   SRCON1_SRSPE             : bit  absolute SRCON1.7;
395   SRCON1_SRSCKE            : bit  absolute SRCON1.6;
396   SRCON1_SRSC2E            : bit  absolute SRCON1.5;
397   SRCON1_SRSC1E            : bit  absolute SRCON1.4;
398   SRCON1_SRRPE             : bit  absolute SRCON1.3;
399   SRCON1_SRRCKE            : bit  absolute SRCON1.2;
400   SRCON1_SRRC2E            : bit  absolute SRCON1.1;
401   SRCON1_SRRC1E            : bit  absolute SRCON1.0;
402   APFCON                   : byte absolute $011D;
403   APFCON_CCP3SEL           : bit  absolute APFCON.6;
404   APFCON_T1GSEL            : bit  absolute APFCON.5;
405   APFCON_P2BSEL            : bit  absolute APFCON.4;
406   APFCON_SRNQSEL           : bit  absolute APFCON.3;
407   APFCON_C2OUTSEL          : bit  absolute APFCON.2;
408   APFCON_SSSEL             : bit  absolute APFCON.1;
409   APFCON_CCP2SEL           : bit  absolute APFCON.0;
410   ANSELA                   : byte absolute $018C;
411   ANSELA_ANSA5             : bit  absolute ANSELA.5;
412   ANSELA_ANSA4             : bit  absolute ANSELA.4;
413   ANSELA_ANSA3             : bit  absolute ANSELA.3;
414   ANSELA_ANSA2             : bit  absolute ANSELA.2;
415   ANSELA_ANSA1             : bit  absolute ANSELA.1;
416   ANSELA_ANSA0             : bit  absolute ANSELA.0;
417   ANSELB                   : byte absolute $018D;
418   ANSELB_ANSB5             : bit  absolute ANSELB.5;
419   ANSELB_ANSB4             : bit  absolute ANSELB.4;
420   ANSELB_ANSB3             : bit  absolute ANSELB.3;
421   ANSELB_ANSB2             : bit  absolute ANSELB.2;
422   ANSELB_ANSB1             : bit  absolute ANSELB.1;
423   ANSELB_ANSB0             : bit  absolute ANSELB.0;
424   ANSELD                   : byte absolute $018F;
425   ANSELD_ANSD7             : bit  absolute ANSELD.7;
426   ANSELD_ANSD6             : bit  absolute ANSELD.6;
427   ANSELD_ANSD5             : bit  absolute ANSELD.5;
428   ANSELD_ANSD4             : bit  absolute ANSELD.4;
429   ANSELD_ANSD3             : bit  absolute ANSELD.3;
430   ANSELD_ANSD2             : bit  absolute ANSELD.2;
431   ANSELD_ANSD1             : bit  absolute ANSELD.1;
432   ANSELD_ANSD0             : bit  absolute ANSELD.0;
433   ANSELE                   : byte absolute $0190;
434   ANSELE_ANSE2             : bit  absolute ANSELE.2;
435   ANSELE_ANSE1             : bit  absolute ANSELE.1;
436   ANSELE_ANSE0             : bit  absolute ANSELE.0;
437   EEADRL                   : byte absolute $0191;
438   EEADRH                   : byte absolute $0192;
439   EEADRH_EEADRH6           : bit  absolute EEADRH.6;
440   EEADRH_EEADRH5           : bit  absolute EEADRH.5;
441   EEADRH_EEADRH4           : bit  absolute EEADRH.4;
442   EEADRH_EEADRH3           : bit  absolute EEADRH.3;
443   EEADRH_EEADRH2           : bit  absolute EEADRH.2;
444   EEADRH_EEADRH1           : bit  absolute EEADRH.1;
445   EEADRH_EEADRH0           : bit  absolute EEADRH.0;
446   EEDATL                   : byte absolute $0193;
447   EEDATH                   : byte absolute $0194;
448   EEDATH_EEDATH5           : bit  absolute EEDATH.5;
449   EEDATH_EEDATH4           : bit  absolute EEDATH.4;
450   EEDATH_EEDATH3           : bit  absolute EEDATH.3;
451   EEDATH_EEDATH2           : bit  absolute EEDATH.2;
452   EEDATH_EEDATH1           : bit  absolute EEDATH.1;
453   EEDATH_EEDATH0           : bit  absolute EEDATH.0;
454   EECON1                   : byte absolute $0195;
455   EECON1_EEPGD             : bit  absolute EECON1.7;
456   EECON1_CFGS              : bit  absolute EECON1.6;
457   EECON1_LWLO              : bit  absolute EECON1.5;
458   EECON1_FREE              : bit  absolute EECON1.4;
459   EECON1_WRERR             : bit  absolute EECON1.3;
460   EECON1_WREN              : bit  absolute EECON1.2;
461   EECON1_WR                : bit  absolute EECON1.1;
462   EECON1_RD                : bit  absolute EECON1.0;
463   EECON2                   : byte absolute $0196;
464   RCREG                    : byte absolute $0199;
465   TXREG                    : byte absolute $019A;
466   SP1BRGL                  : byte absolute $019B;
467   SP1BRGH                  : byte absolute $019C;
468   RCSTA                    : byte absolute $019D;
469   RCSTA_SPEN               : bit  absolute RCSTA.7;
470   RCSTA_RX9                : bit  absolute RCSTA.6;
471   RCSTA_SREN               : bit  absolute RCSTA.5;
472   RCSTA_CREN               : bit  absolute RCSTA.4;
473   RCSTA_ADDEN              : bit  absolute RCSTA.3;
474   RCSTA_FERR               : bit  absolute RCSTA.2;
475   RCSTA_OERR               : bit  absolute RCSTA.1;
476   RCSTA_RX9D               : bit  absolute RCSTA.0;
477   TXSTA                    : byte absolute $019E;
478   TXSTA_CSRC               : bit  absolute TXSTA.7;
479   TXSTA_TX9                : bit  absolute TXSTA.6;
480   TXSTA_TXEN               : bit  absolute TXSTA.5;
481   TXSTA_SYNC               : bit  absolute TXSTA.4;
482   TXSTA_SENDB              : bit  absolute TXSTA.3;
483   TXSTA_BRGH               : bit  absolute TXSTA.2;
484   TXSTA_TRMT               : bit  absolute TXSTA.1;
485   TXSTA_TX9D               : bit  absolute TXSTA.0;
486   BAUDCON                  : byte absolute $019F;
487   BAUDCON_ABDOVF           : bit  absolute BAUDCON.7;
488   BAUDCON_RCIDL            : bit  absolute BAUDCON.6;
489   BAUDCON_SCKP             : bit  absolute BAUDCON.4;
490   BAUDCON_BRG16            : bit  absolute BAUDCON.3;
491   BAUDCON_WUE              : bit  absolute BAUDCON.1;
492   BAUDCON_ABDEN            : bit  absolute BAUDCON.0;
493   WPUB                     : byte absolute $020D;
494   WPUB_WPUB7               : bit  absolute WPUB.7;
495   WPUB_WPUB6               : bit  absolute WPUB.6;
496   WPUB_WPUB5               : bit  absolute WPUB.5;
497   WPUB_WPUB4               : bit  absolute WPUB.4;
498   WPUB_WPUB3               : bit  absolute WPUB.3;
499   WPUB_WPUB2               : bit  absolute WPUB.2;
500   WPUB_WPUB1               : bit  absolute WPUB.1;
501   WPUB_WPUB0               : bit  absolute WPUB.0;
502   WPUE                     : byte absolute $0210;
503   WPUE_WPUE3               : bit  absolute WPUE.3;
504   SSPBUF                   : byte absolute $0211;
505   SSPADD                   : byte absolute $0212;
506   SSPMSK                   : byte absolute $0213;
507   SSPSTAT                  : byte absolute $0214;
508   SSPSTAT_SMP              : bit  absolute SSPSTAT.7;
509   SSPSTAT_CKE              : bit  absolute SSPSTAT.6;
510   SSPSTAT_D_nA             : bit  absolute SSPSTAT.5;
511   SSPSTAT_P                : bit  absolute SSPSTAT.4;
512   SSPSTAT_S                : bit  absolute SSPSTAT.3;
513   SSPSTAT_R_nW             : bit  absolute SSPSTAT.2;
514   SSPSTAT_UA               : bit  absolute SSPSTAT.1;
515   SSPSTAT_BF               : bit  absolute SSPSTAT.0;
516   SSPCON1                  : byte absolute $0215;
517   SSPCON1_WCOL             : bit  absolute SSPCON1.7;
518   SSPCON1_SSPOV            : bit  absolute SSPCON1.6;
519   SSPCON1_SSPEN            : bit  absolute SSPCON1.5;
520   SSPCON1_CKP              : bit  absolute SSPCON1.4;
521   SSPCON1_SSPM3            : bit  absolute SSPCON1.3;
522   SSPCON1_SSPM2            : bit  absolute SSPCON1.2;
523   SSPCON1_SSPM1            : bit  absolute SSPCON1.1;
524   SSPCON1_SSPM0            : bit  absolute SSPCON1.0;
525   SSPCON2                  : byte absolute $0216;
526   SSPCON2_GCEN             : bit  absolute SSPCON2.7;
527   SSPCON2_ACKSTAT          : bit  absolute SSPCON2.6;
528   SSPCON2_ACKDT            : bit  absolute SSPCON2.5;
529   SSPCON2_ACKEN            : bit  absolute SSPCON2.4;
530   SSPCON2_RCEN             : bit  absolute SSPCON2.3;
531   SSPCON2_PEN              : bit  absolute SSPCON2.2;
532   SSPCON2_RSEN             : bit  absolute SSPCON2.1;
533   SSPCON2_SEN              : bit  absolute SSPCON2.0;
534   SSPCON3                  : byte absolute $0217;
535   SSPCON3_ACKTIM           : bit  absolute SSPCON3.7;
536   SSPCON3_PCIE             : bit  absolute SSPCON3.6;
537   SSPCON3_SCIE             : bit  absolute SSPCON3.5;
538   SSPCON3_BOEN             : bit  absolute SSPCON3.4;
539   SSPCON3_SDAHT            : bit  absolute SSPCON3.3;
540   SSPCON3_SBCDE            : bit  absolute SSPCON3.2;
541   SSPCON3_AHEN             : bit  absolute SSPCON3.1;
542   SSPCON3_DHEN             : bit  absolute SSPCON3.0;
543   CCPR1L                   : byte absolute $0291;
544   CCPR1H                   : byte absolute $0292;
545   CCP1CON                  : byte absolute $0293;
546   CCP1CON_P1M1             : bit  absolute CCP1CON.7;
547   CCP1CON_P1M0             : bit  absolute CCP1CON.6;
548   CCP1CON_DC1B1            : bit  absolute CCP1CON.5;
549   CCP1CON_DC1B0            : bit  absolute CCP1CON.4;
550   CCP1CON_CCP1M3           : bit  absolute CCP1CON.3;
551   CCP1CON_CCP1M2           : bit  absolute CCP1CON.2;
552   CCP1CON_CCP1M1           : bit  absolute CCP1CON.1;
553   CCP1CON_CCP1M0           : bit  absolute CCP1CON.0;
554   PWM1CON                  : byte absolute $0294;
555   PWM1CON_P1RSEN           : bit  absolute PWM1CON.7;
556   PWM1CON_P1DC6            : bit  absolute PWM1CON.6;
557   PWM1CON_P1DC5            : bit  absolute PWM1CON.5;
558   PWM1CON_P1DC4            : bit  absolute PWM1CON.4;
559   PWM1CON_P1DC3            : bit  absolute PWM1CON.3;
560   PWM1CON_P1DC2            : bit  absolute PWM1CON.2;
561   PWM1CON_P1DC1            : bit  absolute PWM1CON.1;
562   PWM1CON_P1DC0            : bit  absolute PWM1CON.0;
563   CCP1AS                   : byte absolute $0295;
564   CCP1AS_CCP1ASE           : bit  absolute CCP1AS.7;
565   CCP1AS_CCP1AS2           : bit  absolute CCP1AS.6;
566   CCP1AS_CCP1AS1           : bit  absolute CCP1AS.5;
567   CCP1AS_CCP1AS0           : bit  absolute CCP1AS.4;
568   CCP1AS_PSS1AC1           : bit  absolute CCP1AS.3;
569   CCP1AS_PSS1AC0           : bit  absolute CCP1AS.2;
570   CCP1AS_PSS1BD1           : bit  absolute CCP1AS.1;
571   CCP1AS_PSS1BD0           : bit  absolute CCP1AS.0;
572   PSTR1CON                 : byte absolute $0296;
573   PSTR1CON_STR1SYNC        : bit  absolute PSTR1CON.4;
574   PSTR1CON_STR1D           : bit  absolute PSTR1CON.3;
575   PSTR1CON_STR1C           : bit  absolute PSTR1CON.2;
576   PSTR1CON_STR1B           : bit  absolute PSTR1CON.1;
577   PSTR1CON_STR1A           : bit  absolute PSTR1CON.0;
578   CCPR2L                   : byte absolute $0298;
579   CCPR2H                   : byte absolute $0299;
580   CCP2CON                  : byte absolute $029A;
581   CCP2CON_P2M1             : bit  absolute CCP2CON.7;
582   CCP2CON_P2M0             : bit  absolute CCP2CON.6;
583   CCP2CON_DC2B1            : bit  absolute CCP2CON.5;
584   CCP2CON_DC2B0            : bit  absolute CCP2CON.4;
585   CCP2CON_CCP2M3           : bit  absolute CCP2CON.3;
586   CCP2CON_CCP2M2           : bit  absolute CCP2CON.2;
587   CCP2CON_CCP2M1           : bit  absolute CCP2CON.1;
588   CCP2CON_CCP2M0           : bit  absolute CCP2CON.0;
589   PWM2CON                  : byte absolute $029B;
590   PWM2CON_P2RSEN           : bit  absolute PWM2CON.7;
591   PWM2CON_P2DC6            : bit  absolute PWM2CON.6;
592   PWM2CON_P2DC5            : bit  absolute PWM2CON.5;
593   PWM2CON_P2DC4            : bit  absolute PWM2CON.4;
594   PWM2CON_P2DC3            : bit  absolute PWM2CON.3;
595   PWM2CON_P2DC2            : bit  absolute PWM2CON.2;
596   PWM2CON_P2DC1            : bit  absolute PWM2CON.1;
597   PWM2CON_P2DC0            : bit  absolute PWM2CON.0;
598   CCP2AS                   : byte absolute $029C;
599   CCP2AS_CCP2ASE           : bit  absolute CCP2AS.7;
600   CCP2AS_CCP2AS2           : bit  absolute CCP2AS.6;
601   CCP2AS_CCP2AS1           : bit  absolute CCP2AS.5;
602   CCP2AS_CCP2AS0           : bit  absolute CCP2AS.4;
603   CCP2AS_PSS2AC1           : bit  absolute CCP2AS.3;
604   CCP2AS_PSS2AC0           : bit  absolute CCP2AS.2;
605   CCP2AS_PSS2BD1           : bit  absolute CCP2AS.1;
606   CCP2AS_PSS2BD0           : bit  absolute CCP2AS.0;
607   PSTR2CON                 : byte absolute $029D;
608   PSTR2CON_STR2SYNC        : bit  absolute PSTR2CON.4;
609   PSTR2CON_STR2D           : bit  absolute PSTR2CON.3;
610   PSTR2CON_STR2C           : bit  absolute PSTR2CON.2;
611   PSTR2CON_STR2B           : bit  absolute PSTR2CON.1;
612   PSTR2CON_STR2A           : bit  absolute PSTR2CON.0;
613   CCPTMRS0                 : byte absolute $029E;
614   CCPTMRS0_C4TSEL1         : bit  absolute CCPTMRS0.7;
615   CCPTMRS0_C4TSEL0         : bit  absolute CCPTMRS0.6;
616   CCPTMRS0_C3TSEL1         : bit  absolute CCPTMRS0.5;
617   CCPTMRS0_C3TSEL0         : bit  absolute CCPTMRS0.4;
618   CCPTMRS0_C2TSEL1         : bit  absolute CCPTMRS0.3;
619   CCPTMRS0_C2TSEL0         : bit  absolute CCPTMRS0.2;
620   CCPTMRS0_C1TSEL1         : bit  absolute CCPTMRS0.1;
621   CCPTMRS0_C1TSEL0         : bit  absolute CCPTMRS0.0;
622   CCPTMRS1                 : byte absolute $029F;
623   CCPTMRS1_C5TSEL1         : bit  absolute CCPTMRS1.1;
624   CCPTMRS1_C5TSEL0         : bit  absolute CCPTMRS1.0;
625   CCPR3L                   : byte absolute $0311;
626   CCPR3H                   : byte absolute $0312;
627   CCP3CON                  : byte absolute $0313;
628   CCP3CON_P3M1             : bit  absolute CCP3CON.7;
629   CCP3CON_P3M0             : bit  absolute CCP3CON.6;
630   CCP3CON_DC3B1            : bit  absolute CCP3CON.5;
631   CCP3CON_DC3B0            : bit  absolute CCP3CON.4;
632   CCP3CON_CCP3M3           : bit  absolute CCP3CON.3;
633   CCP3CON_CCP3M2           : bit  absolute CCP3CON.2;
634   CCP3CON_CCP3M1           : bit  absolute CCP3CON.1;
635   CCP3CON_CCP3M0           : bit  absolute CCP3CON.0;
636   PWM3CON                  : byte absolute $0314;
637   PWM3CON_P3RSEN           : bit  absolute PWM3CON.7;
638   PWM3CON_P3DC6            : bit  absolute PWM3CON.6;
639   PWM3CON_P3DC5            : bit  absolute PWM3CON.5;
640   PWM3CON_P3DC4            : bit  absolute PWM3CON.4;
641   PWM3CON_P3DC3            : bit  absolute PWM3CON.3;
642   PWM3CON_P3DC2            : bit  absolute PWM3CON.2;
643   PWM3CON_P3DC1            : bit  absolute PWM3CON.1;
644   PWM3CON_P3DC0            : bit  absolute PWM3CON.0;
645   CCP3AS                   : byte absolute $0315;
646   CCP3AS_CCP3ASE           : bit  absolute CCP3AS.7;
647   CCP3AS_CCP3AS2           : bit  absolute CCP3AS.6;
648   CCP3AS_CCP3AS1           : bit  absolute CCP3AS.5;
649   CCP3AS_CCP3AS0           : bit  absolute CCP3AS.4;
650   CCP3AS_PSS3AC1           : bit  absolute CCP3AS.3;
651   CCP3AS_PSS3AC0           : bit  absolute CCP3AS.2;
652   CCP3AS_PSS3BD1           : bit  absolute CCP3AS.1;
653   CCP3AS_PSS3BD0           : bit  absolute CCP3AS.0;
654   PSTR3CON                 : byte absolute $0316;
655   PSTR3CON_STR3SYNC        : bit  absolute PSTR3CON.4;
656   PSTR3CON_STR3D           : bit  absolute PSTR3CON.3;
657   PSTR3CON_STR3C           : bit  absolute PSTR3CON.2;
658   PSTR3CON_STR3B           : bit  absolute PSTR3CON.1;
659   PSTR3CON_STR3A           : bit  absolute PSTR3CON.0;
660   CCPR4L                   : byte absolute $0318;
661   CCPR4H                   : byte absolute $0319;
662   CCP4CON                  : byte absolute $031A;
663   CCP4CON_DC4B1            : bit  absolute CCP4CON.5;
664   CCP4CON_DC4B0            : bit  absolute CCP4CON.4;
665   CCP4CON_CCP4M3           : bit  absolute CCP4CON.3;
666   CCP4CON_CCP4M2           : bit  absolute CCP4CON.2;
667   CCP4CON_CCP4M1           : bit  absolute CCP4CON.1;
668   CCP4CON_CCP4M0           : bit  absolute CCP4CON.0;
669   CCPR5L                   : byte absolute $031C;
670   CCPR5H                   : byte absolute $031D;
671   CCP5CON                  : byte absolute $031E;
672   CCP5CON_DC5B1            : bit  absolute CCP5CON.5;
673   CCP5CON_DC5B0            : bit  absolute CCP5CON.4;
674   CCP5CON_CCP5M3           : bit  absolute CCP5CON.3;
675   CCP5CON_CCP5M2           : bit  absolute CCP5CON.2;
676   CCP5CON_CCP5M1           : bit  absolute CCP5CON.1;
677   CCP5CON_CCP5M0           : bit  absolute CCP5CON.0;
678   IOCBP                    : byte absolute $0394;
679   IOCBP_IOCBP7             : bit  absolute IOCBP.7;
680   IOCBP_IOCBP6             : bit  absolute IOCBP.6;
681   IOCBP_IOCBP5             : bit  absolute IOCBP.5;
682   IOCBP_IOCBP4             : bit  absolute IOCBP.4;
683   IOCBP_IOCBP3             : bit  absolute IOCBP.3;
684   IOCBP_IOCBP2             : bit  absolute IOCBP.2;
685   IOCBP_IOCBP1             : bit  absolute IOCBP.1;
686   IOCBP_IOCBP0             : bit  absolute IOCBP.0;
687   IOCBN                    : byte absolute $0395;
688   IOCBN_IOCBN7             : bit  absolute IOCBN.7;
689   IOCBN_IOCBN6             : bit  absolute IOCBN.6;
690   IOCBN_IOCBN5             : bit  absolute IOCBN.5;
691   IOCBN_IOCBN4             : bit  absolute IOCBN.4;
692   IOCBN_IOCBN3             : bit  absolute IOCBN.3;
693   IOCBN_IOCBN2             : bit  absolute IOCBN.2;
694   IOCBN_IOCBN1             : bit  absolute IOCBN.1;
695   IOCBN_IOCBN0             : bit  absolute IOCBN.0;
696   IOCBF                    : byte absolute $0396;
697   IOCBF_IOCBF7             : bit  absolute IOCBF.7;
698   IOCBF_IOCBF6             : bit  absolute IOCBF.6;
699   IOCBF_IOCBF5             : bit  absolute IOCBF.5;
700   IOCBF_IOCBF4             : bit  absolute IOCBF.4;
701   IOCBF_IOCBF3             : bit  absolute IOCBF.3;
702   IOCBF_IOCBF2             : bit  absolute IOCBF.2;
703   IOCBF_IOCBF1             : bit  absolute IOCBF.1;
704   IOCBF_IOCBF0             : bit  absolute IOCBF.0;
705   TMR4                     : byte absolute $0415;
706   PR4                      : byte absolute $0416;
707   T4CON                    : byte absolute $0417;
708   T4CON_T4OUTPS3           : bit  absolute T4CON.6;
709   T4CON_T4OUTPS2           : bit  absolute T4CON.5;
710   T4CON_T4OUTPS1           : bit  absolute T4CON.4;
711   T4CON_T4OUTPS0           : bit  absolute T4CON.3;
712   T4CON_TMR4ON             : bit  absolute T4CON.2;
713   T4CON_T4CKPS1            : bit  absolute T4CON.1;
714   T4CON_T4CKPS0            : bit  absolute T4CON.0;
715   TMR6                     : byte absolute $041C;
716   PR6                      : byte absolute $041D;
717   T6CON                    : byte absolute $041E;
718   T6CON_T6OUTPS3           : bit  absolute T6CON.6;
719   T6CON_T6OUTPS2           : bit  absolute T6CON.5;
720   T6CON_T6OUTPS1           : bit  absolute T6CON.4;
721   T6CON_T6OUTPS0           : bit  absolute T6CON.3;
722   T6CON_TMR6ON             : bit  absolute T6CON.2;
723   T6CON_T6CKPS1            : bit  absolute T6CON.1;
724   T6CON_T6CKPS0            : bit  absolute T6CON.0;
725   LCDCON                   : byte absolute $0791;
726   LCDCON_LCDEN             : bit  absolute LCDCON.7;
727   LCDCON_SLPEN             : bit  absolute LCDCON.6;
728   LCDCON_WERR              : bit  absolute LCDCON.5;
729   LCDCON_CS1               : bit  absolute LCDCON.3;
730   LCDCON_CS0               : bit  absolute LCDCON.2;
731   LCDCON_LMUX1             : bit  absolute LCDCON.1;
732   LCDCON_LMUX0             : bit  absolute LCDCON.0;
733   LCDPS                    : byte absolute $0792;
734   LCDPS_WFT                : bit  absolute LCDPS.7;
735   LCDPS_BIASMD             : bit  absolute LCDPS.6;
736   LCDPS_LCDA               : bit  absolute LCDPS.5;
737   LCDPS_WA                 : bit  absolute LCDPS.4;
738   LCDPS_LP3                : bit  absolute LCDPS.3;
739   LCDPS_LP2                : bit  absolute LCDPS.2;
740   LCDPS_LP1                : bit  absolute LCDPS.1;
741   LCDPS_LP0                : bit  absolute LCDPS.0;
742   LCDREF                   : byte absolute $0793;
743   LCDREF_LCDIRE            : bit  absolute LCDREF.7;
744   LCDREF_LCDIRS            : bit  absolute LCDREF.6;
745   LCDREF_LCDIRI            : bit  absolute LCDREF.5;
746   LCDREF_VLCD3PE           : bit  absolute LCDREF.3;
747   LCDREF_VLCD2PE           : bit  absolute LCDREF.2;
748   LCDREF_VLCD1PE           : bit  absolute LCDREF.1;
749   LCDCST                   : byte absolute $0794;
750   LCDCST_LCDCST2           : bit  absolute LCDCST.2;
751   LCDCST_LCDCST1           : bit  absolute LCDCST.1;
752   LCDCST_LCDCST0           : bit  absolute LCDCST.0;
753   LCDRL                    : byte absolute $0795;
754   LCDRL_LRLAP1             : bit  absolute LCDRL.7;
755   LCDRL_LRLAP0             : bit  absolute LCDRL.6;
756   LCDRL_LRLBP1             : bit  absolute LCDRL.5;
757   LCDRL_LRLBP0             : bit  absolute LCDRL.4;
758   LCDRL_LRLAT2             : bit  absolute LCDRL.2;
759   LCDRL_LRLAT1             : bit  absolute LCDRL.1;
760   LCDRL_LRLAT0             : bit  absolute LCDRL.0;
761   LCDSE0                   : byte absolute $0798;
762   LCDSE0_SE7               : bit  absolute LCDSE0.7;
763   LCDSE0_SE6               : bit  absolute LCDSE0.6;
764   LCDSE0_SE5               : bit  absolute LCDSE0.5;
765   LCDSE0_SE4               : bit  absolute LCDSE0.4;
766   LCDSE0_SE3               : bit  absolute LCDSE0.3;
767   LCDSE0_SE2               : bit  absolute LCDSE0.2;
768   LCDSE0_SE1               : bit  absolute LCDSE0.1;
769   LCDSE0_SE0               : bit  absolute LCDSE0.0;
770   LCDSE1                   : byte absolute $0799;
771   LCDSE1_SE15              : bit  absolute LCDSE1.7;
772   LCDSE1_SE14              : bit  absolute LCDSE1.6;
773   LCDSE1_SE13              : bit  absolute LCDSE1.5;
774   LCDSE1_SE12              : bit  absolute LCDSE1.4;
775   LCDSE1_SE11              : bit  absolute LCDSE1.3;
776   LCDSE1_SE10              : bit  absolute LCDSE1.2;
777   LCDSE1_SE9               : bit  absolute LCDSE1.1;
778   LCDSE1_SE8               : bit  absolute LCDSE1.0;
779   LCDSE2                   : byte absolute $079A;
780   LCDSE2_SE23              : bit  absolute LCDSE2.7;
781   LCDSE2_SE22              : bit  absolute LCDSE2.6;
782   LCDSE2_SE21              : bit  absolute LCDSE2.5;
783   LCDSE2_SE20              : bit  absolute LCDSE2.4;
784   LCDSE2_SE19              : bit  absolute LCDSE2.3;
785   LCDSE2_SE18              : bit  absolute LCDSE2.2;
786   LCDSE2_SE17              : bit  absolute LCDSE2.1;
787   LCDSE2_SE16              : bit  absolute LCDSE2.0;
788   LCDDATA0                 : byte absolute $07A0;
789   LCDDATA0_SEG7COM0        : bit  absolute LCDDATA0.7;
790   LCDDATA0_SEG6COM0        : bit  absolute LCDDATA0.6;
791   LCDDATA0_SEG5COM0        : bit  absolute LCDDATA0.5;
792   LCDDATA0_SEG4COM0        : bit  absolute LCDDATA0.4;
793   LCDDATA0_SEG3COM0        : bit  absolute LCDDATA0.3;
794   LCDDATA0_SEG2COM0        : bit  absolute LCDDATA0.2;
795   LCDDATA0_SEG1COM0        : bit  absolute LCDDATA0.1;
796   LCDDATA0_SEG0COM0        : bit  absolute LCDDATA0.0;
797   LCDDATA1                 : byte absolute $07A1;
798   LCDDATA1_SEG15COM0       : bit  absolute LCDDATA1.7;
799   LCDDATA1_SEG14COM0       : bit  absolute LCDDATA1.6;
800   LCDDATA1_SEG13COM0       : bit  absolute LCDDATA1.5;
801   LCDDATA1_SEG12COM0       : bit  absolute LCDDATA1.4;
802   LCDDATA1_SEG11COM0       : bit  absolute LCDDATA1.3;
803   LCDDATA1_SEG10COM0       : bit  absolute LCDDATA1.2;
804   LCDDATA1_SEG9COM0        : bit  absolute LCDDATA1.1;
805   LCDDATA1_SEG8COM0        : bit  absolute LCDDATA1.0;
806   LCDDATA2                 : byte absolute $07A2;
807   LCDDATA2_SEG23COM0       : bit  absolute LCDDATA2.7;
808   LCDDATA2_SEG22COM0       : bit  absolute LCDDATA2.6;
809   LCDDATA2_SEG21COM0       : bit  absolute LCDDATA2.5;
810   LCDDATA2_SEG20COM0       : bit  absolute LCDDATA2.4;
811   LCDDATA2_SEG19COM0       : bit  absolute LCDDATA2.3;
812   LCDDATA2_SEG18COM0       : bit  absolute LCDDATA2.2;
813   LCDDATA2_SEG17COM0       : bit  absolute LCDDATA2.1;
814   LCDDATA2_SEG16COM0       : bit  absolute LCDDATA2.0;
815   LCDDATA3                 : byte absolute $07A3;
816   LCDDATA3_SEG7COM1        : bit  absolute LCDDATA3.7;
817   LCDDATA3_SEG6COM1        : bit  absolute LCDDATA3.6;
818   LCDDATA3_SEG5COM1        : bit  absolute LCDDATA3.5;
819   LCDDATA3_SEG4COM1        : bit  absolute LCDDATA3.4;
820   LCDDATA3_SEG3COM1        : bit  absolute LCDDATA3.3;
821   LCDDATA3_SEG2COM1        : bit  absolute LCDDATA3.2;
822   LCDDATA3_SEG1COM1        : bit  absolute LCDDATA3.1;
823   LCDDATA3_SEG0COM1        : bit  absolute LCDDATA3.0;
824   LCDDATA4                 : byte absolute $07A4;
825   LCDDATA4_SEG15COM1       : bit  absolute LCDDATA4.7;
826   LCDDATA4_SEG14COM1       : bit  absolute LCDDATA4.6;
827   LCDDATA4_SEG13COM1       : bit  absolute LCDDATA4.5;
828   LCDDATA4_SEG12COM1       : bit  absolute LCDDATA4.4;
829   LCDDATA4_SEG11COM1       : bit  absolute LCDDATA4.3;
830   LCDDATA4_SEG10COM1       : bit  absolute LCDDATA4.2;
831   LCDDATA4_SEG9COM1        : bit  absolute LCDDATA4.1;
832   LCDDATA4_SEG8COM1        : bit  absolute LCDDATA4.0;
833   LCDDATA5                 : byte absolute $07A5;
834   LCDDATA5_SEG23COM1       : bit  absolute LCDDATA5.7;
835   LCDDATA5_SEG22COM1       : bit  absolute LCDDATA5.6;
836   LCDDATA5_SEG21COM1       : bit  absolute LCDDATA5.5;
837   LCDDATA5_SEG20COM1       : bit  absolute LCDDATA5.4;
838   LCDDATA5_SEG19COM1       : bit  absolute LCDDATA5.3;
839   LCDDATA5_SEG18COM1       : bit  absolute LCDDATA5.2;
840   LCDDATA5_SEG17COM1       : bit  absolute LCDDATA5.1;
841   LCDDATA5_SEG16COM1       : bit  absolute LCDDATA5.0;
842   LCDDATA6                 : byte absolute $07A6;
843   LCDDATA6_SEG7COM2        : bit  absolute LCDDATA6.7;
844   LCDDATA6_SEG6COM2        : bit  absolute LCDDATA6.6;
845   LCDDATA6_SEG5COM2        : bit  absolute LCDDATA6.5;
846   LCDDATA6_SEG4COM2        : bit  absolute LCDDATA6.4;
847   LCDDATA6_SEG3COM2        : bit  absolute LCDDATA6.3;
848   LCDDATA6_SEG2COM2        : bit  absolute LCDDATA6.2;
849   LCDDATA6_SEG1COM2        : bit  absolute LCDDATA6.1;
850   LCDDATA6_SEG0COM2        : bit  absolute LCDDATA6.0;
851   LCDDATA7                 : byte absolute $07A7;
852   LCDDATA7_SEG15COM2       : bit  absolute LCDDATA7.7;
853   LCDDATA7_SEG14COM2       : bit  absolute LCDDATA7.6;
854   LCDDATA7_SEG13COM2       : bit  absolute LCDDATA7.5;
855   LCDDATA7_SEG12COM2       : bit  absolute LCDDATA7.4;
856   LCDDATA7_SEG11COM2       : bit  absolute LCDDATA7.3;
857   LCDDATA7_SEG10COM2       : bit  absolute LCDDATA7.2;
858   LCDDATA7_SEG9COM2        : bit  absolute LCDDATA7.1;
859   LCDDATA7_SEG8COM2        : bit  absolute LCDDATA7.0;
860   LCDDATA8                 : byte absolute $07A8;
861   LCDDATA8_SEG23COM2       : bit  absolute LCDDATA8.7;
862   LCDDATA8_SEG22COM2       : bit  absolute LCDDATA8.6;
863   LCDDATA8_SEG21COM2       : bit  absolute LCDDATA8.5;
864   LCDDATA8_SEG20COM2       : bit  absolute LCDDATA8.4;
865   LCDDATA8_SEG19COM2       : bit  absolute LCDDATA8.3;
866   LCDDATA8_SEG18COM2       : bit  absolute LCDDATA8.2;
867   LCDDATA8_SEG17COM2       : bit  absolute LCDDATA8.1;
868   LCDDATA8_SEG16COM2       : bit  absolute LCDDATA8.0;
869   LCDDATA9                 : byte absolute $07A9;
870   LCDDATA9_SEG7COM3        : bit  absolute LCDDATA9.7;
871   LCDDATA9_SEG6COM3        : bit  absolute LCDDATA9.6;
872   LCDDATA9_SEG5COM3        : bit  absolute LCDDATA9.5;
873   LCDDATA9_SEG4COM3        : bit  absolute LCDDATA9.4;
874   LCDDATA9_SEG3COM3        : bit  absolute LCDDATA9.3;
875   LCDDATA9_SEG2COM3        : bit  absolute LCDDATA9.2;
876   LCDDATA9_SEG1COM3        : bit  absolute LCDDATA9.1;
877   LCDDATA9_SEG0COM3        : bit  absolute LCDDATA9.0;
878   LCDDATA10                : byte absolute $07AA;
879   LCDDATA10_SEG15COM3      : bit  absolute LCDDATA10.7;
880   LCDDATA10_SEG14COM3      : bit  absolute LCDDATA10.6;
881   LCDDATA10_SEG13COM3      : bit  absolute LCDDATA10.5;
882   LCDDATA10_SEG12COM3      : bit  absolute LCDDATA10.4;
883   LCDDATA10_SEG11COM3      : bit  absolute LCDDATA10.3;
884   LCDDATA10_SEG10COM3      : bit  absolute LCDDATA10.2;
885   LCDDATA10_SEG9COM3       : bit  absolute LCDDATA10.1;
886   LCDDATA10_SEG8COM3       : bit  absolute LCDDATA10.0;
887   LCDDATA11                : byte absolute $07AB;
888   LCDDATA11_SEG23COM3      : bit  absolute LCDDATA11.7;
889   LCDDATA11_SEG22COM3      : bit  absolute LCDDATA11.6;
890   LCDDATA11_SEG21COM3      : bit  absolute LCDDATA11.5;
891   LCDDATA11_SEG20COM3      : bit  absolute LCDDATA11.4;
892   LCDDATA11_SEG19COM3      : bit  absolute LCDDATA11.3;
893   LCDDATA11_SEG18COM3      : bit  absolute LCDDATA11.2;
894   LCDDATA11_SEG17COM3      : bit  absolute LCDDATA11.1;
895   LCDDATA11_SEG16COM3      : bit  absolute LCDDATA11.0;
896   STATUS_SHAD              : byte absolute $0FE4;
897   STATUS_SHAD_Z_SHAD       : bit  absolute STATUS_SHAD.2;
898   STATUS_SHAD_DC_SHAD      : bit  absolute STATUS_SHAD.1;
899   STATUS_SHAD_C_SHAD       : bit  absolute STATUS_SHAD.0;
900   WREG_SHAD                : byte absolute $0FE5;
901   BSR_SHAD                 : byte absolute $0FE6;
902   BSR_SHAD_BSR_SHAD4       : bit  absolute BSR_SHAD.4;
903   BSR_SHAD_BSR_SHAD3       : bit  absolute BSR_SHAD.3;
904   BSR_SHAD_BSR_SHAD2       : bit  absolute BSR_SHAD.2;
905   BSR_SHAD_BSR_SHAD1       : bit  absolute BSR_SHAD.1;
906   BSR_SHAD_BSR_SHAD0       : bit  absolute BSR_SHAD.0;
907   PCLATH_SHAD              : byte absolute $0FE7;
908   PCLATH_SHAD_PCLATH_SHAD6 : bit  absolute PCLATH_SHAD.6;
909   PCLATH_SHAD_PCLATH_SHAD5 : bit  absolute PCLATH_SHAD.5;
910   PCLATH_SHAD_PCLATH_SHAD4 : bit  absolute PCLATH_SHAD.4;
911   PCLATH_SHAD_PCLATH_SHAD3 : bit  absolute PCLATH_SHAD.3;
912   PCLATH_SHAD_PCLATH_SHAD2 : bit  absolute PCLATH_SHAD.2;
913   PCLATH_SHAD_PCLATH_SHAD1 : bit  absolute PCLATH_SHAD.1;
914   PCLATH_SHAD_PCLATH_SHAD0 : bit  absolute PCLATH_SHAD.0;
915   FSR0L_SHAD               : byte absolute $0FE8;
916   FSR0H_SHAD               : byte absolute $0FE9;
917   FSR1L_SHAD               : byte absolute $0FEA;
918   FSR1H_SHAD               : byte absolute $0FEB;
919   STKPTR                   : byte absolute $0FED;
920   STKPTR_STKPTR4           : bit  absolute STKPTR.4;
921   STKPTR_STKPTR3           : bit  absolute STKPTR.3;
922   STKPTR_STKPTR2           : bit  absolute STKPTR.2;
923   STKPTR_STKPTR1           : bit  absolute STKPTR.1;
924   STKPTR_STKPTR0           : bit  absolute STKPTR.0;
925   TOSL                     : byte absolute $0FEE;
926   TOSH                     : byte absolute $0FEF;
927   TOSH_TOSH6               : bit  absolute TOSH.6;
928   TOSH_TOSH5               : bit  absolute TOSH.5;
929   TOSH_TOSH4               : bit  absolute TOSH.4;
930   TOSH_TOSH3               : bit  absolute TOSH.3;
931   TOSH_TOSH2               : bit  absolute TOSH.2;
932   TOSH_TOSH1               : bit  absolute TOSH.1;
933   TOSH_TOSH0               : bit  absolute TOSH.0;
934 
935 
936   // -- Define RAM state values --
937 
938   {$CLEAR_STATE_RAM}
939 
940   {$SET_STATE_RAM '000-00B:SFR:ALLMAPPED'}  // Banks 0-31 : INDF0, INDF1, PCL, STATUS, FSR0L, FSR0H, FSR1L, FSR1H, BSR, WREG, PCLATH, INTCON
941   {$SET_STATE_RAM '00C-013:SFR'}            // Bank 0 : PORTA, PORTB, PORTC, PORTD, PORTE, PIR1, PIR2, PIR3
942   {$SET_STATE_RAM '015-01C:SFR'}            // Bank 0 : TMR0, TMR1L, TMR1H, T1CON, T1GCON, TMR2, PR2, T2CON
943   {$SET_STATE_RAM '01E-01F:SFR'}            // Bank 0 : CPSCON0, CPSCON1
944   {$SET_STATE_RAM '020-06F:GPR'}
945   {$SET_STATE_RAM '070-07F:GPR:ALLMAPPED'}
946   {$SET_STATE_RAM '08C-093:SFR'}            // Bank 1 : TRISA, TRISB, TRISC, TRISD, TRISE, PIE1, PIE2, PIE3
947   {$SET_STATE_RAM '095-09E:SFR'}            // Bank 1 : OPTION_REG, PCON, WDTCON, OSCTUNE, OSCCON, OSCSTAT, ADRESL, ADRESH, ADCON0, ADCON1
948   {$SET_STATE_RAM '0A0-0EF:GPR'}
949   {$SET_STATE_RAM '10C-11B:SFR'}            // Bank 2 : LATA, LATB, LATC, LATD, LATE, CM1CON0, CM1CON1, CM2CON0, CM2CON1, CMOUT, BORCON, FVRCON, DACCON0, DACCON1, SRCON0, SRCON1
950   {$SET_STATE_RAM '11D-11D:SFR'}            // Bank 2 : APFCON
951   {$SET_STATE_RAM '120-16F:GPR'}
952   {$SET_STATE_RAM '18C-18D:SFR'}            // Bank 3 : ANSELA, ANSELB
953   {$SET_STATE_RAM '18F-196:SFR'}            // Bank 3 : ANSELD, ANSELE, EEADRL, EEADRH, EEDATL, EEDATH, EECON1, EECON2
954   {$SET_STATE_RAM '199-19F:SFR'}            // Bank 3 : RCREG, TXREG, SP1BRGL, SP1BRGH, RCSTA, TXSTA, BAUDCON
955   {$SET_STATE_RAM '1A0-1EF:GPR'}
956   {$SET_STATE_RAM '20D-20D:SFR'}            // Bank 4 : WPUB
957   {$SET_STATE_RAM '210-217:SFR'}            // Bank 4 : WPUE, SSPBUF, SSPADD, SSPMSK, SSPSTAT, SSPCON1, SSPCON2, SSPCON3
958   {$SET_STATE_RAM '220-26F:GPR'}
959   {$SET_STATE_RAM '291-296:SFR'}            // Bank 5 : CCPR1L, CCPR1H, CCP1CON, PWM1CON, CCP1AS, PSTR1CON
960   {$SET_STATE_RAM '298-29F:SFR'}            // Bank 5 : CCPR2L, CCPR2H, CCP2CON, PWM2CON, CCP2AS, PSTR2CON, CCPTMRS0, CCPTMRS1
961   {$SET_STATE_RAM '2A0-2EF:GPR'}
962   {$SET_STATE_RAM '311-316:SFR'}            // Bank 6 : CCPR3L, CCPR3H, CCP3CON, PWM3CON, CCP3AS, PSTR3CON
963   {$SET_STATE_RAM '318-31A:SFR'}            // Bank 6 : CCPR4L, CCPR4H, CCP4CON
964   {$SET_STATE_RAM '31C-31E:SFR'}            // Bank 6 : CCPR5L, CCPR5H, CCP5CON
965   {$SET_STATE_RAM '320-36F:GPR'}
966   {$SET_STATE_RAM '394-396:SFR'}            // Bank 7 : IOCBP, IOCBN, IOCBF
967   {$SET_STATE_RAM '3A0-3EF:GPR'}
968   {$SET_STATE_RAM '415-417:SFR'}            // Bank 8 : TMR4, PR4, T4CON
969   {$SET_STATE_RAM '41C-41E:SFR'}            // Bank 8 : TMR6, PR6, T6CON
970   {$SET_STATE_RAM '420-46F:GPR'}
971   {$SET_STATE_RAM '4A0-4EF:GPR'}
972   {$SET_STATE_RAM '520-56F:GPR'}
973   {$SET_STATE_RAM '5A0-5EF:GPR'}
974   {$SET_STATE_RAM '620-64F:GPR'}
975   {$SET_STATE_RAM '791-795:SFR'}            // Bank 15 : LCDCON, LCDPS, LCDREF, LCDCST, LCDRL
976   {$SET_STATE_RAM '798-79A:SFR'}            // Bank 15 : LCDSE0, LCDSE1, LCDSE2
977   {$SET_STATE_RAM '7A0-7AB:SFR'}            // Bank 15 : LCDDATA0, LCDDATA1, LCDDATA2, LCDDATA3, LCDDATA4, LCDDATA5, LCDDATA6, LCDDATA7, LCDDATA8, LCDDATA9, LCDDATA10, LCDDATA11
978   {$SET_STATE_RAM 'FE4-FEB:SFR'}            // Bank 31 : STATUS_SHAD, WREG_SHAD, BSR_SHAD, PCLATH_SHAD, FSR0L_SHAD, FSR0H_SHAD, FSR1L_SHAD, FSR1H_SHAD
979   {$SET_STATE_RAM 'FED-FEF:SFR'}            // Bank 31 : STKPTR, TOSL, TOSH
980 
981 
982   // -- Define mapped RAM --
983 
984 
985 
986 
987   // -- Un-implemented fields --
988 
989   {$SET_UNIMP_BITS '003:1F'} // STATUS bits 7,6,5 un-implemented (read as 0)
990   {$SET_UNIMP_BITS '008:1F'} // BSR bits 7,6,5 un-implemented (read as 0)
991   {$SET_UNIMP_BITS '00A:7F'} // PCLATH bit 7 un-implemented (read as 0)
992   {$SET_UNIMP_BITS '010:0F'} // PORTE bits 7,6,5,4 un-implemented (read as 0)
993   {$SET_UNIMP_BITS '012:FD'} // PIR2 bit 1 un-implemented (read as 0)
994   {$SET_UNIMP_BITS '013:7A'} // PIR3 bits 7,2,0 un-implemented (read as 0)
995   {$SET_UNIMP_BITS '018:FD'} // T1CON bit 1 un-implemented (read as 0)
996   {$SET_UNIMP_BITS '01C:7F'} // T2CON bit 7 un-implemented (read as 0)
997   {$SET_UNIMP_BITS '01E:CF'} // CPSCON0 bits 5,4 un-implemented (read as 0)
998   {$SET_UNIMP_BITS '01F:0F'} // CPSCON1 bits 7,6,5,4 un-implemented (read as 0)
999   {$SET_UNIMP_BITS '090:0F'} // TRISE bits 7,6,5,4 un-implemented (read as 0)
1000   {$SET_UNIMP_BITS '092:FD'} // PIE2 bit 1 un-implemented (read as 0)
1001   {$SET_UNIMP_BITS '093:7A'} // PIE3 bits 7,2,0 un-implemented (read as 0)
1002   {$SET_UNIMP_BITS '096:CF'} // PCON bits 5,4 un-implemented (read as 0)
1003   {$SET_UNIMP_BITS '097:3F'} // WDTCON bits 7,6 un-implemented (read as 0)
1004   {$SET_UNIMP_BITS '098:3F'} // OSCTUNE bits 7,6 un-implemented (read as 0)
1005   {$SET_UNIMP_BITS '099:FB'} // OSCCON bit 2 un-implemented (read as 0)
1006   {$SET_UNIMP_BITS '09D:7F'} // ADCON0 bit 7 un-implemented (read as 0)
1007   {$SET_UNIMP_BITS '09E:F7'} // ADCON1 bit 3 un-implemented (read as 0)
1008   {$SET_UNIMP_BITS '110:0F'} // LATE bits 7,6,5,4 un-implemented (read as 0)
1009   {$SET_UNIMP_BITS '111:F7'} // CM1CON0 bit 3 un-implemented (read as 0)
1010   {$SET_UNIMP_BITS '112:F3'} // CM1CON1 bits 3,2 un-implemented (read as 0)
1011   {$SET_UNIMP_BITS '113:F7'} // CM2CON0 bit 3 un-implemented (read as 0)
1012   {$SET_UNIMP_BITS '114:F3'} // CM2CON1 bits 3,2 un-implemented (read as 0)
1013   {$SET_UNIMP_BITS '115:03'} // CMOUT bits 7,6,5,4,3,2 un-implemented (read as 0)
1014   {$SET_UNIMP_BITS '116:81'} // BORCON bits 6,5,4,3,2,1 un-implemented (read as 0)
1015   {$SET_UNIMP_BITS '118:ED'} // DACCON0 bits 4,1 un-implemented (read as 0)
1016   {$SET_UNIMP_BITS '119:1F'} // DACCON1 bits 7,6,5 un-implemented (read as 0)
1017   {$SET_UNIMP_BITS '11D:7F'} // APFCON bit 7 un-implemented (read as 0)
1018   {$SET_UNIMP_BITS '18C:3F'} // ANSELA bits 7,6 un-implemented (read as 0)
1019   {$SET_UNIMP_BITS '18D:3F'} // ANSELB bits 7,6 un-implemented (read as 0)
1020   {$SET_UNIMP_BITS '190:07'} // ANSELE bits 7,6,5,4,3 un-implemented (read as 0)
1021   {$SET_UNIMP_BITS '194:3F'} // EEDATH bits 7,6 un-implemented (read as 0)
1022   {$SET_UNIMP_BITS '19F:DB'} // BAUDCON bits 5,2 un-implemented (read as 0)
1023   {$SET_UNIMP_BITS '210:08'} // WPUE bits 7,6,5,4,2,1,0 un-implemented (read as 0)
1024   {$SET_UNIMP_BITS '296:1F'} // PSTR1CON bits 7,6,5 un-implemented (read as 0)
1025   {$SET_UNIMP_BITS '29D:1F'} // PSTR2CON bits 7,6,5 un-implemented (read as 0)
1026   {$SET_UNIMP_BITS '29F:03'} // CCPTMRS1 bits 7,6,5,4,3,2 un-implemented (read as 0)
1027   {$SET_UNIMP_BITS '316:1F'} // PSTR3CON bits 7,6,5 un-implemented (read as 0)
1028   {$SET_UNIMP_BITS '31A:3F'} // CCP4CON bits 7,6 un-implemented (read as 0)
1029   {$SET_UNIMP_BITS '31E:3F'} // CCP5CON bits 7,6 un-implemented (read as 0)
1030   {$SET_UNIMP_BITS '417:7F'} // T4CON bit 7 un-implemented (read as 0)
1031   {$SET_UNIMP_BITS '41E:7F'} // T6CON bit 7 un-implemented (read as 0)
1032   {$SET_UNIMP_BITS '791:EF'} // LCDCON bit 4 un-implemented (read as 0)
1033   {$SET_UNIMP_BITS '793:EE'} // LCDREF bits 4,0 un-implemented (read as 0)
1034   {$SET_UNIMP_BITS '794:07'} // LCDCST bits 7,6,5,4,3 un-implemented (read as 0)
1035   {$SET_UNIMP_BITS '795:F7'} // LCDRL bit 3 un-implemented (read as 0)
1036   {$SET_UNIMP_BITS 'FE4:07'} // STATUS_SHAD bits 7,6,5,4,3 un-implemented (read as 0)
1037   {$SET_UNIMP_BITS 'FE6:1F'} // BSR_SHAD bits 7,6,5 un-implemented (read as 0)
1038   {$SET_UNIMP_BITS 'FE7:7F'} // PCLATH_SHAD bit 7 un-implemented (read as 0)
1039   {$SET_UNIMP_BITS 'FED:1F'} // STKPTR bits 7,6,5 un-implemented (read as 0)
1040   {$SET_UNIMP_BITS 'FEF:7F'} // TOSH bit 7 un-implemented (read as 0)
1041 
1042   {$SET_UNIMP_BITS1 '090:08'} // TRISE bit 3 un-implemented (read as 1)
1043   {$SET_UNIMP_BITS1 '192:80'} // EEADRH bit 7 un-implemented (read as 1)
1044 
1045 
1046   // -- PIN mapping --
1047 
1048   // Pin  1 : RE3/MCLR/Vpp
1049   // Pin  2 : RA0/AN0/C12IN0-/C2OUT/SRNQ/SS/Vcap/SEG12
1050   // Pin  3 : RA1/AN1/C12IN1-/SEG7
1051   // Pin  4 : RA2/AN2/C2IN+/Vref-/DACOUT/COM2
1052   // Pin  5 : RA3/AN3/C1IN+/Vref+/SEG15
1053   // Pin  6 : RA4/C1OUT/CPS6/T0CKI/SRQ/SEG4
1054   // Pin  7 : RA5/AN4/C2OUT/CPS7/SRNQ/SS/Vcap/SEG5
1055   // Pin  8 : RE0/AN5/P3A/CCP3/SEG21
1056   // Pin  9 : RE1/AN6/P3B/SEG22
1057   // Pin 10 : RE2/AN7/CCP5/SEG23
1058   // Pin 11 : Vdd
1059   // Pin 12 : Vss
1060   // Pin 13 : RA7/OSC1/CLKIN/SEG2
1061   // Pin 14 : RA6/OSC2/CLKOUT/Vcap/SEG1
1062   // Pin 15 : RC0/T1OSO/T1CKI/P2B
1063   // Pin 16 : RC1/T1OSI/CCP2/P2A
1064   // Pin 17 : RC2/CCP1/P1A/SEG3
1065   // Pin 18 : RC3/SCL/SCK/SEG6
1066   // Pin 19 : RD0/CPS8/COM3
1067   // Pin 20 : RD1/CPS9/CCP4
1068   // Pin 21 : RD2/CPS10/P2B
1069   // Pin 22 : RD3/CPS11/P2C/SEG16
1070   // Pin 23 : RC4/SDI/SDA/T1G/SEG11
1071   // Pin 24 : RC5/SDO/SEG10
1072   // Pin 25 : RC6/TX/CK/SEG9
1073   // Pin 26 : RC7/RX/DT/SEG8
1074   // Pin 27 : RD4/CPS12/P2D/SEG17
1075   // Pin 28 : RD5/CPS13/P1B/SEG18
1076   // Pin 29 : RD6/CPS14/P1C/SEG19
1077   // Pin 30 : RD7/CPS15/P1D/SEG20
1078   // Pin 31 : Vss
1079   // Pin 32 : Vdd
1080   // Pin 33 : RB0/AN12/CPS0/SRI/INT/SEG0
1081   // Pin 34 : RB1/AN10/C12IN3-/CPS1/VLCD1
1082   // Pin 35 : RB2/AN8/CPS2/VLCD2
1083   // Pin 36 : RB3/AN9/C12IN2-/CPS3/CCP2/P2A/VLCD3
1084   // Pin 37 : RB4/AN11/CPS4/COM0
1085   // Pin 38 : RB5/AN13/CPS5/CCP3/P3A/T1G/COM1
1086   // Pin 39 : RB6/ICSPCLK/ICDCLK/SEG14
1087   // Pin 40 : RB7/ICSPDAT/ICDDAT/SEG13
1088 
1089 
1090   // -- RAM to PIN mapping --
1091 
1092   {$MAP_RAM_TO_PIN '00C:0-2,1-3,2-4,3-5,4-6,5-7,6-14,7-13'} // PORTA
1093   {$MAP_RAM_TO_PIN '00D:0-33,1-34,2-35,3-36,4-37,5-38,6-39,7-40'} // PORTB
1094   {$MAP_RAM_TO_PIN '00E:0-15,1-16,2-17,3-18,4-23,5-24,6-25,7-26'} // PORTC
1095   {$MAP_RAM_TO_PIN '00F:0-19,1-20,2-21,3-22,4-27,5-28,6-29,7-30'} // PORTD
1096   {$MAP_RAM_TO_PIN '010:0-8,1-9,2-10,3-1'} // PORTE
1097 
1098 
1099   // -- Bits Configuration --
1100 
1101   // FOSC : Oscillator Selection
1102   {$define _FOSC_ECH     = $3FFF}  // ECH, External Clock, High Power Mode (4-32 MHz): device clock supplied to CLKIN pin
1103   {$define _FOSC_ECM     = $3FFE}  // ECM, External Clock, Medium Power Mode (0.5-4 MHz): device clock supplied to CLKIN pin
1104   {$define _FOSC_ECL     = $3FFD}  // ECL, External Clock, Low Power Mode (0-0.5 MHz): device clock supplied to CLKIN pin
1105   {$define _FOSC_INTOSC  = $3FFC}  // INTOSC oscillator: I/O function on CLKIN pin
1106   {$define _FOSC_EXTRC   = $3FFB}  // EXTRC oscillator: External RC circuit connected to CLKIN pin
1107   {$define _FOSC_HS      = $3FFA}  // HS Oscillator, High-speed crystal/resonator connected between OSC1 and OSC2 pins
1108   {$define _FOSC_XT      = $3FF9}  // XT Oscillator, Crystal/resonator connected between OSC1 and OSC2 pins
1109   {$define _FOSC_LP      = $3FF8}  // LP Oscillator, Low-power crystal connected between OSC1 and OSC2 pins
1110 
1111   // WDTE : Watchdog Timer Enable
1112   {$define _WDTE_ON      = $3FFF}  // WDT enabled
1113   {$define _WDTE_NSLEEP  = $3FF7}  // WDT enabled while running and disabled in Sleep
1114   {$define _WDTE_SWDTEN  = $3FEF}  // WDT controlled by the SWDTEN bit in the WDTCON register
1115   {$define _WDTE_OFF     = $3FE7}  // WDT disabled
1116 
1117   // PWRTE : Power-up Timer Enable
1118   {$define _PWRTE_OFF    = $3FFF}  // PWRT disabled
1119   {$define _PWRTE_ON     = $3FDF}  // PWRT enabled
1120 
1121   // MCLRE : MCLR Pin Function Select
1122   {$define _MCLRE_ON     = $3FFF}  // MCLR/VPP pin function is MCLR
1123   {$define _MCLRE_OFF    = $3FBF}  // MCLR/VPP pin function is digital input
1124 
1125   // CP : Flash Program Memory Code Protection
1126   {$define _CP_OFF       = $3FFF}  // Program memory code protection is disabled
1127   {$define _CP_ON        = $3F7F}  // Program memory code protection is enabled
1128 
1129   // CPD : Data Memory Code Protection
1130   {$define _CPD_OFF      = $3FFF}  // Data memory code protection is disabled
1131   {$define _CPD_ON       = $3EFF}  // Data memory code protection is enabled
1132 
1133   // BOREN : Brown-out Reset Enable
1134   {$define _BOREN_ON     = $3FFF}  // Brown-out Reset enabled
1135   {$define _BOREN_NSLEEP = $3DFF}  // Brown-out Reset enabled while running and disabled in Sleep
1136   {$define _BOREN_SBODEN = $3BFF}  // Brown-out Reset controlled by the SBOREN bit in the BORCON register
1137   {$define _BOREN_OFF    = $39FF}  // Brown-out Reset disabled
1138 
1139   // CLKOUTEN : Clock Out Enable
1140   {$define _CLKOUTEN_OFF = $3FFF}  // CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin
1141   {$define _CLKOUTEN_ON  = $37FF}  // CLKOUT function is enabled on the CLKOUT pin
1142 
1143   // IESO : Internal/External Switchover
1144   {$define _IESO_ON      = $3FFF}  // Internal/External Switchover mode is enabled
1145   {$define _IESO_OFF     = $2FFF}  // Internal/External Switchover mode is disabled
1146 
1147   // FCMEN : Fail-Safe Clock Monitor Enable
1148   {$define _FCMEN_ON     = $3FFF}  // Fail-Safe Clock Monitor is enabled
1149   {$define _FCMEN_OFF    = $1FFF}  // Fail-Safe Clock Monitor is disabled
1150 
1151   // WRT : Flash Memory Self-Write Protection
1152   {$define _WRT_OFF      = $3FFF}  // Write protection off
1153   {$define _WRT_BOOT     = $3FFE}  // 000h to 1FFh write protected, 200h to 3FFFh may be modified by EECON control
1154   {$define _WRT_HALF     = $3FFD}  // 000h to 1FFFh write protected, 2000h to 3FFFh may be modified by EECON control
1155   {$define _WRT_ALL      = $3FFC}  // 000h to 3FFFh write protected, no addresses may be modified by EECON control
1156 
1157   // VCAPEN : Voltage Regulator Capacitor Enable
1158   {$define _VCAPEN_OFF   = $3FFF}  // All VCAP pin functionality is disabled
1159   {$define _VCAPEN_RA6   = $3FEF}  // VCAP functionality is enabled on RA6
1160   {$define _VCAPEN_RA5   = $3FDF}  // VCAP functionality is enabled on RA5
1161   {$define _VCAPEN_RA0   = $3FCF}  // VCAP functionality is enabled on RA0
1162 
1163   // PLLEN : PLL Enable
1164   {$define _PLLEN_ON     = $3FFF}  // 4x PLL enabled
1165   {$define _PLLEN_OFF    = $3EFF}  // 4x PLL disabled
1166 
1167   // STVREN : Stack Overflow/Underflow Reset Enable
1168   {$define _STVREN_ON    = $3FFF}  // Stack Overflow or Underflow will cause a Reset
1169   {$define _STVREN_OFF   = $3DFF}  // Stack Overflow or Underflow will not cause a Reset
1170 
1171   // BORV : Brown-out Reset Voltage Selection
1172   {$define _BORV_LO      = $3FFF}  // Brown-out Reset Voltage (Vbor), low trip point selected.
1173   {$define _BORV_HI      = $3BFF}  // Brown-out Reset Voltage (Vbor), high trip point selected.
1174 
1175   // LVP : Low-Voltage Programming Enable
1176   {$define _LVP_ON       = $3FFF}  // Low-voltage programming enabled
1177   {$define _LVP_OFF      = $1FFF}  // High-voltage on MCLR/VPP must be used for programming
1178 
1179 implementation
1180 end.
1181