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