1 unit PIC16F77;
2 
3 // Define hardware
4 {$SET PIC_MODEL    = 'PIC16F77'}
5 {$SET PIC_MAXFREQ  = 20000000}
6 {$SET PIC_NPINS    = 40}
7 {$SET PIC_NUMBANKS = 4}
8 {$SET PIC_NUMPAGES = 4}
9 {$SET PIC_MAXFLASH = 8192}
10 
11 interface
12 var
13   INDF              : byte absolute $0000;
14   TMR0              : byte absolute $0001;
15   PCL               : byte absolute $0002;
16   STATUS            : byte absolute $0003;
17   STATUS_IRP        : bit  absolute STATUS.7;
18   STATUS_RP1        : bit  absolute STATUS.6;
19   STATUS_RP0        : bit  absolute STATUS.5;
20   STATUS_nTO        : bit  absolute STATUS.4;
21   STATUS_nPD        : bit  absolute STATUS.3;
22   STATUS_Z          : bit  absolute STATUS.2;
23   STATUS_DC         : bit  absolute STATUS.1;
24   STATUS_C          : bit  absolute STATUS.0;
25   FSR               : byte absolute $0004;
26   PORTA             : byte absolute $0005;
27   PORTA_RA5         : bit  absolute PORTA.5;
28   PORTA_RA4         : bit  absolute PORTA.4;
29   PORTA_RA3         : bit  absolute PORTA.3;
30   PORTA_RA2         : bit  absolute PORTA.2;
31   PORTA_RA1         : bit  absolute PORTA.1;
32   PORTA_RA0         : bit  absolute PORTA.0;
33   PORTB             : byte absolute $0006;
34   PORTB_RB7         : bit  absolute PORTB.7;
35   PORTB_RB6         : bit  absolute PORTB.6;
36   PORTB_RB5         : bit  absolute PORTB.5;
37   PORTB_RB4         : bit  absolute PORTB.4;
38   PORTB_RB3         : bit  absolute PORTB.3;
39   PORTB_RB2         : bit  absolute PORTB.2;
40   PORTB_RB1         : bit  absolute PORTB.1;
41   PORTB_RB0         : bit  absolute PORTB.0;
42   PORTC             : byte absolute $0007;
43   PORTC_RC7         : bit  absolute PORTC.7;
44   PORTC_RC6         : bit  absolute PORTC.6;
45   PORTC_RC5         : bit  absolute PORTC.5;
46   PORTC_RC4         : bit  absolute PORTC.4;
47   PORTC_RC3         : bit  absolute PORTC.3;
48   PORTC_RC2         : bit  absolute PORTC.2;
49   PORTC_RC1         : bit  absolute PORTC.1;
50   PORTC_RC0         : bit  absolute PORTC.0;
51   PORTD             : byte absolute $0008;
52   PORTD_RD7         : bit  absolute PORTD.7;
53   PORTD_RD6         : bit  absolute PORTD.6;
54   PORTD_RD5         : bit  absolute PORTD.5;
55   PORTD_RD4         : bit  absolute PORTD.4;
56   PORTD_RD3         : bit  absolute PORTD.3;
57   PORTD_RD2         : bit  absolute PORTD.2;
58   PORTD_RD1         : bit  absolute PORTD.1;
59   PORTD_RD0         : bit  absolute PORTD.0;
60   PORTE             : byte absolute $0009;
61   PORTE_RE2         : bit  absolute PORTE.2;
62   PORTE_RE1         : bit  absolute PORTE.1;
63   PORTE_RE0         : bit  absolute PORTE.0;
64   PCLATH            : byte absolute $000A;
65   PCLATH_PCLATH4    : bit  absolute PCLATH.4;
66   PCLATH_PCLATH3    : bit  absolute PCLATH.3;
67   PCLATH_PCLATH2    : bit  absolute PCLATH.2;
68   PCLATH_PCLATH1    : bit  absolute PCLATH.1;
69   PCLATH_PCLATH0    : bit  absolute PCLATH.0;
70   INTCON            : byte absolute $000B;
71   INTCON_GIE        : bit  absolute INTCON.7;
72   INTCON_PEIE       : bit  absolute INTCON.6;
73   INTCON_TMR0IE     : bit  absolute INTCON.5;
74   INTCON_INTE       : bit  absolute INTCON.4;
75   INTCON_RBIE       : bit  absolute INTCON.3;
76   INTCON_TMR0IF     : bit  absolute INTCON.2;
77   INTCON_INTF       : bit  absolute INTCON.1;
78   INTCON_RBIF       : bit  absolute INTCON.0;
79   PIR1              : byte absolute $000C;
80   PIR1_PSPIF        : bit  absolute PIR1.7;
81   PIR1_ADIF         : bit  absolute PIR1.6;
82   PIR1_RCIF         : bit  absolute PIR1.5;
83   PIR1_TXIF         : bit  absolute PIR1.4;
84   PIR1_SSPIF        : bit  absolute PIR1.3;
85   PIR1_CCP1IF       : bit  absolute PIR1.2;
86   PIR1_TMR2IF       : bit  absolute PIR1.1;
87   PIR1_TMR1IF       : bit  absolute PIR1.0;
88   PIR2              : byte absolute $000D;
89   PIR2_CCP2IF       : bit  absolute PIR2.0;
90   TMR1L             : byte absolute $000E;
91   TMR1H             : byte absolute $000F;
92   T1CON             : byte absolute $0010;
93   T1CON_T1CKPS1     : bit  absolute T1CON.5;
94   T1CON_T1CKPS0     : bit  absolute T1CON.4;
95   T1CON_T1OSCEN     : bit  absolute T1CON.3;
96   T1CON_nT1SYNC     : bit  absolute T1CON.2;
97   T1CON_TMR1CS      : bit  absolute T1CON.1;
98   T1CON_TMR1ON      : bit  absolute T1CON.0;
99   TMR2              : byte absolute $0011;
100   T2CON             : byte absolute $0012;
101   T2CON_TOUTPS3     : bit  absolute T2CON.6;
102   T2CON_TOUTPS2     : bit  absolute T2CON.5;
103   T2CON_TOUTPS1     : bit  absolute T2CON.4;
104   T2CON_TOUTPS0     : bit  absolute T2CON.3;
105   T2CON_TMR2ON      : bit  absolute T2CON.2;
106   T2CON_T2CKPS1     : bit  absolute T2CON.1;
107   T2CON_T2CKPS0     : bit  absolute T2CON.0;
108   SSPBUF            : byte absolute $0013;
109   SSPCON            : byte absolute $0014;
110   SSPCON_WCOL       : bit  absolute SSPCON.7;
111   SSPCON_SSPOV      : bit  absolute SSPCON.6;
112   SSPCON_SSPEN      : bit  absolute SSPCON.5;
113   SSPCON_CKP        : bit  absolute SSPCON.4;
114   SSPCON_SSPM3      : bit  absolute SSPCON.3;
115   SSPCON_SSPM2      : bit  absolute SSPCON.2;
116   SSPCON_SSPM1      : bit  absolute SSPCON.1;
117   SSPCON_SSPM0      : bit  absolute SSPCON.0;
118   CCPR1L            : byte absolute $0015;
119   CCPR1H            : byte absolute $0016;
120   CCP1CON           : byte absolute $0017;
121   CCP1CON_CCP1X     : bit  absolute CCP1CON.5;
122   CCP1CON_CCP1Y     : bit  absolute CCP1CON.4;
123   CCP1CON_CCP1M3    : bit  absolute CCP1CON.3;
124   CCP1CON_CCP1M2    : bit  absolute CCP1CON.2;
125   CCP1CON_CCP1M1    : bit  absolute CCP1CON.1;
126   CCP1CON_CCP1M0    : bit  absolute CCP1CON.0;
127   RCSTA             : byte absolute $0018;
128   RCSTA_SPEN        : bit  absolute RCSTA.7;
129   RCSTA_RX9         : bit  absolute RCSTA.6;
130   RCSTA_SREN        : bit  absolute RCSTA.5;
131   RCSTA_CREN        : bit  absolute RCSTA.4;
132   RCSTA_FERR        : bit  absolute RCSTA.2;
133   RCSTA_OERR        : bit  absolute RCSTA.1;
134   RCSTA_RX9D        : bit  absolute RCSTA.0;
135   TXREG             : byte absolute $0019;
136   RCREG             : byte absolute $001A;
137   CCPR2L            : byte absolute $001B;
138   CCPR2H            : byte absolute $001C;
139   CCP2CON           : byte absolute $001D;
140   CCP2CON_CCP2X     : bit  absolute CCP2CON.5;
141   CCP2CON_CCP2Y     : bit  absolute CCP2CON.4;
142   CCP2CON_CCP2M3    : bit  absolute CCP2CON.3;
143   CCP2CON_CCP2M2    : bit  absolute CCP2CON.2;
144   CCP2CON_CCP2M1    : bit  absolute CCP2CON.1;
145   CCP2CON_CCP2M0    : bit  absolute CCP2CON.0;
146   ADRES             : byte absolute $001E;
147   ADCON0            : byte absolute $001F;
148   ADCON0_ADCS1      : bit  absolute ADCON0.7;
149   ADCON0_ADCS0      : bit  absolute ADCON0.6;
150   ADCON0_CHS2       : bit  absolute ADCON0.5;
151   ADCON0_CHS1       : bit  absolute ADCON0.4;
152   ADCON0_CHS0       : bit  absolute ADCON0.3;
153   ADCON0_GO_nDONE   : bit  absolute ADCON0.2;
154   ADCON0_ADON       : bit  absolute ADCON0.0;
155   OPTION_REG        : byte absolute $0081;
156   OPTION_REG_nRBPU  : bit  absolute OPTION_REG.7;
157   OPTION_REG_INTEDG : bit  absolute OPTION_REG.6;
158   OPTION_REG_T0CS   : bit  absolute OPTION_REG.5;
159   OPTION_REG_T0SE   : bit  absolute OPTION_REG.4;
160   OPTION_REG_PSA    : bit  absolute OPTION_REG.3;
161   OPTION_REG_PS2    : bit  absolute OPTION_REG.2;
162   OPTION_REG_PS1    : bit  absolute OPTION_REG.1;
163   OPTION_REG_PS0    : bit  absolute OPTION_REG.0;
164   TRISA             : byte absolute $0085;
165   TRISA_TRISA5      : bit  absolute TRISA.5;
166   TRISA_TRISA4      : bit  absolute TRISA.4;
167   TRISA_TRISA3      : bit  absolute TRISA.3;
168   TRISA_TRISA2      : bit  absolute TRISA.2;
169   TRISA_TRISA1      : bit  absolute TRISA.1;
170   TRISA_TRISA0      : bit  absolute TRISA.0;
171   TRISB             : byte absolute $0086;
172   TRISB_TRISB7      : bit  absolute TRISB.7;
173   TRISB_TRISB6      : bit  absolute TRISB.6;
174   TRISB_TRISB5      : bit  absolute TRISB.5;
175   TRISB_TRISB4      : bit  absolute TRISB.4;
176   TRISB_TRISB3      : bit  absolute TRISB.3;
177   TRISB_TRISB2      : bit  absolute TRISB.2;
178   TRISB_TRISB1      : bit  absolute TRISB.1;
179   TRISB_TRISB0      : bit  absolute TRISB.0;
180   TRISC             : byte absolute $0087;
181   TRISC_TRISC7      : bit  absolute TRISC.7;
182   TRISC_TRISC6      : bit  absolute TRISC.6;
183   TRISC_TRISC5      : bit  absolute TRISC.5;
184   TRISC_TRISC4      : bit  absolute TRISC.4;
185   TRISC_TRISC3      : bit  absolute TRISC.3;
186   TRISC_TRISC2      : bit  absolute TRISC.2;
187   TRISC_TRISC1      : bit  absolute TRISC.1;
188   TRISC_TRISC0      : bit  absolute TRISC.0;
189   TRISD             : byte absolute $0088;
190   TRISD_TRISD7      : bit  absolute TRISD.7;
191   TRISD_TRISD6      : bit  absolute TRISD.6;
192   TRISD_TRISD5      : bit  absolute TRISD.5;
193   TRISD_TRISD4      : bit  absolute TRISD.4;
194   TRISD_TRISD3      : bit  absolute TRISD.3;
195   TRISD_TRISD2      : bit  absolute TRISD.2;
196   TRISD_TRISD1      : bit  absolute TRISD.1;
197   TRISD_TRISD0      : bit  absolute TRISD.0;
198   TRISE             : byte absolute $0089;
199   TRISE_IBF         : bit  absolute TRISE.7;
200   TRISE_OBF         : bit  absolute TRISE.6;
201   TRISE_IBOV        : bit  absolute TRISE.5;
202   TRISE_PSPMODE     : bit  absolute TRISE.4;
203   TRISE_TRISE2      : bit  absolute TRISE.2;
204   TRISE_TRISE1      : bit  absolute TRISE.1;
205   TRISE_TRISE0      : bit  absolute TRISE.0;
206   PIE1              : byte absolute $008C;
207   PIE1_PSPIE        : bit  absolute PIE1.7;
208   PIE1_ADIE         : bit  absolute PIE1.6;
209   PIE1_RCIE         : bit  absolute PIE1.5;
210   PIE1_TXIE         : bit  absolute PIE1.4;
211   PIE1_SSPIE        : bit  absolute PIE1.3;
212   PIE1_CCP1IE       : bit  absolute PIE1.2;
213   PIE1_TMR2IE       : bit  absolute PIE1.1;
214   PIE1_TMR1IE       : bit  absolute PIE1.0;
215   PIE2              : byte absolute $008D;
216   PIE2_CCP2IE       : bit  absolute PIE2.0;
217   PCON              : byte absolute $008E;
218   PCON_nPOR         : bit  absolute PCON.1;
219   PCON_nBOR         : bit  absolute PCON.0;
220   PR2               : byte absolute $0092;
221   SSPADD            : byte absolute $0093;
222   SSPSTAT           : byte absolute $0094;
223   SSPSTAT_SMP       : bit  absolute SSPSTAT.7;
224   SSPSTAT_CKE       : bit  absolute SSPSTAT.6;
225   SSPSTAT_D_nA      : bit  absolute SSPSTAT.5;
226   SSPSTAT_P         : bit  absolute SSPSTAT.4;
227   SSPSTAT_S         : bit  absolute SSPSTAT.3;
228   SSPSTAT_R_nW      : bit  absolute SSPSTAT.2;
229   SSPSTAT_UA        : bit  absolute SSPSTAT.1;
230   SSPSTAT_BF        : bit  absolute SSPSTAT.0;
231   TXSTA             : byte absolute $0098;
232   TXSTA_CSRC        : bit  absolute TXSTA.7;
233   TXSTA_TX9         : bit  absolute TXSTA.6;
234   TXSTA_TXEN        : bit  absolute TXSTA.5;
235   TXSTA_SYNC        : bit  absolute TXSTA.4;
236   TXSTA_BRGH        : bit  absolute TXSTA.2;
237   TXSTA_TRMT        : bit  absolute TXSTA.1;
238   TXSTA_TX9D        : bit  absolute TXSTA.0;
239   SPBRG             : byte absolute $0099;
240   ADCON1            : byte absolute $009F;
241   ADCON1_PCFG2      : bit  absolute ADCON1.2;
242   ADCON1_PCFG1      : bit  absolute ADCON1.1;
243   ADCON1_PCFG0      : bit  absolute ADCON1.0;
244   PMDATA            : byte absolute $010C;
245   PMADR             : byte absolute $010D;
246   PMDATH            : byte absolute $010E;
247   PMDATH_PMDATH5    : bit  absolute PMDATH.5;
248   PMDATH_PMDATH4    : bit  absolute PMDATH.4;
249   PMDATH_PMDATH3    : bit  absolute PMDATH.3;
250   PMDATH_PMDATH2    : bit  absolute PMDATH.2;
251   PMDATH_PMDATH1    : bit  absolute PMDATH.1;
252   PMDATH_PMDATH0    : bit  absolute PMDATH.0;
253   PMADRH            : byte absolute $010F;
254   PMADRH_PMADRH4    : bit  absolute PMADRH.4;
255   PMADRH_PMADRH3    : bit  absolute PMADRH.3;
256   PMADRH_PMADRH2    : bit  absolute PMADRH.2;
257   PMADRH_PMADRH1    : bit  absolute PMADRH.1;
258   PMADRH_PMADRH0    : bit  absolute PMADRH.0;
259   PMCON1            : byte absolute $018C;
260   PMCON1_RD         : bit  absolute PMCON1.0;
261 
262 
263   // -- Define RAM state values --
264 
265   {$CLEAR_STATE_RAM}
266 
267   {$SET_STATE_RAM '000-000:SFR:ALLMAPPED'}  // Banks 0-3 : INDF
268   {$SET_STATE_RAM '001-001:SFR:ALL'}        // Bank 0 : TMR0
269                                             // Bank 1 : OPTION_REG
270                                             // Bank 2 : TMR0
271                                             // Bank 3 : OPTION_REG
272   {$SET_STATE_RAM '002-004:SFR:ALLMAPPED'}  // Banks 0-3 : PCL, STATUS, FSR
273   {$SET_STATE_RAM '005-005:SFR'}            // Bank 0 : PORTA
274   {$SET_STATE_RAM '006-006:SFR:ALL'}        // Bank 0 : PORTB
275                                             // Bank 1 : TRISB
276                                             // Bank 2 : PORTB
277                                             // Bank 3 : TRISB
278   {$SET_STATE_RAM '007-009:SFR'}            // Bank 0 : PORTC, PORTD, PORTE
279   {$SET_STATE_RAM '00A-00B:SFR:ALLMAPPED'}  // Banks 0-3 : PCLATH, INTCON
280   {$SET_STATE_RAM '00C-00C:SFR:ALL'}        // Bank 0 : PIR1
281                                             // Bank 1 : PIE1
282                                             // Bank 2 : PMDATA
283                                             // Bank 3 : PMCON1
284   {$SET_STATE_RAM '00D-01F:SFR'}            // Bank 0 : PIR2, TMR1L, TMR1H, T1CON, TMR2, T2CON, SSPBUF, SSPCON, CCPR1L, CCPR1H, CCP1CON, RCSTA, TXREG, RCREG, CCPR2L, CCPR2H, CCP2CON, ADRES, ADCON0
285   {$SET_STATE_RAM '020-06F:GPR:ALL'}
286   {$SET_STATE_RAM '070-07F:GPR:ALLMAPPED'}
287   {$SET_STATE_RAM '085-085:SFR'}            // Bank 1 : TRISA
288   {$SET_STATE_RAM '087-089:SFR'}            // Bank 1 : TRISC, TRISD, TRISE
289   {$SET_STATE_RAM '08D-08E:SFR'}            // Bank 1 : PIE2, PCON
290   {$SET_STATE_RAM '092-094:SFR'}            // Bank 1 : PR2, SSPADD, SSPSTAT
291   {$SET_STATE_RAM '098-099:SFR'}            // Bank 1 : TXSTA, SPBRG
292   {$SET_STATE_RAM '09F-09F:SFR'}            // Bank 1 : ADCON1
293   {$SET_STATE_RAM '10D-10F:SFR'}            // Bank 2 : PMADR, PMDATH, PMADRH
294   {$SET_STATE_RAM '110-11F:GPR'}
295   {$SET_STATE_RAM '190-19F:GPR'}
296 
297 
298   // -- Define mapped RAM --
299 
300   {$SET_MAPPED_RAM '101-101:bnk0'} // maps to TMR0 (bank 0)
301   {$SET_MAPPED_RAM '106-106:bnk0'} // maps to PORTB (bank 0)
302   {$SET_MAPPED_RAM '181-181:bnk1'} // maps to OPTION_REG (bank 1)
303   {$SET_MAPPED_RAM '186-186:bnk1'} // maps to TRISB (bank 1)
304 
305 
306   // -- Un-implemented fields --
307 
308   {$SET_UNIMP_BITS '005:3F'} // PORTA bits 7,6 un-implemented (read as 0)
309   {$SET_UNIMP_BITS '009:07'} // PORTE bits 7,6,5,4,3 un-implemented (read as 0)
310   {$SET_UNIMP_BITS '00A:1F'} // PCLATH bits 7,6,5 un-implemented (read as 0)
311   {$SET_UNIMP_BITS '00D:01'} // PIR2 bits 7,6,5,4,3,2,1 un-implemented (read as 0)
312   {$SET_UNIMP_BITS '010:3F'} // T1CON bits 7,6 un-implemented (read as 0)
313   {$SET_UNIMP_BITS '012:7F'} // T2CON bit 7 un-implemented (read as 0)
314   {$SET_UNIMP_BITS '017:3F'} // CCP1CON bits 7,6 un-implemented (read as 0)
315   {$SET_UNIMP_BITS '018:F7'} // RCSTA bit 3 un-implemented (read as 0)
316   {$SET_UNIMP_BITS '01D:3F'} // CCP2CON bits 7,6 un-implemented (read as 0)
317   {$SET_UNIMP_BITS '01F:FD'} // ADCON0 bit 1 un-implemented (read as 0)
318   {$SET_UNIMP_BITS '085:3F'} // TRISA bits 7,6 un-implemented (read as 0)
319   {$SET_UNIMP_BITS '089:F7'} // TRISE bit 3 un-implemented (read as 0)
320   {$SET_UNIMP_BITS '08D:01'} // PIE2 bits 7,6,5,4,3,2,1 un-implemented (read as 0)
321   {$SET_UNIMP_BITS '08E:03'} // PCON bits 7,6,5,4,3,2 un-implemented (read as 0)
322   {$SET_UNIMP_BITS '098:F7'} // TXSTA bit 3 un-implemented (read as 0)
323   {$SET_UNIMP_BITS '09F:07'} // ADCON1 bits 7,6,5,4,3 un-implemented (read as 0)
324   {$SET_UNIMP_BITS '10E:3F'} // PMDATH bits 7,6 un-implemented (read as 0)
325   {$SET_UNIMP_BITS '10F:1F'} // PMADRH bits 7,6,5 un-implemented (read as 0)
326   {$SET_UNIMP_BITS '18C:81'} // PMCON1 bits 6,5,4,3,2,1 un-implemented (read as 0)
327 
328 
329   // -- PIN mapping --
330 
331   // Pin  1 : MCLR/Vpp
332   // Pin  2 : RA0/AN0
333   // Pin  3 : RA1/AN1
334   // Pin  4 : RA2/AN2
335   // Pin  5 : RA3/AN3/Vref
336   // Pin  6 : RA4/T0CKI
337   // Pin  7 : RA5/SS/AN4
338   // Pin  8 : RE0/RD/AN5
339   // Pin  9 : RE1/WR/AN6
340   // Pin 10 : RE2/CS/AN7
341   // Pin 11 : Vdd
342   // Pin 12 : Vss
343   // Pin 13 : OSC1/CLKI
344   // Pin 14 : OSC2/CLKO
345   // Pin 15 : RC0/T1OSO/T1CKI
346   // Pin 16 : RC1/T1OSI/CCP2
347   // Pin 17 : RC2/CCP1
348   // Pin 18 : RC3/SCK/SCL
349   // Pin 19 : RD0/PSP0
350   // Pin 20 : RD1/PSP1
351   // Pin 21 : RD2/PSP2
352   // Pin 22 : RD3/PSP3
353   // Pin 23 : RC4/SDI/SDA
354   // Pin 24 : RC5/SDO
355   // Pin 25 : RC6/TX/CK
356   // Pin 26 : RC7/RX/DT
357   // Pin 27 : RD4/PSP4
358   // Pin 28 : RD5/PSP5
359   // Pin 29 : RD6/PSP6
360   // Pin 30 : RD7/PSP7
361   // Pin 31 : Vss
362   // Pin 32 : Vdd
363   // Pin 33 : RB0/INT
364   // Pin 34 : RB1
365   // Pin 35 : RB2
366   // Pin 36 : RB3/PGM
367   // Pin 37 : RB4
368   // Pin 38 : RB5
369   // Pin 39 : RB6/PGC
370   // Pin 40 : RB7/PGD
371 
372 
373   // -- RAM to PIN mapping --
374 
375   {$MAP_RAM_TO_PIN '005:0-2,1-3,2-4,3-5,4-6,5-7'} // PORTA
376   {$MAP_RAM_TO_PIN '006:0-33,1-34,2-35,3-36,4-37,5-38,6-39,7-40'} // PORTB
377   {$MAP_RAM_TO_PIN '007:0-15,1-16,2-17,3-18,4-23,5-24,6-25,7-26'} // PORTC
378   {$MAP_RAM_TO_PIN '008:0-19,1-20,2-21,3-22,4-27,5-28,6-29,7-30'} // PORTD
379   {$MAP_RAM_TO_PIN '009:0-8,1-9,2-10'} // PORTE
380 
381 
382   // -- Bits Configuration --
383 
384   // FOSC : Oscillator Selection bits
385   {$define _FOSC_RC   = $3FFF}  // RC oscillator
386   {$define _FOSC_HS   = $3FFE}  // HS oscillator
387   {$define _FOSC_XT   = $3FFD}  // XT oscillator
388   {$define _FOSC_LP   = $3FFC}  // LP oscillator
389 
390   // WDTE : Watchdog Timer Enable bit
391   {$define _WDTE_ON   = $3FFF}  // WDT enabled
392   {$define _WDTE_OFF  = $3FFB}  // WDT disabled
393 
394   // PWRTE : Power-up Timer Enable bit
395   {$define _PWRTE_OFF = $3FFF}  // PWRT disabled
396   {$define _PWRTE_ON  = $3FF7}  // PWRT enabled
397 
398   // CP : FLASH Program Memory Code Protection bit
399   {$define _CP_OFF    = $3FFF}  // Code protection off
400   {$define _CP_ON     = $3FEF}  // All Memory locations code protected
401 
402   // BOREN : Brown-out Reset Enable bit
403   {$define _BOREN_ON  = $3FFF}  // BOR enabled
404   {$define _BOREN_OFF = $3FBF}  // BOR disabled
405 
406 implementation
407 end.
408