* device/include/Makefile.in: add support for hc08 subdirectory
[fw/sdcc] / device / include / mcs51 / c8051f020.h
1 /*-------------------------------------------------------------------------
2    Register Declarations for the Cygnal/SiLabs C8051F02x Processor Range
3
4    Copyright (C) 2004 - Maarten Brock, sourceforge.brock@dse.nl
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with this library; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 -------------------------------------------------------------------------*/
20
21 #ifndef C8051F020_H
22 #define C8051F020_H
23
24
25 /*  BYTE Registers  */
26 __sfr __at 0x80 P0       ;  /* PORT 0                                                  */
27 __sfr __at 0x81 SP       ;  /* STACK POINTER                                           */
28 __sfr __at 0x82 DPL      ;  /* DATA POINTER - LOW BYTE                                 */
29 __sfr __at 0x83 DPH      ;  /* DATA POINTER - HIGH BYTE                                */
30 __sfr __at 0x84 P4       ;  /* PORT 4                                                  */
31 __sfr __at 0x85 P5       ;  /* PORT 5                                                  */
32 __sfr __at 0x86 P6       ;  /* PORT 6                                                  */
33 __sfr __at 0x87 PCON     ;  /* POWER CONTROL                                           */
34 __sfr __at 0x88 TCON     ;  /* TIMER CONTROL                                           */
35 __sfr __at 0x89 TMOD     ;  /* TIMER MODE                                              */
36 __sfr __at 0x8A TL0      ;  /* TIMER 0 - LOW BYTE                                      */
37 __sfr __at 0x8B TL1      ;  /* TIMER 1 - LOW BYTE                                      */
38 __sfr __at 0x8C TH0      ;  /* TIMER 0 - HIGH BYTE                                     */
39 __sfr __at 0x8D TH1      ;  /* TIMER 1 - HIGH BYTE                                     */
40 __sfr __at 0x8E CKCON    ;  /* CLOCK CONTROL                                           */
41 __sfr __at 0x8F PSCTL    ;  /* PROGRAM STORE R/W CONTROL                               */
42 __sfr __at 0x90 P1       ;  /* PORT 1                                                  */
43 __sfr __at 0x91 TMR3CN   ;  /* TIMER 3 CONTROL                                         */
44 __sfr __at 0x92 TMR3RLL  ;  /* TIMER 3 RELOAD REGISTER - LOW BYTE                      */
45 __sfr __at 0x93 TMR3RLH  ;  /* TIMER 3 RELOAD REGISTER - HIGH BYTE                     */
46 __sfr __at 0x94 TMR3L    ;  /* TIMER 3 - LOW BYTE                                      */
47 __sfr __at 0x95 TMR3H    ;  /* TIMER 3 - HIGH BYTE                                     */
48 __sfr __at 0x96 P7       ;  /* PORT 7                                                  */
49 __sfr __at 0x98 SCON     ;  /* UART0 CONTROL                                           */
50 __sfr __at 0x98 SCON0    ;  /* UART0 CONTROL                                           */
51 __sfr __at 0x99 SBUF     ;  /* UART0 BUFFER                                            */
52 __sfr __at 0x99 SBUF0    ;  /* UART0 BUFFER                                            */
53 __sfr __at 0x9A SPI0CFG  ;  /* SERIAL PERIPHERAL INTERFACE 0 CONFIGURATION             */
54 __sfr __at 0x9B SPI0DAT  ;  /* SERIAL PERIPHERAL INTERFACE 0 DATA                      */
55 __sfr __at 0x9C ADC1     ;  /* ADC 1 DATA                                              */
56 __sfr __at 0x9D SPI0CKR  ;  /* SERIAL PERIPHERAL INTERFACE 0 CLOCK RATE CONTROL        */
57 __sfr __at 0x9E CPT0CN   ;  /* COMPARATOR 0 CONTROL                                    */
58 __sfr __at 0x9F CPT1CN   ;  /* COMPARATOR 1 CONTROL                                    */
59 __sfr __at 0xA0 P2       ;  /* PORT 2                                                  */
60 __sfr __at 0xA1 EMI0TC   ;  /* External Memory Timing Control                          */
61 __sfr __at 0xA3 EMI0CF   ;  /* EMIF CONFIGURATION                                      */
62 __sfr __at 0xA4 PRT0CF   ;  /* PORT 0 CONFIGURATION                                    */
63 __sfr __at 0xA4 P0MDOUT  ;  /* PORT 0 OUTPUT MODE CONFIGURATION                        */
64 __sfr __at 0xA5 PRT1CF   ;  /* PORT 1 CONFIGURATION                                    */
65 __sfr __at 0xA5 P1MDOUT  ;  /* PORT 1 OUTPUT MODE CONFIGURATION                        */
66 __sfr __at 0xA6 PRT2CF   ;  /* PORT 2 CONFIGURATION                                    */
67 __sfr __at 0xA6 P2MDOUT  ;  /* PORT 2 OUTPUT MODE CONFIGURATION                        */
68 __sfr __at 0xA7 PRT3CF   ;  /* PORT 3 CONFIGURATION                                    */
69 __sfr __at 0xA7 P3MDOUT  ;  /* PORT 3 OUTPUT MODE CONFIGURATION                        */
70 __sfr __at 0xA8 IE       ;  /* INTERRUPT ENABLE                                        */
71 __sfr __at 0xA9 SADDR0   ;  /* UART0 Slave Address                                     */
72 __sfr __at 0xAA ADC1CN   ;  /* ADC 1 CONTROL                                           */
73 __sfr __at 0xAB ADC1CF   ;  /* ADC 1 CONFIGURATION                                     */
74 __sfr __at 0xAC AMX1SL   ;  /* ADC 1 MUX CHANNEL SELECTION                             */
75 __sfr __at 0xAD P3IF     ;  /* PORT 3 EXTERNAL INTERRUPT FLAGS                         */
76 __sfr __at 0xAE SADEN1   ;  /* UART1 Slave Address Enable                              */
77 __sfr __at 0xAF EMI0CN   ;  /* EXTERNAL MEMORY INTERFACE CONTROL                       */
78 __sfr __at 0xAF _XPAGE ;    /* XDATA/PDATA PAGE                                        */
79 __sfr __at 0xB0 P3       ;  /* PORT 3                                                  */
80 __sfr __at 0xB1 OSCXCN   ;  /* EXTERNAL OSCILLATOR CONTROL                             */
81 __sfr __at 0xB2 OSCICN   ;  /* INTERNAL OSCILLATOR CONTROL                             */
82 __sfr __at 0xB5 P74OUT   ;  /* PORT 4 THROUGH 7 OUTPUT MODE CONFIGURATION              */
83 __sfr __at 0xB6 FLSCL    ;  /* FLASH MEMORY TIMING PRESCALER                           */
84 __sfr __at 0xB7 FLACL    ;  /* FLASH ACESS LIMIT                                       */
85 __sfr __at 0xB8 IP       ;  /* INTERRUPT PRIORITY                                      */
86 __sfr __at 0xB9 SADEN0   ;  /* UART0 Slave Address Enable                              */
87 __sfr __at 0xBA AMX0CF   ;  /* ADC 0 MUX CONFIGURATION                                 */
88 __sfr __at 0xBB AMX0SL   ;  /* ADC 0 MUX CHANNEL SELECTION                             */
89 __sfr __at 0xBC ADC0CF   ;  /* ADC 0 CONFIGURATION                                     */
90 __sfr __at 0xBD P1MDIN   ;  /* PORT 1 Input Mode                                       */
91 __sfr __at 0xBE ADC0L    ;  /* ADC 0 DATA - LOW BYTE                                   */
92 __sfr __at 0xBF ADC0H    ;  /* ADC 0 DATA - HIGH BYTE                                  */
93 __sfr __at 0xC0 SMB0CN   ;  /* SMBUS 0 CONTROL                                         */
94 __sfr __at 0xC1 SMB0STA  ;  /* SMBUS 0 STATUS                                          */
95 __sfr __at 0xC2 SMB0DAT  ;  /* SMBUS 0 DATA                                            */
96 __sfr __at 0xC3 SMB0ADR  ;  /* SMBUS 0 SLAVE ADDRESS                                   */
97 __sfr __at 0xC4 ADC0GTL  ;  /* ADC 0 GREATER-THAN REGISTER - LOW BYTE                  */
98 __sfr __at 0xC5 ADC0GTH  ;  /* ADC 0 GREATER-THAN REGISTER - HIGH BYTE                 */
99 __sfr __at 0xC6 ADC0LTL  ;  /* ADC 0 LESS-THAN REGISTER - LOW BYTE                     */
100 __sfr __at 0xC7 ADC0LTH  ;  /* ADC 0 LESS-THAN REGISTER - HIGH BYTE                    */
101 __sfr __at 0xC8 T2CON    ;  /* TIMER 2 CONTROL                                         */
102 __sfr __at 0xC9 T4CON    ;  /* TIMER 4 CONTROL                                         */
103 __sfr __at 0xCA RCAP2L   ;  /* TIMER 2 CAPTURE REGISTER - LOW BYTE                     */
104 __sfr __at 0xCB RCAP2H   ;  /* TIMER 2 CAPTURE REGISTER - HIGH BYTE                    */
105 __sfr __at 0xCC TL2      ;  /* TIMER 2 - LOW BYTE                                      */
106 __sfr __at 0xCD TH2      ;  /* TIMER 2 - HIGH BYTE                                     */
107 __sfr __at 0xCF SMB0CR   ;  /* SMBUS 0 CLOCK RATE                                      */
108 __sfr __at 0xD0 PSW      ;  /* PROGRAM STATUS WORD                                     */
109 __sfr __at 0xD1 REF0CN   ;  /* VOLTAGE REFERENCE 0 CONTROL                             */
110 __sfr __at 0xD2 DAC0L    ;  /* DAC 0 REGISTER - LOW BYTE                               */
111 __sfr __at 0xD3 DAC0H    ;  /* DAC 0 REGISTER - HIGH BYTE                              */
112 __sfr __at 0xD4 DAC0CN   ;  /* DAC 0 CONTROL                                           */
113 __sfr __at 0xD5 DAC1L    ;  /* DAC 1 REGISTER - LOW BYTE                               */
114 __sfr __at 0xD6 DAC1H    ;  /* DAC 1 REGISTER - HIGH BYTE                              */
115 __sfr __at 0xD7 DAC1CN   ;  /* DAC 1 CONTROL                                           */
116 __sfr __at 0xD8 PCA0CN   ;  /* PCA 0 COUNTER CONTROL                                   */
117 __sfr __at 0xD9 PCA0MD   ;  /* PCA 0 COUNTER MODE                                      */
118 __sfr __at 0xDA PCA0CPM0 ;  /* CONTROL REGISTER FOR PCA 0 MODULE 0                     */
119 __sfr __at 0xDB PCA0CPM1 ;  /* CONTROL REGISTER FOR PCA 0 MODULE 1                     */
120 __sfr __at 0xDC PCA0CPM2 ;  /* CONTROL REGISTER FOR PCA 0 MODULE 2                     */
121 __sfr __at 0xDD PCA0CPM3 ;  /* CONTROL REGISTER FOR PCA 0 MODULE 3                     */
122 __sfr __at 0xDE PCA0CPM4 ;  /* CONTROL REGISTER FOR PCA 0 MODULE 4                     */
123 __sfr __at 0xE0 ACC      ;  /* ACCUMULATOR                                             */
124 __sfr __at 0xE1 XBR0     ;  /* DIGITAL CROSSBAR CONFIGURATION REGISTER 0               */
125 __sfr __at 0xE2 XBR1     ;  /* DIGITAL CROSSBAR CONFIGURATION REGISTER 1               */
126 __sfr __at 0xE3 XBR2     ;  /* DIGITAL CROSSBAR CONFIGURATION REGISTER 2               */
127 __sfr __at 0xE4 RCAP4L   ;  /* TIMER 4 CAPTURE REGISTER - LOW BYTE                     */
128 __sfr __at 0xE5 RCAP4H   ;  /* TIMER 4 CAPTURE REGISTER - HIGH BYTE                    */
129 __sfr __at 0xE6 EIE1     ;  /* EXTERNAL INTERRUPT ENABLE 1                             */
130 __sfr __at 0xE7 EIE2     ;  /* EXTERNAL INTERRUPT ENABLE 2                             */
131 __sfr __at 0xE8 ADC0CN   ;  /* ADC 0 CONTROL                                           */
132 __sfr __at 0xE9 PCA0L    ;  /* PCA 0 TIMER - LOW BYTE                                  */
133 __sfr __at 0xEA PCA0CPL0 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 0 - LOW BYTE  */
134 __sfr __at 0xEB PCA0CPL1 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 1 - LOW BYTE  */
135 __sfr __at 0xEC PCA0CPL2 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 2 - LOW BYTE  */
136 __sfr __at 0xED PCA0CPL3 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 3 - LOW BYTE  */
137 __sfr __at 0xEE PCA0CPL4 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 4 - LOW BYTE  */
138 __sfr __at 0xEF RSTSRC   ;  /* RESET SOURCE                                            */
139 __sfr __at 0xF0 B        ;  /* B REGISTER                                              */
140 __sfr __at 0xF1 SCON1    ;  /* UART1 CONTROL                                           */
141 __sfr __at 0xF2 SBUF1    ;  /* UART1 DATA                                              */
142 __sfr __at 0xF3 SADDR1   ;  /* UART1 Slave Address                                     */
143 __sfr __at 0xF4 TL4      ;  /* TIMER 4 DATA - LOW BYTE                                 */
144 __sfr __at 0xF5 TH4      ;  /* TIMER 4 DATA - HIGH BYTE                                */
145 __sfr __at 0xF6 EIP1     ;  /* EXTERNAL INTERRUPT PRIORITY REGISTER 1                  */
146 __sfr __at 0xF7 EIP2     ;  /* EXTERNAL INTERRUPT PRIORITY REGISTER 2                  */
147 __sfr __at 0xF8 SPI0CN   ;  /* SERIAL PERIPHERAL INTERFACE 0 CONTROL                   */
148 __sfr __at 0xF9 PCA0H    ;  /* PCA 0 TIMER - HIGH BYTE                                 */
149 __sfr __at 0xFA PCA0CPH0 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 0 - HIGH BYTE */
150 __sfr __at 0xFB PCA0CPH1 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 1 - HIGH BYTE */
151 __sfr __at 0xFC PCA0CPH2 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 2 - HIGH BYTE */
152 __sfr __at 0xFD PCA0CPH3 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 3 - HIGH BYTE */
153 __sfr __at 0xFE PCA0CPH4 ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 4 - HIGH BYTE */
154 __sfr __at 0xFF WDTCN    ;  /* WATCHDOG TIMER CONTROL                                  */
155
156
157 /*  BIT Registers  */
158
159 /*  P0  0x80 */
160 __sbit __at 0x80 P0_0    ;
161 __sbit __at 0x81 P0_1    ;
162 __sbit __at 0x82 P0_2    ;
163 __sbit __at 0x83 P0_3    ;
164 __sbit __at 0x84 P0_4    ;
165 __sbit __at 0x85 P0_5    ;
166 __sbit __at 0x86 P0_6    ;
167 __sbit __at 0x87 P0_7    ;
168
169 /*  TCON  0x88 */
170 __sbit __at 0x88 IT0     ;  /* EXT. INTERRUPT 0 TYPE                        */
171 __sbit __at 0x89 IE0     ;  /* EXT. INTERRUPT 0 EDGE FLAG                   */
172 __sbit __at 0x8A IT1     ;  /* EXT. INTERRUPT 1 TYPE                        */
173 __sbit __at 0x8B IE1     ;  /* EXT. INTERRUPT 1 EDGE FLAG                   */
174 __sbit __at 0x8C TR0     ;  /* TIMER 0 ON/OFF CONTROL                       */
175 __sbit __at 0x8D TF0     ;  /* TIMER 0 OVERFLOW FLAG                        */
176 __sbit __at 0x8E TR1     ;  /* TIMER 1 ON/OFF CONTROL                       */
177 __sbit __at 0x8F TF1     ;  /* TIMER 1 OVERFLOW FLAG                        */
178
179 /*  P1  0x90 */
180 __sbit __at 0x90 P1_0    ;
181 __sbit __at 0x91 P1_1    ;
182 __sbit __at 0x92 P1_2    ;
183 __sbit __at 0x93 P1_3    ;
184 __sbit __at 0x94 P1_4    ;
185 __sbit __at 0x95 P1_5    ;
186 __sbit __at 0x96 P1_6    ;
187 __sbit __at 0x97 P1_7    ;
188
189 /*  SCON  0x98 */
190 __sbit __at 0x98 RI      ;  /* SCON.0 - RECEIVE INTERRUPT FLAG              */
191 __sbit __at 0x98 RI0     ;  /* SCON.0 - RECEIVE INTERRUPT FLAG              */
192 __sbit __at 0x99 TI      ;  /* SCON.1 - TRANSMIT INTERRUPT FLAG             */
193 __sbit __at 0x99 TI0     ;  /* SCON.1 - TRANSMIT INTERRUPT FLAG             */
194 __sbit __at 0x9A RB8     ;  /* SCON.2 - RECEIVE BIT 8                       */
195 __sbit __at 0x9A RB80    ;  /* SCON.2 - RECEIVE BIT 8                       */
196 __sbit __at 0x9B TB8     ;  /* SCON.3 - TRANSMIT BIT 8                      */
197 __sbit __at 0x9B TB80    ;  /* SCON.3 - TRANSMIT BIT 8                      */
198 __sbit __at 0x9C REN     ;  /* SCON.4 - RECEIVE ENABLE                      */
199 __sbit __at 0x9C REN0    ;  /* SCON.4 - RECEIVE ENABLE                      */
200 __sbit __at 0x9D SM2     ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE */
201 __sbit __at 0x9D SM20    ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE */
202 __sbit __at 0x9D MCE0    ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE */
203 __sbit __at 0x9E SM1     ;  /* SCON.6 - SERIAL MODE CONTROL BIT 1           */
204 __sbit __at 0x9E SM10    ;  /* SCON.6 - SERIAL MODE CONTROL BIT 1           */
205 __sbit __at 0x9F SM0     ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0           */
206 __sbit __at 0x9F SM00    ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0           */
207 __sbit __at 0x9F S0MODE  ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0           */
208
209 /*  P2  0xA0 */
210 __sbit __at 0xA0 P2_0    ;
211 __sbit __at 0xA1 P2_1    ;
212 __sbit __at 0xA2 P2_2    ;
213 __sbit __at 0xA3 P2_3    ;
214 __sbit __at 0xA4 P2_4    ;
215 __sbit __at 0xA5 P2_5    ;
216 __sbit __at 0xA6 P2_6    ;
217 __sbit __at 0xA7 P2_7    ;
218
219 /*  IE  0xA8 */
220 __sbit __at 0xA8 EX0     ;  /* EXTERNAL INTERRUPT 0 ENABLE               */
221 __sbit __at 0xA9 ET0     ;  /* TIMER 0 INTERRUPT ENABLE                  */
222 __sbit __at 0xAA EX1     ;  /* EXTERNAL INTERRUPT 1 ENABLE               */
223 __sbit __at 0xAB ET1     ;  /* TIMER 1 INTERRUPT ENABLE                  */
224 __sbit __at 0xAC ES      ;  /* SERIAL PORT 0 INTERRUPT ENABLE            */
225 __sbit __at 0xAC ES0     ;  /* SERIAL PORT 0 INTERRUPT ENABLE            */
226 __sbit __at 0xAD ET2     ;  /* TIMER 2 INTERRUPT ENABLE                  */
227 __sbit __at 0xAF EA      ;  /* GLOBAL INTERRUPT ENABLE                   */
228
229 /*  P3  0xB0 */
230 __sbit __at 0xB0 P3_0    ;
231 __sbit __at 0xB1 P3_1    ;
232 __sbit __at 0xB2 P3_2    ;
233 __sbit __at 0xB3 P3_3    ;
234 __sbit __at 0xB4 P3_4    ;
235 __sbit __at 0xB5 P3_5    ;
236 __sbit __at 0xB6 P3_6    ;
237 __sbit __at 0xB7 P3_7    ;
238
239 /*  IP  0xB8 */
240 __sbit __at 0xB8 PX0     ;  /* EXTERNAL INTERRUPT 0 PRIORITY             */
241 __sbit __at 0xB9 PT0     ;  /* TIMER 0 PRIORITY                          */
242 __sbit __at 0xBA PX1     ;  /* EXTERNAL INTERRUPT 1 PRIORITY             */
243 __sbit __at 0xBB PT1     ;  /* TIMER 1 PRIORITY                          */
244 __sbit __at 0xBC PS      ;  /* SERIAL PORT PRIORITY                      */
245 __sbit __at 0xBD PT2     ;  /* TIMER 2 PRIORITY                          */
246
247 /*  SMB0CN  0xC0 */
248 __sbit __at 0xC0 SMBTOE  ;  /* SMBUS 0 TIMEOUT ENABLE                    */
249 __sbit __at 0xC1 SMBFTE  ;  /* SMBUS 0 FREE TIMER ENABLE                 */
250 __sbit __at 0xC2 AA      ;  /* SMBUS 0 ASSERT/ACKNOWLEDGE FLAG           */
251 __sbit __at 0xC3 SI      ;  /* SMBUS 0 INTERRUPT PENDING FLAG            */
252 __sbit __at 0xC4 STO     ;  /* SMBUS 0 STOP FLAG                         */
253 __sbit __at 0xC5 STA     ;  /* SMBUS 0 START FLAG                        */
254 __sbit __at 0xC6 ENSMB   ;  /* SMBUS 0 ENABLE                            */
255 __sbit __at 0xC7 BUSY    ;  /* SMBUS 0 BUSY                              */
256
257 /*  T2CON  0xC8 */
258 __sbit __at 0xC8 CPRL2   ;  /* CAPTURE OR RELOAD SELECT                  */
259 __sbit __at 0xC9 CT2     ;  /* TIMER OR COUNTER SELECT                   */
260 __sbit __at 0xCA TR2     ;  /* TIMER 2 ON/OFF CONTROL                    */
261 __sbit __at 0xCB EXEN2   ;  /* TIMER 2 EXTERNAL ENABLE FLAG              */
262 __sbit __at 0xCC TCLK    ;  /* TRANSMIT CLOCK FLAG                       */
263 __sbit __at 0xCD RCLK    ;  /* RECEIVE CLOCK FLAG                        */
264 __sbit __at 0xCE EXF2    ;  /* EXTERNAL FLAG                             */
265 __sbit __at 0xCF TF2     ;  /* TIMER 2 OVERFLOW FLAG                     */
266
267 /*  PSW  0xD0 */
268 __sbit __at 0xD0 P       ;  /* ACCUMULATOR PARITY FLAG                   */
269 __sbit __at 0xD1 F1      ;  /* USER FLAG 1                               */
270 __sbit __at 0xD2 OV      ;  /* OVERFLOW FLAG                             */
271 __sbit __at 0xD3 RS0     ;  /* REGISTER BANK SELECT 0                    */
272 __sbit __at 0xD4 RS1     ;  /* REGISTER BANK SELECT 1                    */
273 __sbit __at 0xD5 F0      ;  /* USER FLAG 0                               */
274 __sbit __at 0xD6 AC      ;  /* AUXILIARY CARRY FLAG                      */
275 __sbit __at 0xD7 CY      ;  /* CARRY FLAG                                */
276
277 /*  PCA0CN  0xD8H */
278 __sbit __at 0xD8 CCF0    ;  /* PCA 0 MODULE 0 INTERRUPT FLAG             */
279 __sbit __at 0xD9 CCF1    ;  /* PCA 0 MODULE 1 INTERRUPT FLAG             */
280 __sbit __at 0xDA CCF2    ;  /* PCA 0 MODULE 2 INTERRUPT FLAG             */
281 __sbit __at 0xDB CCF3    ;  /* PCA 0 MODULE 3 INTERRUPT FLAG             */
282 __sbit __at 0xDC CCF4    ;  /* PCA 0 MODULE 4 INTERRUPT FLAG             */
283 __sbit __at 0xDE CR      ;  /* PCA 0 COUNTER RUN CONTROL BIT             */
284 __sbit __at 0xDF CF      ;  /* PCA 0 COUNTER OVERFLOW FLAG               */
285
286 /*  ADC0CN  0xE8H */
287 __sbit __at 0xE8 ADLJST  ;  /* ADC 0 RIGHT JUSTIFY DATA BIT              */
288 __sbit __at 0xE8 AD0LJST ;  /* ADC 0 RIGHT JUSTIFY DATA BIT              */
289 __sbit __at 0xE9 ADWINT  ;  /* ADC 0 WINDOW COMPARE INTERRUPT FLAG       */
290 __sbit __at 0xE9 AD0WINT ;  /* ADC 0 WINDOW COMPARE INTERRUPT FLAG       */
291 __sbit __at 0xEA ADSTM0  ;  /* ADC 0 START OF CONVERSION MODE BIT 0      */
292 __sbit __at 0xEA AD0CM0  ;  /* ADC 0 START OF CONVERSION MODE BIT 0      */
293 __sbit __at 0xEB ADSTM1  ;  /* ADC 0 START OF CONVERSION MODE BIT 1      */
294 __sbit __at 0xEB AD0CM1  ;  /* ADC 0 START OF CONVERSION MODE BIT 1      */
295 __sbit __at 0xEC ADBUSY  ;  /* ADC 0 BUSY FLAG                           */
296 __sbit __at 0xEC AD0BUSY ;  /* ADC 0 BUSY FLAG                           */
297 __sbit __at 0xED ADCINT  ;  /* ADC 0 CONVERISION COMPLETE INTERRUPT FLAG */
298 __sbit __at 0xED AD0INT  ;  /* ADC 0 CONVERISION COMPLETE INTERRUPT FLAG */
299 __sbit __at 0xEE ADCTM   ;  /* ADC 0 TRACK MODE                          */
300 __sbit __at 0xEE AD0TM   ;  /* ADC 0 TRACK MODE                          */
301 __sbit __at 0xEF ADCEN   ;  /* ADC 0 ENABLE                              */
302 __sbit __at 0xEF AD0EN   ;  /* ADC 0 ENABLE                              */
303
304 /*  SPI0CN  0xF8H */
305 __sbit __at 0xF8 SPIEN   ;  /* SPI 0 SPI ENABLE                          */
306 __sbit __at 0xF9 MSTEN   ;  /* SPI 0 MASTER ENABLE                       */
307 __sbit __at 0xFA SLVSEL  ;  /* SPI 0 SLAVE SELECT                        */
308 __sbit __at 0xFB TXBSY   ;  /* SPI 0 TX BUSY FLAG                        */
309 __sbit __at 0xFC RXOVRN  ;  /* SPI 0 RX OVERRUN FLAG                     */
310 __sbit __at 0xFD MODF    ;  /* SPI 0 MODE FAULT FLAG                     */
311 __sbit __at 0xFE WCOL    ;  /* SPI 0 WRITE COLLISION FLAG                */
312 __sbit __at 0xFF SPIF    ;  /* SPI 0 INTERRUPT FLAG                      */
313
314
315 /* Predefined SFR Bit Masks */
316
317 #define IDLE    0x01    /* PCON */
318 #define STOP    0x02    /* PCON */
319 #define SMOD0   0x80    /* PCON */
320 #define TF3     0x80    /* TMR3CN */
321 #define CPFIF   0x10    /* CPTnCN */
322 #define CPRIF   0x20    /* CPTnCN */
323 #define CPOUT   0x40    /* CPTnCN */
324 #define TR4     0x04    /* T4CON */
325 #define TF4     0x80    /* T4CON */
326 #define ECCF    0x01    /* PCA0CPMn */
327 #define PWM     0x02    /* PCA0CPMn */
328 #define TOG     0x04    /* PCA0CPMn */
329 #define MAT     0x08    /* PCA0CPMn */
330 #define CAPN    0x10    /* PCA0CPMn */
331 #define CAPP    0x20    /* PCA0CPMn */
332 #define ECOM    0x40    /* PCA0CPMn */
333 #define PWM16   0x80    /* PCA0CPMn */
334 #define PORSF   0x02    /* RSTSRC */
335 #define SWRSF   0x10    /* RSTSRC */
336 #define RI1     0x01    /* SCON1 */
337 #define TI1     0x02    /* SCON1 */
338 #define RB81    0x04    /* SCON1 */
339 #define TB81    0x08    /* SCON1 */
340 #define REN1    0x10    /* SCON1 */
341 #define SM21    0x20    /* SCON1 */
342 #define SM11    0x40    /* SCON1 */
343 #define SM01    0x80    /* SCON1 */
344
345 #endif