-- =================================================== -- Title: JalV2 device include file for PIC 16F1936 -- -- Author: Rob Hamerling, Copyright (c) 2008..2011, all rights reserved. -- -- Adapted-by: -- -- Revision: $Revision: 2828 $ -- -- Compiler: 2.4o -- -- This file is part of jallib (http://jallib.googlecode.com) -- Released under the ZLIB license (http://www.opensource.org/licenses/zlib-license.html) -- -- Description: -- Device include file for pic16f1936, containing: -- - Declaration of ports and pins of the chip. -- - Procedures for shadowing of ports and pins -- to circumvent the read-modify-write problem. -- - Symbolic definitions for configuration bits (fuses) -- - Some device dependent procedures for common -- operations, like: -- . enable_digital_io() -- -- Sources: -- - x:/mplab880/mplab ide/device/pic16f1936.dev -- - x:/mplab880/mpasm suite/lkr/16f1936_g.lkr -- -- Notes: -- - Created with Dev2Jal Rexx script version 0.1.24 -- - File creation date/time: 9 Nov 2011 11:12 -- -- =================================================== -- const word DEVICE_ID = 0x2360 const byte PICTYPE[] = "16F1936" const byte DATASHEET[] = "41364E" const byte PGMSPEC[] = "41397B" -- -- Vdd Range: 1.800-5.500 Nominal: 5.000 -- Vpp Range: 8.000-9.000 Default: 9.000 -- -- --------------------------------------------------- -- include chipdef_jallib -- common constants -- pragma target cpu PIC_14H -- (banks=32) pragma target chip 16f1936 pragma target bank 0x0080 pragma target page 0x0800 pragma stack 16 pragma code 8192 -- (words) pragma eeprom 0xF000,256 pragma ID 0x8000,4 pragma data 0x20-0x6F,0xA0-0xEF,0x120-0x16F,0x1A0-0x1EF,0x220-0x26F pragma data 0x2A0-0x2EF,0x320-0x32F pragma shared 0x70-0x7F -- var volatile byte _pic_accum shared at 0x07F -- (compiler) -- const word _FUSES_CT = 2 const word _FUSE_BASE[_FUSES_CT] = { 0x8007,0x8008 } const word _FUSES[_FUSES_CT] = { 0b_0011_1111_1111_1111, -- CONFIG1 0b_0011_1111_1111_1111 } -- CONFIG2 -- -- ------------------------------------------------ var volatile byte INDF0 shared at 0x000 var volatile byte _ind shared at 0x000 -- (compiler) -- ------------------------------------------------ var volatile byte INDF1 shared at 0x001 -- ------------------------------------------------ var volatile byte PCL shared at 0x002 var volatile byte _pcl shared at 0x002 -- (compiler) -- ------------------------------------------------ var volatile byte STATUS shared at 0x003 var volatile bit STATUS_NTO shared at STATUS : 4 var volatile bit STATUS_NPD shared at STATUS : 3 var volatile bit STATUS_Z shared at STATUS : 2 var volatile bit STATUS_DC shared at STATUS : 1 var volatile bit STATUS_C shared at STATUS : 0 var volatile byte _status shared at 0x003 -- (compiler) const byte _not_to = 4 -- (compiler) const byte _not_pd = 3 -- (compiler) const byte _z = 2 -- (compiler) const byte _dc = 1 -- (compiler) const byte _c = 0 -- (compiler) -- ------------------------------------------------ var volatile word FSR0 shared at 0x004 -- ------------------------------------------------ var volatile byte FSR0L shared at 0x004 var volatile byte _fsr0l shared at 0x004 -- (compiler) -- ------------------------------------------------ var volatile byte FSR0H shared at 0x005 var volatile byte _fsr0h shared at 0x005 -- (compiler) -- ------------------------------------------------ var volatile word FSR1 shared at 0x006 -- ------------------------------------------------ var volatile byte FSR1L shared at 0x006 var volatile byte _fsr1l shared at 0x006 -- (compiler) -- ------------------------------------------------ var volatile byte FSR1H shared at 0x007 var volatile byte _fsr1h shared at 0x007 -- (compiler) -- ------------------------------------------------ var volatile byte BSR shared at 0x008 var volatile bit BSR_BSR4 shared at BSR : 4 var volatile bit BSR_BSR3 shared at BSR : 3 var volatile bit BSR_BSR2 shared at BSR : 2 var volatile bit BSR_BSR1 shared at BSR : 1 var volatile bit BSR_BSR0 shared at BSR : 0 var volatile byte _bsr shared at 0x008 -- (compiler) -- ------------------------------------------------ var volatile byte WREG shared at 0x009 var volatile bit*8 WREG_WREG0 shared at WREG : 0 -- ------------------------------------------------ var volatile byte PCLATH shared at 0x00A var volatile bit*7 PCLATH_PCLATH shared at PCLATH : 0 var volatile byte _pclath shared at 0x00A -- (compiler) -- ------------------------------------------------ var volatile byte INTCON shared at 0x00B var volatile bit INTCON_GIE shared at INTCON : 7 var volatile bit INTCON_PEIE shared at INTCON : 6 var volatile bit INTCON_TMR0IE shared at INTCON : 5 var volatile bit INTCON_INTE shared at INTCON : 4 var volatile bit INTCON_IOCIE shared at INTCON : 3 var volatile bit INTCON_TMR0IF shared at INTCON : 2 var volatile bit INTCON_INTF shared at INTCON : 1 var volatile bit INTCON_IOCIF shared at INTCON : 0 -- ------------------------------------------------ var volatile byte PORTA at 0x00C var volatile bit PORTA_RA7 at PORTA : 7 var volatile bit PORTA_RA6 at PORTA : 6 var volatile bit PORTA_RA5 at PORTA : 5 var volatile bit PORTA_RA4 at PORTA : 4 var volatile bit PORTA_RA3 at PORTA : 3 var volatile bit PORTA_RA2 at PORTA : 2 var volatile bit PORTA_RA1 at PORTA : 1 var volatile bit PORTA_RA0 at PORTA : 0 -- ------------------------------------------------ var volatile byte PORTB at 0x00D var volatile bit PORTB_RB7 at PORTB : 7 var volatile bit PORTB_RB6 at PORTB : 6 var volatile bit PORTB_RB5 at PORTB : 5 var volatile bit PORTB_RB4 at PORTB : 4 var volatile bit PORTB_RB3 at PORTB : 3 var volatile bit PORTB_RB2 at PORTB : 2 var volatile bit PORTB_RB1 at PORTB : 1 var volatile bit PORTB_RB0 at PORTB : 0 -- ------------------------------------------------ var volatile byte PORTC at 0x00E var volatile bit PORTC_RC7 at PORTC : 7 var volatile bit PORTC_RC6 at PORTC : 6 var volatile bit PORTC_RC5 at PORTC : 5 var volatile bit PORTC_RC4 at PORTC : 4 var volatile bit PORTC_RC3 at PORTC : 3 var volatile bit PORTC_RC2 at PORTC : 2 var volatile bit PORTC_RC1 at PORTC : 1 var volatile bit PORTC_RC0 at PORTC : 0 -- ------------------------------------------------ var volatile byte PORTE at 0x010 var volatile bit PORTE_RE3 at PORTE : 3 var volatile bit pin_E3 at PORTE : 3 alias pin_MCLR is pin_E3 alias pin_VPP is pin_E3 -- ------------------------------------------------ var volatile byte PIR1 at 0x011 var volatile bit PIR1_TMR1GIF at PIR1 : 7 var volatile bit PIR1_ADIF at PIR1 : 6 var volatile bit PIR1_RCIF at PIR1 : 5 var volatile bit PIR1_TXIF at PIR1 : 4 var volatile bit PIR1_SSPIF at PIR1 : 3 var volatile bit PIR1_CCP1IF at PIR1 : 2 var volatile bit PIR1_TMR2IF at PIR1 : 1 var volatile bit PIR1_TMR1IF at PIR1 : 0 -- ------------------------------------------------ var volatile byte PIR2 at 0x012 var volatile bit PIR2_OSFIF at PIR2 : 7 var volatile bit PIR2_C2IF at PIR2 : 6 var volatile bit PIR2_C1IF at PIR2 : 5 var volatile bit PIR2_EEIF at PIR2 : 4 var volatile bit PIR2_BCLIF at PIR2 : 3 var volatile bit PIR2_LCDIF at PIR2 : 2 var volatile bit PIR2_CCP2IF at PIR2 : 0 -- ------------------------------------------------ var volatile byte PIR3 at 0x013 var volatile bit PIR3_CCP5IF at PIR3 : 6 var volatile bit PIR3_CCP4IF at PIR3 : 5 var volatile bit PIR3_CCP3IF at PIR3 : 4 var volatile bit PIR3_TMR6IF at PIR3 : 3 var volatile bit PIR3_TMR4IF at PIR3 : 1 -- ------------------------------------------------ var volatile byte TMR0 at 0x015 -- ------------------------------------------------ var volatile word TMR1 at 0x016 -- ------------------------------------------------ var volatile byte TMR1L at 0x016 -- ------------------------------------------------ var volatile byte TMR1H at 0x017 -- ------------------------------------------------ var volatile byte T1CON at 0x018 var volatile bit*2 T1CON_TMR1CS at T1CON : 6 var volatile bit*2 T1CON_T1CKPS at T1CON : 4 var volatile bit T1CON_T1OSCEN at T1CON : 3 var volatile bit T1CON_NT1SYNC at T1CON : 2 var volatile bit T1CON_TMR1ON at T1CON : 0 -- ------------------------------------------------ var volatile byte T1GCON at 0x019 var volatile bit T1GCON_TMR1GE at T1GCON : 7 var volatile bit T1GCON_T1GPOL at T1GCON : 6 var volatile bit T1GCON_T1GTM at T1GCON : 5 var volatile bit T1GCON_T1GSPM at T1GCON : 4 var volatile bit T1GCON_T1GGO at T1GCON : 3 var volatile bit T1GCON_NDONE at T1GCON : 3 var volatile bit T1GCON_T1GVAL at T1GCON : 2 var volatile bit T1GCON_T1GSS1 at T1GCON : 1 var volatile bit T1GCON_T1GSS0 at T1GCON : 0 -- ------------------------------------------------ var volatile byte TMR2 at 0x01A -- ------------------------------------------------ var volatile byte PR2 at 0x01B -- ------------------------------------------------ var volatile byte T2CON at 0x01C var volatile bit*4 T2CON_T2OUTPS at T2CON : 3 var volatile bit T2CON_TMR2ON at T2CON : 2 var volatile bit*2 T2CON_T2CKPS at T2CON : 0 -- ------------------------------------------------ var volatile byte CPSCON0 at 0x01E var volatile bit CPSCON0_CPSON at CPSCON0 : 7 var volatile bit CPSCON0_CPSRNG1 at CPSCON0 : 3 var volatile bit CPSCON0_CPSRNG0 at CPSCON0 : 2 var volatile bit CPSCON0_CPSOUT at CPSCON0 : 1 var volatile bit CPSCON0_T0XCS at CPSCON0 : 0 -- ------------------------------------------------ var volatile byte CPSCON1 at 0x01F var volatile bit CPSCON1_CPSCH2 at CPSCON1 : 2 var volatile bit CPSCON1_CPSCH1 at CPSCON1 : 1 var volatile bit CPSCON1_CPSCH0 at CPSCON1 : 0 -- ------------------------------------------------ var volatile byte TRISA at 0x08C var volatile byte PORTA_direction at TRISA -- procedure PORTA_low_direction'put(byte in x) is pragma inline TRISA = (TRISA & 0xF0) | (x & 0x0F) end procedure function PORTA_low_direction'get() return byte is pragma inline return (TRISA & 0x0F) end function -- procedure PORTA_high_direction'put(byte in x) is pragma inline TRISA = (TRISA & 0x0F) | (x << 4) end procedure function PORTA_high_direction'get() return byte is pragma inline return (TRISA >> 4) end function -- var volatile bit TRISA_TRISA7 at TRISA : 7 var volatile bit pin_A7_direction at TRISA : 7 alias pin_OSC1_direction is pin_A7_direction alias pin_CLKIN_direction is pin_A7_direction alias pin_SEG2_direction is pin_A7_direction -- var volatile bit TRISA_TRISA6 at TRISA : 6 var volatile bit pin_A6_direction at TRISA : 6 alias pin_OSC2_direction is pin_A6_direction alias pin_CLKOUT_direction is pin_A6_direction alias pin_VCAP_RA6_direction is pin_A6_direction alias pin_SEG1_direction is pin_A6_direction -- var volatile bit TRISA_TRISA5 at TRISA : 5 var volatile bit pin_A5_direction at TRISA : 5 alias pin_AN4_direction is pin_A5_direction alias pin_C2OUT_RA5_direction is pin_A5_direction alias pin_CPS7_direction is pin_A5_direction alias pin_SRNQ_RA5_direction is pin_A5_direction alias pin_SS_RA5_direction is pin_A5_direction alias pin_VCAP_RA5_direction is pin_A5_direction alias pin_SEG5_direction is pin_A5_direction -- var volatile bit TRISA_TRISA4 at TRISA : 4 var volatile bit pin_A4_direction at TRISA : 4 alias pin_C1OUT_direction is pin_A4_direction alias pin_CPS6_direction is pin_A4_direction alias pin_T0CKI_direction is pin_A4_direction alias pin_SRQ_direction is pin_A4_direction alias pin_CCP5_direction is pin_A4_direction alias pin_SEG4_direction is pin_A4_direction -- var volatile bit TRISA_TRISA3 at TRISA : 3 var volatile bit pin_A3_direction at TRISA : 3 alias pin_AN3_direction is pin_A3_direction alias pin_C1IN_POS_direction is pin_A3_direction alias pin_VREF_POS_direction is pin_A3_direction alias pin_COM3_direction is pin_A3_direction alias pin_SEG15_direction is pin_A3_direction -- var volatile bit TRISA_TRISA2 at TRISA : 2 var volatile bit pin_A2_direction at TRISA : 2 alias pin_AN2_direction is pin_A2_direction alias pin_C2IN_POS_direction is pin_A2_direction alias pin_VREF_NEG_direction is pin_A2_direction alias pin_DACOUT_direction is pin_A2_direction alias pin_COM2_direction is pin_A2_direction -- var volatile bit TRISA_TRISA1 at TRISA : 1 var volatile bit pin_A1_direction at TRISA : 1 alias pin_AN1_direction is pin_A1_direction alias pin_C12IN1_NEG_direction is pin_A1_direction alias pin_SEG7_direction is pin_A1_direction -- var volatile bit TRISA_TRISA0 at TRISA : 0 var volatile bit pin_A0_direction at TRISA : 0 alias pin_AN0_direction is pin_A0_direction alias pin_C12IN0_NEG_direction is pin_A0_direction alias pin_C2OUT_RA0_direction is pin_A0_direction alias pin_SRNQ_RA0_direction is pin_A0_direction alias pin_SS_RA0_direction is pin_A0_direction alias pin_VCAP_RA0_direction is pin_A0_direction alias pin_SEG12_direction is pin_A0_direction -- -- ------------------------------------------------ var volatile byte TRISB at 0x08D var volatile byte PORTB_direction at TRISB -- procedure PORTB_low_direction'put(byte in x) is pragma inline TRISB = (TRISB & 0xF0) | (x & 0x0F) end procedure function PORTB_low_direction'get() return byte is pragma inline return (TRISB & 0x0F) end function -- procedure PORTB_high_direction'put(byte in x) is pragma inline TRISB = (TRISB & 0x0F) | (x << 4) end procedure function PORTB_high_direction'get() return byte is pragma inline return (TRISB >> 4) end function -- var volatile bit TRISB_TRISB7 at TRISB : 7 var volatile bit pin_B7_direction at TRISB : 7 alias pin_ICSPDAT_direction is pin_B7_direction alias pin_ICDDAT_direction is pin_B7_direction alias pin_SEG13_direction is pin_B7_direction -- var volatile bit TRISB_TRISB6 at TRISB : 6 var volatile bit pin_B6_direction at TRISB : 6 alias pin_ICSPCLK_direction is pin_B6_direction alias pin_ICDCLK_direction is pin_B6_direction alias pin_SEG14_direction is pin_B6_direction -- var volatile bit TRISB_TRISB5 at TRISB : 5 var volatile bit pin_B5_direction at TRISB : 5 alias pin_AN13_direction is pin_B5_direction alias pin_CPS5_direction is pin_B5_direction alias pin_CCP3_RB5_direction is pin_B5_direction alias pin_P3A_RB5_direction is pin_B5_direction alias pin_T1G_RB5_direction is pin_B5_direction alias pin_COM1_direction is pin_B5_direction -- var volatile bit TRISB_TRISB4 at TRISB : 4 var volatile bit pin_B4_direction at TRISB : 4 alias pin_AN11_direction is pin_B4_direction alias pin_CPS4_direction is pin_B4_direction alias pin_P1D_direction is pin_B4_direction alias pin_COM0_direction is pin_B4_direction -- var volatile bit TRISB_TRISB3 at TRISB : 3 var volatile bit pin_B3_direction at TRISB : 3 alias pin_AN9_direction is pin_B3_direction alias pin_C12IN2_NEG_direction is pin_B3_direction alias pin_CPS3_direction is pin_B3_direction alias pin_CCP2_RB3_direction is pin_B3_direction alias pin_P2A_RB3_direction is pin_B3_direction alias pin_VLCD3_direction is pin_B3_direction -- var volatile bit TRISB_TRISB2 at TRISB : 2 var volatile bit pin_B2_direction at TRISB : 2 alias pin_AN8_direction is pin_B2_direction alias pin_CPS2_direction is pin_B2_direction alias pin_P1B_direction is pin_B2_direction alias pin_VLCD2_direction is pin_B2_direction -- var volatile bit TRISB_TRISB1 at TRISB : 1 var volatile bit pin_B1_direction at TRISB : 1 alias pin_AN10_direction is pin_B1_direction alias pin_C12IN3_NEG_direction is pin_B1_direction alias pin_CPS1_direction is pin_B1_direction alias pin_P1C_direction is pin_B1_direction alias pin_VLCD1_direction is pin_B1_direction -- var volatile bit TRISB_TRISB0 at TRISB : 0 var volatile bit pin_B0_direction at TRISB : 0 alias pin_AN12_direction is pin_B0_direction alias pin_CPS0_direction is pin_B0_direction alias pin_CCP4_direction is pin_B0_direction alias pin_SRI_direction is pin_B0_direction alias pin_SEG0_direction is pin_B0_direction -- -- ------------------------------------------------ var volatile byte TRISC at 0x08E var volatile byte PORTC_direction at TRISC -- procedure PORTC_low_direction'put(byte in x) is pragma inline TRISC = (TRISC & 0xF0) | (x & 0x0F) end procedure function PORTC_low_direction'get() return byte is pragma inline return (TRISC & 0x0F) end function -- procedure PORTC_high_direction'put(byte in x) is pragma inline TRISC = (TRISC & 0x0F) | (x << 4) end procedure function PORTC_high_direction'get() return byte is pragma inline return (TRISC >> 4) end function -- var volatile bit TRISC_TRISC7 at TRISC : 7 var volatile bit pin_C7_direction at TRISC : 7 alias pin_RX_direction is pin_C7_direction alias pin_RX1_direction is pin_C7_direction alias pin_DT_direction is pin_C7_direction alias pin_P3B_direction is pin_C7_direction alias pin_SEG8_direction is pin_C7_direction -- var volatile bit TRISC_TRISC6 at TRISC : 6 var volatile bit pin_C6_direction at TRISC : 6 alias pin_TX_direction is pin_C6_direction alias pin_TX1_direction is pin_C6_direction alias pin_CK_direction is pin_C6_direction alias pin_CCP3_RC6_direction is pin_C6_direction alias pin_P3A_RC6_direction is pin_C6_direction alias pin_SEG9_direction is pin_C6_direction -- var volatile bit TRISC_TRISC5 at TRISC : 5 var volatile bit pin_C5_direction at TRISC : 5 alias pin_SDO_direction is pin_C5_direction alias pin_SEG10_direction is pin_C5_direction -- var volatile bit TRISC_TRISC4 at TRISC : 4 var volatile bit pin_C4_direction at TRISC : 4 alias pin_SDI_direction is pin_C4_direction alias pin_SDA_direction is pin_C4_direction alias pin_T1G_RC4_direction is pin_C4_direction alias pin_SEG11_direction is pin_C4_direction -- var volatile bit TRISC_TRISC3 at TRISC : 3 var volatile bit pin_C3_direction at TRISC : 3 alias pin_SCK_direction is pin_C3_direction alias pin_SCL_direction is pin_C3_direction alias pin_SEG6_direction is pin_C3_direction -- var volatile bit TRISC_TRISC2 at TRISC : 2 var volatile bit pin_C2_direction at TRISC : 2 alias pin_CCP1_direction is pin_C2_direction alias pin_P1A_direction is pin_C2_direction alias pin_SEG3_direction is pin_C2_direction -- var volatile bit TRISC_TRISC1 at TRISC : 1 var volatile bit pin_C1_direction at TRISC : 1 alias pin_T1OSI_direction is pin_C1_direction alias pin_CCP2_RC1_direction is pin_C1_direction alias pin_P2A_RC1_direction is pin_C1_direction -- var volatile bit TRISC_TRISC0 at TRISC : 0 var volatile bit pin_C0_direction at TRISC : 0 alias pin_T1OSO_direction is pin_C0_direction alias pin_T1CKI_direction is pin_C0_direction alias pin_P2B_direction is pin_C0_direction -- -- ------------------------------------------------ var volatile byte TRISE at 0x090 var volatile byte PORTE_direction at TRISE -- procedure PORTE_low_direction'put(byte in x) is pragma inline TRISE = (TRISE & 0xF0) | (x & 0x0F) end procedure function PORTE_low_direction'get() return byte is pragma inline return (TRISE & 0x0F) end function -- procedure PORTE_high_direction'put(byte in x) is pragma inline TRISE = (TRISE & 0x0F) | (x << 4) end procedure function PORTE_high_direction'get() return byte is pragma inline return (TRISE >> 4) end function -- var volatile bit TRISE_TRISE3 at TRISE : 3 var volatile bit pin_E3_direction at TRISE : 3 alias pin_MCLR_direction is pin_E3_direction alias pin_VPP_direction is pin_E3_direction -- -- ------------------------------------------------ var volatile byte PIE1 at 0x091 var volatile bit PIE1_TMR1GIE at PIE1 : 7 var volatile bit PIE1_ADIE at PIE1 : 6 var volatile bit PIE1_RCIE at PIE1 : 5 var volatile bit PIE1_TXIE at PIE1 : 4 var volatile bit PIE1_SSPIE at PIE1 : 3 var volatile bit PIE1_CCP1IE at PIE1 : 2 var volatile bit PIE1_TMR2IE at PIE1 : 1 var volatile bit PIE1_TMR1IE at PIE1 : 0 -- ------------------------------------------------ var volatile byte PIE2 at 0x092 var volatile bit PIE2_OSFIE at PIE2 : 7 var volatile bit PIE2_C2IE at PIE2 : 6 var volatile bit PIE2_C1IE at PIE2 : 5 var volatile bit PIE2_EEIE at PIE2 : 4 var volatile bit PIE2_BCLIE at PIE2 : 3 var volatile bit PIE2_LCDIE at PIE2 : 2 var volatile bit PIE2_CCP2IE at PIE2 : 0 -- ------------------------------------------------ var volatile byte PIE3 at 0x093 var volatile bit PIE3_CCP5IE at PIE3 : 6 var volatile bit PIE3_CCP4IE at PIE3 : 5 var volatile bit PIE3_CCP3IE at PIE3 : 4 var volatile bit PIE3_TMR6IE at PIE3 : 3 var volatile bit PIE3_TMR4IE at PIE3 : 1 -- ------------------------------------------------ var volatile byte OPTION_REG at 0x095 var volatile bit OPTION_REG_NWPUEN at OPTION_REG : 7 var volatile bit OPTION_REG_INTEDG at OPTION_REG : 6 var volatile bit OPTION_REG_TMR0CS at OPTION_REG : 5 alias T0CON_T0CS is OPTION_REG_TMR0CS var volatile bit OPTION_REG_TMR0SE at OPTION_REG : 4 alias T0CON_T0SE is OPTION_REG_TMR0SE var volatile bit OPTION_REG_PSA at OPTION_REG : 3 alias T0CON_PSA is OPTION_REG_PSA var volatile bit*3 OPTION_REG_PS at OPTION_REG : 0 alias T0CON_T0PS is OPTION_REG_PS -- ------------------------------------------------ var volatile byte PCON at 0x096 var volatile bit PCON_STKOVF at PCON : 7 var volatile bit PCON_STKUNF at PCON : 6 var volatile bit PCON_NRMCLR at PCON : 3 var volatile bit PCON_NRI at PCON : 2 var volatile bit PCON_NPOR at PCON : 1 var volatile bit PCON_NBOR at PCON : 0 -- ------------------------------------------------ var volatile byte WDTCON at 0x097 var volatile bit*5 WDTCON_WDTPS at WDTCON : 1 var volatile bit WDTCON_SWDTEN at WDTCON : 0 -- ------------------------------------------------ var volatile byte OSCTUNE at 0x098 var volatile bit*6 OSCTUNE_TUN at OSCTUNE : 0 -- ------------------------------------------------ var volatile byte OSCCON at 0x099 var volatile bit OSCCON_SPLLEN at OSCCON : 7 var volatile bit*4 OSCCON_IRCF at OSCCON : 3 var volatile bit*2 OSCCON_SCS at OSCCON : 0 -- ------------------------------------------------ var volatile byte OSCSTAT at 0x09A var volatile bit OSCSTAT_T1OSCR at OSCSTAT : 7 var volatile bit OSCSTAT_PLLR at OSCSTAT : 6 var volatile bit OSCSTAT_OSTS at OSCSTAT : 5 var volatile bit OSCSTAT_HFIOFR at OSCSTAT : 4 var volatile bit OSCSTAT_HFIOFL at OSCSTAT : 3 var volatile bit OSCSTAT_MFIOFR at OSCSTAT : 2 var volatile bit OSCSTAT_LFIOFR at OSCSTAT : 1 var volatile bit OSCSTAT_HFIOFS at OSCSTAT : 0 -- ------------------------------------------------ var volatile word ADRES at 0x09B -- ------------------------------------------------ var volatile byte ADRESL at 0x09B -- ------------------------------------------------ var volatile byte ADRESH at 0x09C -- ------------------------------------------------ var volatile byte ADCON0 at 0x09D var volatile bit*5 ADCON0_CHS at ADCON0 : 2 var volatile bit ADCON0_GO at ADCON0 : 1 var volatile bit ADCON0_NDONE at ADCON0 : 1 var volatile bit ADCON0_ADON at ADCON0 : 0 -- ------------------------------------------------ var volatile byte ADCON1 at 0x09E var volatile bit ADCON1_ADFM at ADCON1 : 7 var volatile bit*3 ADCON1_ADCS at ADCON1 : 4 var volatile bit ADCON1_ADNREF at ADCON1 : 2 var volatile bit ADCON1_ADPREF1 at ADCON1 : 1 var volatile bit ADCON1_ADPREF0 at ADCON1 : 0 -- ------------------------------------------------ var volatile byte LATA at 0x10C -- procedure PORTA'put(byte in x at LATA) is pragma inline end procedure -- procedure PORTA_low'put(byte in x) is pragma inline LATA = (LATA & 0xF0) | (x & 0x0F) end procedure function PORTA_low'get() return byte is pragma inline return (PORTA & 0x0F) end function -- procedure PORTA_high'put(byte in x) is pragma inline LATA = (LATA & 0x0F) | (x << 4) end procedure function PORTA_high'get() return byte is pragma inline return (PORTA >> 4) end function -- var volatile bit LATA_LATA7 at LATA : 7 var volatile bit pin_A7 at PORTA : 7 alias pin_OSC1 is pin_A7 alias pin_CLKIN is pin_A7 alias pin_SEG2 is pin_A7 -- procedure pin_A7'put(bit in x at LATA : 7) is pragma inline end procedure -- var volatile bit LATA_LATA6 at LATA : 6 var volatile bit pin_A6 at PORTA : 6 alias pin_OSC2 is pin_A6 alias pin_CLKOUT is pin_A6 alias pin_VCAP_RA6 is pin_A6 alias pin_SEG1 is pin_A6 -- procedure pin_A6'put(bit in x at LATA : 6) is pragma inline end procedure -- var volatile bit LATA_LATA5 at LATA : 5 var volatile bit pin_A5 at PORTA : 5 alias pin_AN4 is pin_A5 alias pin_C2OUT_RA5 is pin_A5 alias pin_CPS7 is pin_A5 alias pin_SRNQ_RA5 is pin_A5 alias pin_SS_RA5 is pin_A5 alias pin_VCAP_RA5 is pin_A5 alias pin_SEG5 is pin_A5 -- procedure pin_A5'put(bit in x at LATA : 5) is pragma inline end procedure -- var volatile bit LATA_LATA4 at LATA : 4 var volatile bit pin_A4 at PORTA : 4 alias pin_C1OUT is pin_A4 alias pin_CPS6 is pin_A4 alias pin_T0CKI is pin_A4 alias pin_SRQ is pin_A4 alias pin_CCP5 is pin_A4 alias pin_SEG4 is pin_A4 -- procedure pin_A4'put(bit in x at LATA : 4) is pragma inline end procedure -- var volatile bit LATA_LATA3 at LATA : 3 var volatile bit pin_A3 at PORTA : 3 alias pin_AN3 is pin_A3 alias pin_C1IN_POS is pin_A3 alias pin_VREF_POS is pin_A3 alias pin_COM3 is pin_A3 alias pin_SEG15 is pin_A3 -- procedure pin_A3'put(bit in x at LATA : 3) is pragma inline end procedure -- var volatile bit LATA_LATA2 at LATA : 2 var volatile bit pin_A2 at PORTA : 2 alias pin_AN2 is pin_A2 alias pin_C2IN_POS is pin_A2 alias pin_VREF_NEG is pin_A2 alias pin_DACOUT is pin_A2 alias pin_COM2 is pin_A2 -- procedure pin_A2'put(bit in x at LATA : 2) is pragma inline end procedure -- var volatile bit LATA_LATA1 at LATA : 1 var volatile bit pin_A1 at PORTA : 1 alias pin_AN1 is pin_A1 alias pin_C12IN1_NEG is pin_A1 alias pin_SEG7 is pin_A1 -- procedure pin_A1'put(bit in x at LATA : 1) is pragma inline end procedure -- var volatile bit LATA_LATA0 at LATA : 0 var volatile bit pin_A0 at PORTA : 0 alias pin_AN0 is pin_A0 alias pin_C12IN0_NEG is pin_A0 alias pin_C2OUT_RA0 is pin_A0 alias pin_SRNQ_RA0 is pin_A0 alias pin_SS_RA0 is pin_A0 alias pin_VCAP_RA0 is pin_A0 alias pin_SEG12 is pin_A0 -- procedure pin_A0'put(bit in x at LATA : 0) is pragma inline end procedure -- -- ------------------------------------------------ var volatile byte LATB at 0x10D -- procedure PORTB'put(byte in x at LATB) is pragma inline end procedure -- procedure PORTB_low'put(byte in x) is pragma inline LATB = (LATB & 0xF0) | (x & 0x0F) end procedure function PORTB_low'get() return byte is pragma inline return (PORTB & 0x0F) end function -- procedure PORTB_high'put(byte in x) is pragma inline LATB = (LATB & 0x0F) | (x << 4) end procedure function PORTB_high'get() return byte is pragma inline return (PORTB >> 4) end function -- var volatile bit LATB_LATB7 at LATB : 7 var volatile bit pin_B7 at PORTB : 7 alias pin_ICSPDAT is pin_B7 alias pin_ICDDAT is pin_B7 alias pin_SEG13 is pin_B7 -- procedure pin_B7'put(bit in x at LATB : 7) is pragma inline end procedure -- var volatile bit LATB_LATB6 at LATB : 6 var volatile bit pin_B6 at PORTB : 6 alias pin_ICSPCLK is pin_B6 alias pin_ICDCLK is pin_B6 alias pin_SEG14 is pin_B6 -- procedure pin_B6'put(bit in x at LATB : 6) is pragma inline end procedure -- var volatile bit LATB_LATB5 at LATB : 5 var volatile bit pin_B5 at PORTB : 5 alias pin_AN13 is pin_B5 alias pin_CPS5 is pin_B5 alias pin_CCP3_RB5 is pin_B5 alias pin_P3A_RB5 is pin_B5 alias pin_T1G_RB5 is pin_B5 alias pin_COM1 is pin_B5 -- procedure pin_B5'put(bit in x at LATB : 5) is pragma inline end procedure -- var volatile bit LATB_LATB4 at LATB : 4 var volatile bit pin_B4 at PORTB : 4 alias pin_AN11 is pin_B4 alias pin_CPS4 is pin_B4 alias pin_P1D is pin_B4 alias pin_COM0 is pin_B4 -- procedure pin_B4'put(bit in x at LATB : 4) is pragma inline end procedure -- var volatile bit LATB_LATB3 at LATB : 3 var volatile bit pin_B3 at PORTB : 3 alias pin_AN9 is pin_B3 alias pin_C12IN2_NEG is pin_B3 alias pin_CPS3 is pin_B3 alias pin_CCP2_RB3 is pin_B3 alias pin_P2A_RB3 is pin_B3 alias pin_VLCD3 is pin_B3 -- procedure pin_B3'put(bit in x at LATB : 3) is pragma inline end procedure -- var volatile bit LATB_LATB2 at LATB : 2 var volatile bit pin_B2 at PORTB : 2 alias pin_AN8 is pin_B2 alias pin_CPS2 is pin_B2 alias pin_P1B is pin_B2 alias pin_VLCD2 is pin_B2 -- procedure pin_B2'put(bit in x at LATB : 2) is pragma inline end procedure -- var volatile bit LATB_LATB1 at LATB : 1 var volatile bit pin_B1 at PORTB : 1 alias pin_AN10 is pin_B1 alias pin_C12IN3_NEG is pin_B1 alias pin_CPS1 is pin_B1 alias pin_P1C is pin_B1 alias pin_VLCD1 is pin_B1 -- procedure pin_B1'put(bit in x at LATB : 1) is pragma inline end procedure -- var volatile bit LATB_LATB0 at LATB : 0 var volatile bit pin_B0 at PORTB : 0 alias pin_AN12 is pin_B0 alias pin_CPS0 is pin_B0 alias pin_CCP4 is pin_B0 alias pin_SRI is pin_B0 alias pin_SEG0 is pin_B0 -- procedure pin_B0'put(bit in x at LATB : 0) is pragma inline end procedure -- -- ------------------------------------------------ var volatile byte LATC at 0x10E -- procedure PORTC'put(byte in x at LATC) is pragma inline end procedure -- procedure PORTC_low'put(byte in x) is pragma inline LATC = (LATC & 0xF0) | (x & 0x0F) end procedure function PORTC_low'get() return byte is pragma inline return (PORTC & 0x0F) end function -- procedure PORTC_high'put(byte in x) is pragma inline LATC = (LATC & 0x0F) | (x << 4) end procedure function PORTC_high'get() return byte is pragma inline return (PORTC >> 4) end function -- var volatile bit LATC_LATC7 at LATC : 7 var volatile bit pin_C7 at PORTC : 7 alias pin_RX is pin_C7 alias pin_RX1 is pin_C7 alias pin_DT is pin_C7 alias pin_P3B is pin_C7 alias pin_SEG8 is pin_C7 -- procedure pin_C7'put(bit in x at LATC : 7) is pragma inline end procedure -- var volatile bit LATC_LATC6 at LATC : 6 var volatile bit pin_C6 at PORTC : 6 alias pin_TX is pin_C6 alias pin_TX1 is pin_C6 alias pin_CK is pin_C6 alias pin_CCP3_RC6 is pin_C6 alias pin_P3A_RC6 is pin_C6 alias pin_SEG9 is pin_C6 -- procedure pin_C6'put(bit in x at LATC : 6) is pragma inline end procedure -- var volatile bit LATC_LATC5 at LATC : 5 var volatile bit pin_C5 at PORTC : 5 alias pin_SDO is pin_C5 alias pin_SEG10 is pin_C5 -- procedure pin_C5'put(bit in x at LATC : 5) is pragma inline end procedure -- var volatile bit LATC_LATC4 at LATC : 4 var volatile bit pin_C4 at PORTC : 4 alias pin_SDI is pin_C4 alias pin_SDA is pin_C4 alias pin_T1G_RC4 is pin_C4 alias pin_SEG11 is pin_C4 -- procedure pin_C4'put(bit in x at LATC : 4) is pragma inline end procedure -- var volatile bit LATC_LATC3 at LATC : 3 var volatile bit pin_C3 at PORTC : 3 alias pin_SCK is pin_C3 alias pin_SCL is pin_C3 alias pin_SEG6 is pin_C3 -- procedure pin_C3'put(bit in x at LATC : 3) is pragma inline end procedure -- var volatile bit LATC_LATC2 at LATC : 2 var volatile bit pin_C2 at PORTC : 2 alias pin_CCP1 is pin_C2 alias pin_P1A is pin_C2 alias pin_SEG3 is pin_C2 -- procedure pin_C2'put(bit in x at LATC : 2) is pragma inline end procedure -- var volatile bit LATC_LATC1 at LATC : 1 var volatile bit pin_C1 at PORTC : 1 alias pin_T1OSI is pin_C1 alias pin_CCP2_RC1 is pin_C1 alias pin_P2A_RC1 is pin_C1 -- procedure pin_C1'put(bit in x at LATC : 1) is pragma inline end procedure -- var volatile bit LATC_LATC0 at LATC : 0 var volatile bit pin_C0 at PORTC : 0 alias pin_T1OSO is pin_C0 alias pin_T1CKI is pin_C0 alias pin_P2B is pin_C0 -- procedure pin_C0'put(bit in x at LATC : 0) is pragma inline end procedure -- -- ------------------------------------------------ var volatile byte LATE at 0x110 -- procedure PORTE'put(byte in x at LATE) is pragma inline end procedure -- procedure PORTE_low'put(byte in x) is pragma inline LATE = (LATE & 0xF0) | (x & 0x0F) end procedure function PORTE_low'get() return byte is pragma inline return (PORTE & 0x0F) end function -- procedure PORTE_high'put(byte in x) is pragma inline LATE = (LATE & 0x0F) | (x << 4) end procedure function PORTE_high'get() return byte is pragma inline return (PORTE >> 4) end function -- var volatile bit LATE_LATE3 at LATE : 3 procedure pin_E3'put(bit in x at LATE : 3) is pragma inline end procedure -- -- ------------------------------------------------ var volatile byte CM1CON0 at 0x111 var volatile bit CM1CON0_C1ON at CM1CON0 : 7 var volatile bit CM1CON0_C1OUT at CM1CON0 : 6 var volatile bit CM1CON0_C1OE at CM1CON0 : 5 var volatile bit CM1CON0_C1POL at CM1CON0 : 4 var volatile bit CM1CON0_C1SP at CM1CON0 : 2 var volatile bit CM1CON0_C1HYS at CM1CON0 : 1 var volatile bit CM1CON0_C1SYNC at CM1CON0 : 0 -- ------------------------------------------------ var volatile byte CM1CON1 at 0x112 var volatile bit CM1CON1_C1INTP at CM1CON1 : 7 var volatile bit CM1CON1_C1INTN at CM1CON1 : 6 var volatile bit CM1CON1_C1PCH1 at CM1CON1 : 5 var volatile bit CM1CON1_C1PCH0 at CM1CON1 : 4 var volatile bit CM1CON1_C1NCH1 at CM1CON1 : 1 var volatile bit CM1CON1_C1NCH0 at CM1CON1 : 0 -- ------------------------------------------------ var volatile byte CM2CON0 at 0x113 var volatile bit CM2CON0_C2ON at CM2CON0 : 7 var volatile bit CM2CON0_C2OUT at CM2CON0 : 6 var volatile bit CM2CON0_C2OE at CM2CON0 : 5 var volatile bit CM2CON0_C2POL at CM2CON0 : 4 var volatile bit CM2CON0_C2SP at CM2CON0 : 2 var volatile bit CM2CON0_C2HYS at CM2CON0 : 1 var volatile bit CM2CON0_C2SYNC at CM2CON0 : 0 -- ------------------------------------------------ var volatile byte CM2CON1 at 0x114 var volatile bit CM2CON1_C2INTP at CM2CON1 : 7 var volatile bit CM2CON1_C2INTN at CM2CON1 : 6 var volatile bit CM2CON1_C2PCH1 at CM2CON1 : 5 var volatile bit CM2CON1_C2PCH0 at CM2CON1 : 4 var volatile bit CM2CON1_C2NCH1 at CM2CON1 : 1 var volatile bit CM2CON1_C2NCH0 at CM2CON1 : 0 -- ------------------------------------------------ var volatile byte CMOUT at 0x115 var volatile bit CMOUT_MC2OUT at CMOUT : 1 var volatile bit CMOUT_MC1OUT at CMOUT : 0 -- ------------------------------------------------ var volatile byte BORCON at 0x116 var volatile bit BORCON_SBOREN at BORCON : 7 var volatile bit BORCON_BORRDY at BORCON : 0 -- ------------------------------------------------ var volatile byte FVRCON at 0x117 var volatile bit FVRCON_FVREN at FVRCON : 7 var volatile bit FVRCON_FVRRDY at FVRCON : 6 var volatile bit FVRCON_TSEN at FVRCON : 5 var volatile bit FVRCON_TSRNG at FVRCON : 4 var volatile bit FVRCON_CDAFVR1 at FVRCON : 3 var volatile bit FVRCON_CDAFVR0 at FVRCON : 2 var volatile bit FVRCON_ADFVR1 at FVRCON : 1 var volatile bit FVRCON_ADFVR0 at FVRCON : 0 -- ------------------------------------------------ var volatile byte DACCON0 at 0x118 var volatile bit DACCON0_DACEN at DACCON0 : 7 var volatile bit DACCON0_DACLPS at DACCON0 : 6 var volatile bit DACCON0_DACOE at DACCON0 : 5 var volatile bit DACCON0_DACPSS1 at DACCON0 : 3 var volatile bit DACCON0_DACPSS0 at DACCON0 : 2 var volatile bit DACCON0_DACNSS at DACCON0 : 0 -- ------------------------------------------------ var volatile byte DACCON1 at 0x119 var volatile bit DACCON1_DACR4 at DACCON1 : 4 var volatile bit DACCON1_DACR3 at DACCON1 : 3 var volatile bit DACCON1_DACR2 at DACCON1 : 2 var volatile bit DACCON1_DACR1 at DACCON1 : 1 var volatile bit DACCON1_DACR0 at DACCON1 : 0 -- ------------------------------------------------ var volatile byte SRCON0 at 0x11A var volatile bit SRCON0_SRLEN at SRCON0 : 7 var volatile bit SRCON0_SRCLK2 at SRCON0 : 6 var volatile bit SRCON0_SRCLK1 at SRCON0 : 5 var volatile bit SRCON0_SRCLK0 at SRCON0 : 4 var volatile bit SRCON0_SRQEN at SRCON0 : 3 var volatile bit SRCON0_SRNQEN at SRCON0 : 2 var volatile bit SRCON0_SRPS at SRCON0 : 1 var volatile bit SRCON0_SRPR at SRCON0 : 0 -- ------------------------------------------------ var volatile byte SRCON1 at 0x11B var volatile bit SRCON1_SRSPE at SRCON1 : 7 var volatile bit SRCON1_SRSCKE at SRCON1 : 6 var volatile bit SRCON1_SRSC2E at SRCON1 : 5 var volatile bit SRCON1_SRSC1E at SRCON1 : 4 var volatile bit SRCON1_SRRPE at SRCON1 : 3 var volatile bit SRCON1_SRRCKE at SRCON1 : 2 var volatile bit SRCON1_SRRC2E at SRCON1 : 1 var volatile bit SRCON1_SRRC1E at SRCON1 : 0 -- ------------------------------------------------ var volatile byte APFCON at 0x11D var volatile bit APFCON_CCP3SEL at APFCON : 6 var volatile bit APFCON_T1GSEL at APFCON : 5 var volatile bit APFCON_P2BSEL at APFCON : 4 var volatile bit APFCON_SRNQSEL at APFCON : 3 var volatile bit APFCON_C2OUTSEL at APFCON : 2 var volatile bit APFCON_SSSEL at APFCON : 1 var volatile bit APFCON_CCP2SEL at APFCON : 0 -- ------------------------------------------------ var volatile byte ANSELA at 0x18C var volatile bit JANSEL_ANS4 at ANSELA : 5 var volatile bit JANSEL_ANS3 at ANSELA : 3 var volatile bit JANSEL_ANS2 at ANSELA : 2 var volatile bit JANSEL_ANS1 at ANSELA : 1 var volatile bit JANSEL_ANS0 at ANSELA : 0 -- ------------------------------------------------ var volatile byte ANSELB at 0x18D var volatile bit JANSEL_ANS13 at ANSELB : 5 var volatile bit JANSEL_ANS11 at ANSELB : 4 var volatile bit JANSEL_ANS9 at ANSELB : 3 var volatile bit JANSEL_ANS8 at ANSELB : 2 var volatile bit JANSEL_ANS10 at ANSELB : 1 var volatile bit JANSEL_ANS12 at ANSELB : 0 -- ------------------------------------------------ var volatile word EEADR at 0x191 -- ------------------------------------------------ var volatile byte EEADRL at 0x191 -- ------------------------------------------------ var volatile byte EEADRH at 0x192 var volatile bit*7 EEADRH_EEADRH at EEADRH : 0 -- ------------------------------------------------ var volatile word EEDAT at 0x193 -- ------------------------------------------------ var volatile byte EEDATL at 0x193 -- ------------------------------------------------ var volatile byte EEDATH at 0x194 var volatile bit*6 EEDATH_EEDATH at EEDATH : 0 -- ------------------------------------------------ var volatile byte EECON1 at 0x195 var volatile bit EECON1_EEPGD at EECON1 : 7 var volatile bit EECON1_CFGS at EECON1 : 6 var volatile bit EECON1_LWLO at EECON1 : 5 var volatile bit EECON1_FREE at EECON1 : 4 var volatile bit EECON1_WRERR at EECON1 : 3 var volatile bit EECON1_WREN at EECON1 : 2 var volatile bit EECON1_WR at EECON1 : 1 var volatile bit EECON1_RD at EECON1 : 0 -- ------------------------------------------------ var volatile byte EECON2 at 0x196 -- ------------------------------------------------ var volatile byte RCREG at 0x199 -- ------------------------------------------------ var volatile byte TXREG at 0x19A -- ------------------------------------------------ var volatile byte SPBRGL at 0x19B alias SPBRG is SPBRGL var volatile bit*8 SPBRGL_SPBRG at SPBRGL : 0 -- ------------------------------------------------ var volatile byte SPBRGH at 0x19C -- ------------------------------------------------ var volatile byte RCSTA at 0x19D var volatile bit RCSTA_SPEN at RCSTA : 7 var volatile bit RCSTA_RX9 at RCSTA : 6 var volatile bit RCSTA_SREN at RCSTA : 5 var volatile bit RCSTA_CREN at RCSTA : 4 var volatile bit RCSTA_ADDEN at RCSTA : 3 var volatile bit RCSTA_FERR at RCSTA : 2 var volatile bit RCSTA_OERR at RCSTA : 1 var volatile bit RCSTA_RX9D at RCSTA : 0 -- ------------------------------------------------ var volatile byte TXSTA at 0x19E var volatile bit TXSTA_CSRC at TXSTA : 7 var volatile bit TXSTA_TX9 at TXSTA : 6 var volatile bit TXSTA_TXEN at TXSTA : 5 var volatile bit TXSTA_SYNC at TXSTA : 4 var volatile bit TXSTA_SENDB at TXSTA : 3 var volatile bit TXSTA_BRGH at TXSTA : 2 var volatile bit TXSTA_TRMT at TXSTA : 1 var volatile bit TXSTA_TX9D at TXSTA : 0 -- ------------------------------------------------ var volatile byte BAUDCON at 0x19F var volatile bit BAUDCON_ABDOVF at BAUDCON : 7 var volatile bit BAUDCON_RCIDL at BAUDCON : 6 var volatile bit BAUDCON_SCKP at BAUDCON : 4 var volatile bit BAUDCON_BRG16 at BAUDCON : 3 var volatile bit BAUDCON_WUE at BAUDCON : 1 var volatile bit BAUDCON_ABDEN at BAUDCON : 0 -- ------------------------------------------------ var volatile byte WPUB at 0x20D var volatile bit WPUB_WPUB7 at WPUB : 7 var volatile bit WPUB_WPUB6 at WPUB : 6 var volatile bit WPUB_WPUB5 at WPUB : 5 var volatile bit WPUB_WPUB4 at WPUB : 4 var volatile bit WPUB_WPUB3 at WPUB : 3 var volatile bit WPUB_WPUB2 at WPUB : 2 var volatile bit WPUB_WPUB1 at WPUB : 1 var volatile bit WPUB_WPUB0 at WPUB : 0 -- ------------------------------------------------ var volatile byte WPUE at 0x210 var volatile bit WPUE_WPUE3 at WPUE : 3 -- ------------------------------------------------ var volatile byte SSPBUF at 0x211 -- ------------------------------------------------ var volatile byte SSPADD at 0x212 -- ------------------------------------------------ var volatile byte SSPMSK at 0x213 -- ------------------------------------------------ var volatile byte SSPSTAT at 0x214 var volatile bit SSPSTAT_SMP at SSPSTAT : 7 var volatile bit SSPSTAT_CKE at SSPSTAT : 6 var volatile bit SSPSTAT_D at SSPSTAT : 5 var volatile bit SSPSTAT_NA at SSPSTAT : 5 var volatile bit SSPSTAT_P at SSPSTAT : 4 var volatile bit SSPSTAT_S at SSPSTAT : 3 var volatile bit SSPSTAT_R at SSPSTAT : 2 var volatile bit SSPSTAT_NW at SSPSTAT : 2 var volatile bit SSPSTAT_UA at SSPSTAT : 1 var volatile bit SSPSTAT_BF at SSPSTAT : 0 -- ------------------------------------------------ var volatile byte SSPCON1 at 0x215 alias SSPCON is SSPCON1 var volatile bit SSPCON1_WCOL at SSPCON1 : 7 alias SSPCON_WCOL is SSPCON1_WCOL var volatile bit SSPCON1_SSPOV at SSPCON1 : 6 alias SSPCON_SSPOV is SSPCON1_SSPOV var volatile bit SSPCON1_SSPEN at SSPCON1 : 5 alias SSPCON_SSPEN is SSPCON1_SSPEN var volatile bit SSPCON1_CKP at SSPCON1 : 4 alias SSPCON_CKP is SSPCON1_CKP var volatile bit*4 SSPCON1_SSPM at SSPCON1 : 0 alias SSPCON_SSPM is SSPCON1_SSPM -- ------------------------------------------------ var volatile byte SSPCON2 at 0x216 var volatile bit SSPCON2_GCEN at SSPCON2 : 7 var volatile bit SSPCON2_ACKSTAT at SSPCON2 : 6 var volatile bit SSPCON2_ACKDT at SSPCON2 : 5 var volatile bit SSPCON2_ACKEN at SSPCON2 : 4 var volatile bit SSPCON2_RCEN at SSPCON2 : 3 var volatile bit SSPCON2_PEN at SSPCON2 : 2 var volatile bit SSPCON2_RSEN at SSPCON2 : 1 var volatile bit SSPCON2_SEN at SSPCON2 : 0 -- ------------------------------------------------ var volatile byte SSPCON3 at 0x217 var volatile bit SSPCON3_ACKTIM at SSPCON3 : 7 var volatile bit SSPCON3_PCIE at SSPCON3 : 6 var volatile bit SSPCON3_SCIE at SSPCON3 : 5 var volatile bit SSPCON3_BOEN at SSPCON3 : 4 var volatile bit SSPCON3_SDAHT at SSPCON3 : 3 var volatile bit SSPCON3_SBCDE at SSPCON3 : 2 var volatile bit SSPCON3_AHEN at SSPCON3 : 1 var volatile bit SSPCON3_DHEN at SSPCON3 : 0 -- ------------------------------------------------ var volatile byte CCPR1L at 0x291 -- ------------------------------------------------ var volatile byte CCPR1H at 0x292 -- ------------------------------------------------ var volatile byte CCP1CON at 0x293 var volatile bit*2 CCP1CON_P1M at CCP1CON : 6 var volatile bit*2 CCP1CON_DC1B at CCP1CON : 4 var volatile bit*4 CCP1CON_CCP1M at CCP1CON : 0 -- ------------------------------------------------ var volatile byte PWM1CON at 0x294 var volatile bit PWM1CON_P1RSEN at PWM1CON : 7 var volatile bit PWM1CON_P1DC6 at PWM1CON : 6 var volatile bit PWM1CON_P1DC5 at PWM1CON : 5 var volatile bit PWM1CON_P1DC4 at PWM1CON : 4 var volatile bit PWM1CON_P1DC3 at PWM1CON : 3 var volatile bit PWM1CON_P1DC2 at PWM1CON : 2 var volatile bit PWM1CON_P1DC1 at PWM1CON : 1 var volatile bit PWM1CON_P1DC0 at PWM1CON : 0 -- ------------------------------------------------ var volatile byte CCP1AS at 0x295 var volatile bit CCP1AS_CCP1ASE at CCP1AS : 7 var volatile bit CCP1AS_CCP1AS2 at CCP1AS : 6 var volatile bit CCP1AS_CCP1AS1 at CCP1AS : 5 var volatile bit CCP1AS_CCP1AS0 at CCP1AS : 4 var volatile bit CCP1AS_PSS1AC1 at CCP1AS : 3 var volatile bit CCP1AS_PSS1AC0 at CCP1AS : 2 var volatile bit CCP1AS_PSS1BD1 at CCP1AS : 1 var volatile bit CCP1AS_PSS1BD0 at CCP1AS : 0 -- ------------------------------------------------ var volatile byte PSTR1CON at 0x296 var volatile bit PSTR1CON_STR1SYNC at PSTR1CON : 4 var volatile bit PSTR1CON_STR1D at PSTR1CON : 3 var volatile bit PSTR1CON_STR1C at PSTR1CON : 2 var volatile bit PSTR1CON_STR1B at PSTR1CON : 1 var volatile bit PSTR1CON_STR1A at PSTR1CON : 0 -- ------------------------------------------------ var volatile byte CCPR2L at 0x298 -- ------------------------------------------------ var volatile byte CCPR2H at 0x299 -- ------------------------------------------------ var volatile byte CCP2CON at 0x29A var volatile bit*2 CCP2CON_P2M at CCP2CON : 6 var volatile bit*2 CCP2CON_DC2B at CCP2CON : 4 var volatile bit*4 CCP2CON_CCP2M at CCP2CON : 0 -- ------------------------------------------------ var volatile byte PWM2CON at 0x29B var volatile bit PWM2CON_P2RSEN at PWM2CON : 7 var volatile bit PWM2CON_P2DC6 at PWM2CON : 6 var volatile bit PWM2CON_P2DC5 at PWM2CON : 5 var volatile bit PWM2CON_P2DC4 at PWM2CON : 4 var volatile bit PWM2CON_P2DC3 at PWM2CON : 3 var volatile bit PWM2CON_P2DC2 at PWM2CON : 2 var volatile bit PWM2CON_P2DC1 at PWM2CON : 1 var volatile bit PWM2CON_P2DC0 at PWM2CON : 0 -- ------------------------------------------------ var volatile byte CCP2AS at 0x29C var volatile bit CCP2AS_CCP2ASE at CCP2AS : 7 var volatile bit CCP2AS_CCP2AS2 at CCP2AS : 6 var volatile bit CCP2AS_CCP2AS1 at CCP2AS : 5 var volatile bit CCP2AS_CCP2AS0 at CCP2AS : 4 var volatile bit CCP2AS_PSS2AC1 at CCP2AS : 3 var volatile bit CCP2AS_PSS2AC0 at CCP2AS : 2 var volatile bit CCP2AS_PSS2BD1 at CCP2AS : 1 var volatile bit CCP2AS_PSS2BD0 at CCP2AS : 0 -- ------------------------------------------------ var volatile byte PSTR2CON at 0x29D var volatile bit PSTR2CON_STR2SYNC at PSTR2CON : 4 var volatile bit PSTR2CON_STR2D at PSTR2CON : 3 var volatile bit PSTR2CON_STR2C at PSTR2CON : 2 var volatile bit PSTR2CON_STR2B at PSTR2CON : 1 var volatile bit PSTR2CON_STR2A at PSTR2CON : 0 -- ------------------------------------------------ var volatile byte CCPTMRS0 at 0x29E var volatile bit CCPTMRS0_C4TSEL1 at CCPTMRS0 : 7 var volatile bit CCPTMRS0_C4TSEL0 at CCPTMRS0 : 6 var volatile bit CCPTMRS0_C3TSEL1 at CCPTMRS0 : 5 var volatile bit CCPTMRS0_C3TSEL0 at CCPTMRS0 : 4 var volatile bit CCPTMRS0_C2TSEL1 at CCPTMRS0 : 3 var volatile bit CCPTMRS0_C2TSEL0 at CCPTMRS0 : 2 var volatile bit CCPTMRS0_C1TSEL1 at CCPTMRS0 : 1 var volatile bit CCPTMRS0_C1TSEL0 at CCPTMRS0 : 0 -- ------------------------------------------------ var volatile byte CCPTMRS1 at 0x29F var volatile bit CCPTMRS1_C5TSEL1 at CCPTMRS1 : 1 var volatile bit CCPTMRS1_C5TSEL0 at CCPTMRS1 : 0 -- ------------------------------------------------ var volatile byte CCPR3L at 0x311 -- ------------------------------------------------ var volatile byte CCPR3H at 0x312 -- ------------------------------------------------ var volatile byte CCP3CON at 0x313 var volatile bit*2 CCP3CON_P3M at CCP3CON : 6 var volatile bit*2 CCP3CON_DC3B at CCP3CON : 4 var volatile bit*4 CCP3CON_CCP3M at CCP3CON : 0 -- ------------------------------------------------ var volatile byte PWM3CON at 0x314 var volatile bit PWM3CON_P3RSEN at PWM3CON : 7 var volatile bit PWM3CON_P3DC6 at PWM3CON : 6 var volatile bit PWM3CON_P3DC5 at PWM3CON : 5 var volatile bit PWM3CON_P3DC4 at PWM3CON : 4 var volatile bit PWM3CON_P3DC3 at PWM3CON : 3 var volatile bit PWM3CON_P3DC2 at PWM3CON : 2 var volatile bit PWM3CON_P3DC1 at PWM3CON : 1 var volatile bit PWM3CON_P3DC0 at PWM3CON : 0 -- ------------------------------------------------ var volatile byte CCP3AS at 0x315 var volatile bit CCP3AS_CCP3ASE at CCP3AS : 7 var volatile bit CCP3AS_CCP3AS2 at CCP3AS : 6 var volatile bit CCP3AS_CCP3AS1 at CCP3AS : 5 var volatile bit CCP3AS_CCP3AS0 at CCP3AS : 4 var volatile bit CCP3AS_PSS3AC1 at CCP3AS : 3 var volatile bit CCP3AS_PSS3AC0 at CCP3AS : 2 var volatile bit CCP3AS_PSS3BD1 at CCP3AS : 1 var volatile bit CCP3AS_PSS3BD0 at CCP3AS : 0 -- ------------------------------------------------ var volatile byte PSTR3CON at 0x316 var volatile bit PSTR3CON_STR3SYNC at PSTR3CON : 4 var volatile bit PSTR3CON_STR3D at PSTR3CON : 3 var volatile bit PSTR3CON_STR3C at PSTR3CON : 2 var volatile bit PSTR3CON_STR3B at PSTR3CON : 1 var volatile bit PSTR3CON_STR3A at PSTR3CON : 0 -- ------------------------------------------------ var volatile byte CCPR4L at 0x318 -- ------------------------------------------------ var volatile byte CCPR4H at 0x319 -- ------------------------------------------------ var volatile byte CCP4CON at 0x31A var volatile bit*2 CCP4CON_DC4B at CCP4CON : 4 var volatile bit*4 CCP4CON_CCP4M at CCP4CON : 0 -- ------------------------------------------------ var volatile byte CCPR5L at 0x31C -- ------------------------------------------------ var volatile byte CCPR5H at 0x31D -- ------------------------------------------------ var volatile byte CCP5CON at 0x31E var volatile bit*2 CCP5CON_DC5B at CCP5CON : 4 var volatile bit*4 CCP5CON_CCP5M at CCP5CON : 0 -- ------------------------------------------------ var volatile byte IOCBP at 0x394 var volatile bit IOCBP_IOCBP7 at IOCBP : 7 var volatile bit IOCBP_IOCBP6 at IOCBP : 6 var volatile bit IOCBP_IOCBP5 at IOCBP : 5 var volatile bit IOCBP_IOCBP4 at IOCBP : 4 var volatile bit IOCBP_IOCBP3 at IOCBP : 3 var volatile bit IOCBP_IOCBP2 at IOCBP : 2 var volatile bit IOCBP_IOCBP1 at IOCBP : 1 var volatile bit IOCBP_IOCBP0 at IOCBP : 0 -- ------------------------------------------------ var volatile byte IOCBN at 0x395 var volatile bit IOCBN_IOCBN7 at IOCBN : 7 var volatile bit IOCBN_IOCBN6 at IOCBN : 6 var volatile bit IOCBN_IOCBN5 at IOCBN : 5 var volatile bit IOCBN_IOCBN4 at IOCBN : 4 var volatile bit IOCBN_IOCBN3 at IOCBN : 3 var volatile bit IOCBN_IOCBN2 at IOCBN : 2 var volatile bit IOCBN_IOCBN1 at IOCBN : 1 var volatile bit IOCBN_IOCBN0 at IOCBN : 0 -- ------------------------------------------------ var volatile byte IOCBF at 0x396 var volatile bit IOCBF_IOCBF7 at IOCBF : 7 var volatile bit IOCBF_IOCBF6 at IOCBF : 6 var volatile bit IOCBF_IOCBF5 at IOCBF : 5 var volatile bit IOCBF_IOCBF4 at IOCBF : 4 var volatile bit IOCBF_IOCBF3 at IOCBF : 3 var volatile bit IOCBF_IOCBF2 at IOCBF : 2 var volatile bit IOCBF_IOCBF1 at IOCBF : 1 var volatile bit IOCBF_IOCBF0 at IOCBF : 0 -- ------------------------------------------------ var volatile byte TMR4 at 0x415 -- ------------------------------------------------ var volatile byte PR4 at 0x416 -- ------------------------------------------------ var volatile byte T4CON at 0x417 var volatile bit*4 T4CON_T4OUTPS at T4CON : 3 var volatile bit T4CON_TMR4ON at T4CON : 2 var volatile bit*2 T4CON_T4CKPS at T4CON : 0 -- ------------------------------------------------ var volatile byte TMR6 at 0x41C -- ------------------------------------------------ var volatile byte PR6 at 0x41D -- ------------------------------------------------ var volatile byte T6CON at 0x41E var volatile bit*4 T6CON_T6OUTPS at T6CON : 3 var volatile bit T6CON_TMR6ON at T6CON : 2 var volatile bit*2 T6CON_T6CKPS at T6CON : 0 -- ------------------------------------------------ var volatile byte LCDCON at 0x791 var volatile bit LCDCON_LCDEN at LCDCON : 7 var volatile bit LCDCON_SLPEN at LCDCON : 6 var volatile bit LCDCON_WERR at LCDCON : 5 var volatile bit LCDCON_CS1 at LCDCON : 3 var volatile bit LCDCON_CS0 at LCDCON : 2 var volatile bit LCDCON_LMUX1 at LCDCON : 1 var volatile bit LCDCON_LMUX0 at LCDCON : 0 -- ------------------------------------------------ var volatile byte LCDPS at 0x792 var volatile bit LCDPS_WFT at LCDPS : 7 var volatile bit LCDPS_BIASMD at LCDPS : 6 var volatile bit LCDPS_LCDA at LCDPS : 5 var volatile bit LCDPS_WA at LCDPS : 4 var volatile bit LCDPS_LP3 at LCDPS : 3 var volatile bit LCDPS_LP2 at LCDPS : 2 var volatile bit LCDPS_LP1 at LCDPS : 1 var volatile bit LCDPS_LP0 at LCDPS : 0 -- ------------------------------------------------ var volatile byte LCDREF at 0x793 var volatile bit LCDREF_LCDIRE at LCDREF : 7 var volatile bit LCDREF_LCDIRS at LCDREF : 6 var volatile bit LCDREF_LCDIRI at LCDREF : 5 var volatile bit LCDREF_VLCD3PE at LCDREF : 3 var volatile bit LCDREF_VLCD2PE at LCDREF : 2 var volatile bit LCDREF_VLCD1PE at LCDREF : 1 -- ------------------------------------------------ var volatile byte LCDCST at 0x794 var volatile bit LCDCST_LCDCST2 at LCDCST : 2 var volatile bit LCDCST_LCDCST1 at LCDCST : 1 var volatile bit LCDCST_LCDCST0 at LCDCST : 0 -- ------------------------------------------------ var volatile byte LCDRL at 0x795 var volatile bit LCDRL_LRLAP1 at LCDRL : 7 var volatile bit LCDRL_LRLAP0 at LCDRL : 6 var volatile bit LCDRL_LRLBP1 at LCDRL : 5 var volatile bit LCDRL_LRLBP0 at LCDRL : 4 var volatile bit LCDRL_LRLAT2 at LCDRL : 2 var volatile bit LCDRL_LRLAT1 at LCDRL : 1 var volatile bit LCDRL_LRLAT0 at LCDRL : 0 -- ------------------------------------------------ var volatile byte LCDSE0 at 0x798 var volatile bit LCDSE0_SE7 at LCDSE0 : 7 var volatile bit LCDSE0_SE6 at LCDSE0 : 6 var volatile bit LCDSE0_SE5 at LCDSE0 : 5 var volatile bit LCDSE0_SE4 at LCDSE0 : 4 var volatile bit LCDSE0_SE3 at LCDSE0 : 3 var volatile bit LCDSE0_SE2 at LCDSE0 : 2 var volatile bit LCDSE0_SE1 at LCDSE0 : 1 var volatile bit LCDSE0_SE0 at LCDSE0 : 0 -- ------------------------------------------------ var volatile byte LCDSE1 at 0x799 var volatile bit LCDSE1_SE15 at LCDSE1 : 7 var volatile bit LCDSE1_SE14 at LCDSE1 : 6 var volatile bit LCDSE1_SE13 at LCDSE1 : 5 var volatile bit LCDSE1_SE12 at LCDSE1 : 4 var volatile bit LCDSE1_SE11 at LCDSE1 : 3 var volatile bit LCDSE1_SE10 at LCDSE1 : 2 var volatile bit LCDSE1_SE9 at LCDSE1 : 1 var volatile bit LCDSE1_SE8 at LCDSE1 : 0 -- ------------------------------------------------ var volatile byte LCDDATA0 at 0x7A0 var volatile bit LCDDATA0_SEG7COM0 at LCDDATA0 : 7 var volatile bit LCDDATA0_SEG6COM0 at LCDDATA0 : 6 var volatile bit LCDDATA0_SEG5COM0 at LCDDATA0 : 5 var volatile bit LCDDATA0_SEG4COM0 at LCDDATA0 : 4 var volatile bit LCDDATA0_SEG3COM0 at LCDDATA0 : 3 var volatile bit LCDDATA0_SEG2COM0 at LCDDATA0 : 2 var volatile bit LCDDATA0_SEG1COM0 at LCDDATA0 : 1 var volatile bit LCDDATA0_SEG0COM0 at LCDDATA0 : 0 -- ------------------------------------------------ var volatile byte LCDDATA1 at 0x7A1 var volatile bit LCDDATA1_SEG15COM0 at LCDDATA1 : 7 var volatile bit LCDDATA1_SEG14COM0 at LCDDATA1 : 6 var volatile bit LCDDATA1_SEG13COM0 at LCDDATA1 : 5 var volatile bit LCDDATA1_SEG12COM0 at LCDDATA1 : 4 var volatile bit LCDDATA1_SEG11COM0 at LCDDATA1 : 3 var volatile bit LCDDATA1_SEG10COM0 at LCDDATA1 : 2 var volatile bit LCDDATA1_SEG9COM0 at LCDDATA1 : 1 var volatile bit LCDDATA1_SEG8COM0 at LCDDATA1 : 0 -- ------------------------------------------------ var volatile byte LCDDATA3 at 0x7A3 var volatile bit LCDDATA3_SEG7COM1 at LCDDATA3 : 7 var volatile bit LCDDATA3_SEG6COM1 at LCDDATA3 : 6 var volatile bit LCDDATA3_SEG5COM1 at LCDDATA3 : 5 var volatile bit LCDDATA3_SEG4COM1 at LCDDATA3 : 4 var volatile bit LCDDATA3_SEG3COM1 at LCDDATA3 : 3 var volatile bit LCDDATA3_SEG2COM1 at LCDDATA3 : 2 var volatile bit LCDDATA3_SEG1COM1 at LCDDATA3 : 1 var volatile bit LCDDATA3_SEG0COM1 at LCDDATA3 : 0 -- ------------------------------------------------ var volatile byte LCDDATA4 at 0x7A4 var volatile bit LCDDATA4_SEG15COM1 at LCDDATA4 : 7 var volatile bit LCDDATA4_SEG14COM1 at LCDDATA4 : 6 var volatile bit LCDDATA4_SEG13COM1 at LCDDATA4 : 5 var volatile bit LCDDATA4_SEG12COM1 at LCDDATA4 : 4 var volatile bit LCDDATA4_SEG11COM1 at LCDDATA4 : 3 var volatile bit LCDDATA4_SEG10COM1 at LCDDATA4 : 2 var volatile bit LCDDATA4_SEG9COM1 at LCDDATA4 : 1 var volatile bit LCDDATA4_SEG8COM1 at LCDDATA4 : 0 -- ------------------------------------------------ var volatile byte LCDDATA6 at 0x7A6 var volatile bit LCDDATA6_SEG7COM2 at LCDDATA6 : 7 var volatile bit LCDDATA6_SEG6COM2 at LCDDATA6 : 6 var volatile bit LCDDATA6_SEG5COM2 at LCDDATA6 : 5 var volatile bit LCDDATA6_SEG4COM2 at LCDDATA6 : 4 var volatile bit LCDDATA6_SEG3COM2 at LCDDATA6 : 3 var volatile bit LCDDATA6_SEG2COM2 at LCDDATA6 : 2 var volatile bit LCDDATA6_SEG1COM2 at LCDDATA6 : 1 var volatile bit LCDDATA6_SEG0COM2 at LCDDATA6 : 0 -- ------------------------------------------------ var volatile byte LCDDATA7 at 0x7A7 var volatile bit LCDDATA7_SEG15COM2 at LCDDATA7 : 7 var volatile bit LCDDATA7_SEG14COM2 at LCDDATA7 : 6 var volatile bit LCDDATA7_SEG13COM2 at LCDDATA7 : 5 var volatile bit LCDDATA7_SEG12COM2 at LCDDATA7 : 4 var volatile bit LCDDATA7_SEG11COM2 at LCDDATA7 : 3 var volatile bit LCDDATA7_SEG10COM2 at LCDDATA7 : 2 var volatile bit LCDDATA7_SEG9COM2 at LCDDATA7 : 1 var volatile bit LCDDATA7_SEG8COM2 at LCDDATA7 : 0 -- ------------------------------------------------ var volatile byte LCDDATA9 at 0x7A9 var volatile bit LCDDATA9_SEG7COM3 at LCDDATA9 : 7 var volatile bit LCDDATA9_SEG6COM3 at LCDDATA9 : 6 var volatile bit LCDDATA9_SEG5COM3 at LCDDATA9 : 5 var volatile bit LCDDATA9_SEG4COM3 at LCDDATA9 : 4 var volatile bit LCDDATA9_SEG3COM3 at LCDDATA9 : 3 var volatile bit LCDDATA9_SEG2COM3 at LCDDATA9 : 2 var volatile bit LCDDATA9_SEG1COM3 at LCDDATA9 : 1 var volatile bit LCDDATA9_SEG0COM3 at LCDDATA9 : 0 -- ------------------------------------------------ var volatile byte LCDDATA10 at 0x7AA var volatile bit LCDDATA10_SEG15COM3 at LCDDATA10 : 7 var volatile bit LCDDATA10_SEG14COM3 at LCDDATA10 : 6 var volatile bit LCDDATA10_SEG13COM3 at LCDDATA10 : 5 var volatile bit LCDDATA10_SEG12COM3 at LCDDATA10 : 4 var volatile bit LCDDATA10_SEG11COM3 at LCDDATA10 : 3 var volatile bit LCDDATA10_SEG10COM3 at LCDDATA10 : 2 var volatile bit LCDDATA10_SEG9COM3 at LCDDATA10 : 1 var volatile bit LCDDATA10_SEG8COM3 at LCDDATA10 : 0 -- ------------------------------------------------ var volatile byte STATUS_SHAD at 0xFE4 var volatile bit STATUS_SHAD_Z at STATUS_SHAD : 2 var volatile bit STATUS_SHAD_DC at STATUS_SHAD : 1 var volatile bit STATUS_SHAD_C at STATUS_SHAD : 0 -- ------------------------------------------------ var volatile byte WREG_SHAD at 0xFE5 -- ------------------------------------------------ var volatile byte BSR_SHAD at 0xFE6 var volatile bit*5 BSR_SHAD_BSR_SHAD at BSR_SHAD : 0 -- ------------------------------------------------ var volatile byte PCLATH_SHAD at 0xFE7 var volatile bit*7 PCLATH_SHAD_PCLATH_SHAD at PCLATH_SHAD : 0 -- ------------------------------------------------ var volatile byte FSR0L_SHAD at 0xFE8 -- ------------------------------------------------ var volatile byte FSR0H_SHAD at 0xFE9 -- ------------------------------------------------ var volatile byte FSR1L_SHAD at 0xFEA -- ------------------------------------------------ var volatile byte FSR1H_SHAD at 0xFEB -- ------------------------------------------------ var volatile byte STKPTR at 0xFED var volatile bit*5 STKPTR_STKPTR at STKPTR : 0 -- ------------------------------------------------ var volatile byte TOSL at 0xFEE -- ------------------------------------------------ var volatile byte TOSH at 0xFEF var volatile bit*7 TOSH_TOSH at TOSH : 0 -- -- =================================================== -- -- Special (device specific) constants and procedures -- const ADC_GROUP = ADC_V0 const byte ADC_NTOTAL_CHANNEL = 11 const byte ADC_ADCS_BITCOUNT = 3 -- const PPS_GROUP = PPS_0 -- no Peripheral Pin Selection -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - -- Change analog I/O pins into digital I/O pins. procedure analog_off() is pragma inline ANSELA = 0b0000_0000 -- all digital ANSELB = 0b0000_0000 -- all digital end procedure -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - -- Disable ADC module procedure adc_off() is pragma inline ADCON0 = 0b0000_0000 -- disable ADC ADCON1 = 0b0000_0000 end procedure -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - -- Disable comparator module procedure comparator_off() is pragma inline CM1CON0 = 0b0000_0000 -- disable comparator CM1CON1 = 0b0000_0000 CM2CON0 = 0b0000_0000 -- disable 2nd comparator CM2CON1 = 0b0000_0000 end procedure -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - -- Switch analog ports to digital mode (if analog module present). procedure enable_digital_io() is pragma inline analog_off() adc_off() comparator_off() end procedure -- -- ================================================== -- -- Symbolic Fuse definitions -- ------------------------- -- -- CONFIG1 (0x8007) -- pragma fuse_def OSC:0 0x7 { -- oscillator selection ECH_NOCLKOUT = 0x7 -- ech, external clock, high power mode (4-32 mhz): device clock supplied to clkin pin ECM_NOCLKOUT = 0x6 -- ecm, external clock, medium power mode (0.5-4 mhz): device clock supplied to clkin pin ECL_NOCLKOUT = 0x5 -- ecl, external clock, low power mode (0-0.5 mhz): device clock supplied to clkin pin INTOSC_NOCLKOUT = 0x4 -- intosc oscillator: i/o function on clkin pin RC_NOCLKOUT = 0x3 -- extrc oscillator: external rc circuit connected to clkin pin HS = 0x2 -- hs oscillator, high-speed crystal/resonator connected between osc1 and osc2 pins XT = 0x1 -- xt oscillator, crystal/resonator connected between osc1 and osc2 pins LP = 0x0 -- lp oscillator, low-power crystal connected between osc1 and osc2 pins } pragma fuse_def WDT:0 0x18 { -- watchdog timer enable ENABLED = 0x18 -- enabled RUNONLY = 0x10 -- wdt enabled while running and disabled in sleep CONTROL = 0x8 -- wdt controlled by the swdten bit in the wdtcon register DISABLED = 0x0 -- disabled } pragma fuse_def PWRTE:0 0x20 { -- power-up timer enable DISABLED = 0x20 -- disabled ENABLED = 0x0 -- enabled } pragma fuse_def MCLR:0 0x40 { -- mclr pin function select EXTERNAL = 0x40 -- enabled INTERNAL = 0x0 -- disabled } pragma fuse_def CP:0 0x80 { -- flash program memory code protection DISABLED = 0x80 -- disabled ENABLED = 0x0 -- enabled } pragma fuse_def CPD:0 0x100 { -- data memory code protection DISABLED = 0x100 -- disabled ENABLED = 0x0 -- enabled } pragma fuse_def BROWNOUT:0 0x600 { -- brown-out reset enable ENABLED = 0x600 -- enabled RUNONLY = 0x400 -- brown-out reset enabled while running and disabled in sleep CONTROL = 0x200 -- brown-out reset controlled by the sboren bit in the borcon register DISABLED = 0x0 -- disabled } pragma fuse_def CLKOUTEN:0 0x800 { -- clock out enable DISABLED = 0x800 -- disabled ENABLED = 0x0 -- enabled } pragma fuse_def IESO:0 0x1000 { -- internal/external switchover ENABLED = 0x1000 -- enabled DISABLED = 0x0 -- disabled } pragma fuse_def FCMEN:0 0x2000 { -- fail-safe clock monitor enable ENABLED = 0x2000 -- enabled DISABLED = 0x0 -- disabled } -- -- CONFIG2 (0x8008) -- pragma fuse_def WRT:1 0x3 { -- flash memory self-write protection NO_PROTECTION = 0x3 -- disabled R0000_01FF = 0x2 -- 000h to 1ffh write protected, 200h to 1fffh may be modified by eecon control R0000_0FFF = 0x1 -- 000h to fffh write protected, 1000h to 1fffh may be modified by eecon control R0000_1FFF = 0x0 -- 000h to 1fffh write protected, no addresses may be modified by eecon control } pragma fuse_def VCAPEN:1 0x30 { -- voltage regulator capacitor enable DISABLED = 0x30 -- disabled pin_A6 = 0x20 -- vcap functionality is enabled on ra6 pin_A5 = 0x10 -- vcap functionality is enabled on ra5 pin_A0 = 0x0 -- vcap functionality is enabled on ra0 } pragma fuse_def PLLEN:1 0x100 { -- pll enable P4 = 0x100 -- enabled P1 = 0x0 -- disabled } pragma fuse_def STVR:1 0x200 { -- stack overflow/underflow reset enable ENABLED = 0x200 -- enabled DISABLED = 0x0 -- disabled } pragma fuse_def VOLTAGE:1 0x400 { -- brown-out reset voltage selection V19 = 0x400 -- brown-out reset voltage (vbor) set to 1.9 v V25 = 0x0 -- brown-out reset voltage (vbor) set to 2.5 v } pragma fuse_def DEBUG:1 0x1000 { -- in-circuit debugger mode DISABLED = 0x1000 -- disabled ENABLED = 0x0 -- enabled } pragma fuse_def LVP:1 0x2000 { -- low-voltage programming enable ENABLED = 0x2000 -- enabled DISABLED = 0x0 -- disabled } --