format=0.1

# Variant 24
# device=PIC24FJ64GA004
# DOS: DOS-00634
# PS:  
# DS:  

#Parts are extremely low voltage
# Make sure these are within the device Limits, very low!
vpp (range=2.000-3.500 dflt=3.250)
# Make sure these are within the device Limits, very low!
vdd (range=2.000-3.500 dfltrange=2.000-3.500 nominal=3.250) 

IsChecksumless=1

pgming (memtech=ee tries=1)
   wait (pgm=10000 eedata=10000 cfg=10000 userid=10000 erase=600)
   latches(pgm=128 eedata=2 cfg=2 rowerase=170)

pgmmem (region=0x0-0xabfb)
    vectors (region=0x04-0xff altregion=0x100-0x1ff)
#M_EEDATA_4K
#M_STD_EXTPGMMEM
testmem (region=0x800000-0x8005FF appregion=0x800080-0x8005BF)
emulreg (region=0xFD0000-0xFD0039)
cfgmem (region=0xabfc-0xabff)
cfgwormmem (region=0xF80000-0xF80011)
# GI 8/17/04 Removed from programming spec
# userid (region=0x8005C0-0x8005FF)

devid (region=0xFF0000-0xFF0003 idmask=0xFFFF0000 id=0x04050000)

#
# For the ICD2. This is the top of testmem.
bkbgvectmem (region=0x800000-0x800007)

NumBanks=0
xymem (region=0x800-0x17ff ymem=0x0-0x0)

                               #------#
#------------------------------# SFRs #------------------------------#
                               #------#


sfr (key=WREG0 addr=0x0 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG0' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG1 addr=0x2 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG1' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG2 addr=0x4 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG2' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG3 addr=0x6 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG3' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG4 addr=0x8 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG4' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG5 addr=0xa size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG5' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG6 addr=0xc size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG6' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG7 addr=0xe size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG7' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG8 addr=0x10 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG8' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG9 addr=0x12 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG9' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG10 addr=0x14 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG10' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG11 addr=0x16 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG11' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG12 addr=0x18 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG12' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG13 addr=0x1a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG13' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG14 addr=0x1c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='WREG14' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG15 addr=0x1e size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000100000000000' mclr='0000100000000000')
    bit (names='WREG15' width='16')
    stimulus (scl=r type=int)
#sfr (key=SPLIM addr=0x20 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
#    reset (por='xxxxxxxxxxxxxxx0' mclr='uuuuuuuuuuuuuuu0')
sfr (key=SPLIM addr=0x20 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='SPLIM' width='16')
    stimulus (scl=r type=int)

UnusedRegs (0x22-0x2d)

sfr (key=PC addr=0x2e size=3 flags=j)
# The j flag means all these registers together form one larger
# register
    stimulus (scl=rb type=pc)
sfr (key=PCL addr=0x2e size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PCL' width='16')
    stimulus (scl=rb)
sfr (key=PCH addr=0x30 size=2 access='u u u u u u u u u r r r r r r r')
# Bit 23 of the PC Register (bit 7 of the PCH) is reserved for Testing.
    reset (por='---------0000000' mclr='---------0000000')
    bit (names='- - - - - - - - - PCH' width='1 1 1 1 1 1 1 1 1 7')
    stimulus (scl=rb)

sfr (key=TBLPAG addr=0x32 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - TBLPAG' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=r type=int)
sfr (key=PSVPAG addr=0x34 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - PSVPAG' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=r type=int)
sfr (key=RCOUNT addr=0x36 size=2 access='u u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='--xxxxxxxxxxxxxx' mclr='--uuuuuuuuuuuuuu')
    bit (names='- - RCOUNT' width='1 1 14')
    stimulus (scl=r type=int)

UnusedRegs (0x38-0x41)

sfr (key=SR addr=0x42 size=2 access='u u u u u u u rw rw rw rw r rw rw rw rw')
    reset (por='-------000000000' mclr='-------000000000')
    bit (names='- - - - - - - DC IPL RA N OV Z C' width='1 1 1 1 1 1 1 1 3 1 1 1 1 1')
    stimulus (scl=r)
sfr (key=CORCON addr=0x44 size=2 access='u u u u u u u u u u u u rc rw u u')
    reset (por='------------00--' mclr='------------00--')
    bit (names='- - - - - - - - - - - - IPL3 PSV - -' width='1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1')
    stimulus (scl=r)

UnusedRegs (0x46-0x51)

sfr (key=DISICNT addr=0x52 size=2 access='u u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='--xxxxxxxxxxxxxx' mclr='--uuuuuuuuuuuuuu')
    bit (names='- - DISICNT' width='1 1 14')
    stimulus (scl=r type=int)

UnusedRegs (0x54-0x5f)



sfr (key=CNEN1 addr=0x60 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CN15IE CN14IE CN13IE CN12IE CN11IE CN10IE CN9IE CN8IE CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE')
    stimulus (scl=rwb)
sfr (key=CNEN2 addr=0x62 size=2 access='u rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-000000000000000' mclr='-000000000000000')
    bit (names='- CN30IE CN29IE CN28IE CN27IE CN26IE CN25IE CN24IE CN23IE CN22IE CN21IE CN20IE CN19IE CN18IE CN17IE CN16IE')
    stimulus (scl=rwb)

UnusedRegs(0x64-0x67)

sfr (key=CNPU1 addr=0x68 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CN15PUE CN14PUE CN13PUE CN12PUE CN11PUE CN10PUE CN9PUE CN8PUE CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE')
    stimulus (scl=rwb)
sfr (key=CNPU2 addr=0x6a size=2 access='u rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-000000000000000' mclr='-000000000000000')
    bit (names='- CN30PUE CN29PUE CN28PUE CN27PUE CN26PUE CN25PUE CN24PUE CN23PUE CN22PUE CN21PUE CN20PUE CN19PUE CN18PUE CN17PUE CN16PUE')
    stimulus (scl=rwb)

UnusedRegs (0x67-0x7f)



        
sfr (key=INTCON1 addr=0x80 size=2 access='rw u u u u u u u u u u rw rw rw rw u')
    reset (por='0----------0000-' mclr='0----------0000-')
    bit (names='NSTDIS - - - - - - - - - - MATHERR ADDRERR STKERR OSCFAIL -')
    stimulus (scl=rwb)
sfr (key=INTCON2 addr=0x82 size=2 access='rw r u u u u u u u u u rw rw rw rw rw')
    reset (por='00---------00000' mclr='00---------00000')
    bit (names='ALTIVT DISI - - - - - - - - - INT4EP INT3EP INT2EP INT1EP INT0EP')
    stimulus (scl=rwb)
sfr (key=IFS0 addr=0x84 size=2 access='u u rw rw rw rw rw rw rw rw rw u rw rw rw rw')
    reset (por='--000000000-0000' mclr='--000000000-0000')
    bit (names='- - ADIF U1TXIF U1RXIF SPI1IF SPI1FLTIF T3IF T2IF OC2IF IC2IF - T1IF OC1IF IC1IF INT0IF')
    stimulus (scl=rwb)
sfr (key=IFS1 addr=0x86 size=2 access='rw rw rw rw rw rw rw u u u u rw rw rw rw rw')
    reset (por='0000000----00000' mclr='0000000----00000')
    bit (names='U2TXIF U2RXIF INT2IF T5IF T4IF OC4IF OC3IF - - - - INT1IF CNIF CMPIF BCL1IF I2C1IF')
    stimulus (scl=rwb)
sfr (key=IFS2 addr=0x88 size=2 access='u u rw u u u rw u rw rw rw u u u rw rw')
    reset (por='--0---0-000---00' mclr='--0---0-000---00')
    bit (names='- - PMPIF - - - OC5IF - IC5IF IC4IF IC3IF - - - SPI2IF SPI2FLTIF')
    stimulus (scl=rwb)
sfr (key=IFS3 addr=0x8A size=2 access='u rw u u u u u u u rw rw u u rw rw u')
    reset (por='-0-------00--00-' mclr='-0-------00--00-')
    bit (names='- RTCCIF - - - - - - - INT4IF INT3IF - - BCL2IF I2C2IF -')
    stimulus (scl=rwb)
sfr (key=IFS4 addr=0x8C size=2 access='u u u u u u u u u u u u rw rw rw u')
    reset (por='------------000-' mclr='------------000-')
    bit (names='- - - - - - - - - - - - CRCIF U2ERRIF U1ERRIF -')
    stimulus (scl=rwb)

UnusedRegs (0x8E-0x93)

sfr (key=IEC0 addr=0x94 size=2 access='u u rw rw rw rw rw rw rw rw rw u rw rw rw rw')
    reset (por='--000000000-0000' mclr='--000000000-0000')
    bit (names='- - ADIE U1TXIE U1RXIE SPI1IE SPI1FLTIE T3IE T2IE OC2IE IC2IE - T1IE OC1IE IC1IE INT0IE')
    stimulus (scl=rwb)
sfr (key=IEC1 addr=0x96 size=2 access='rw rw rw rw rw rw rw u u u u rw rw rw rw rw')
    reset (por='0000000----00000' mclr='0000000----00000')
    bit (names='U2TXIE U2RXIE INT2IE T5IE T4IE OC4IE OC3IE - - - - INT1IE CNIE CMPIE BCL1IE I2C1IE')
    stimulus (scl=rwb)
sfr (key=IEC2 addr=0x98 size=2 access='u u rw u u u rw u rw rw rw u u u rw rw')
    reset (por='--0---0-000---00' mclr='--0---0-000---00')
    bit (names='- - PMPIE - - - OC5IE - IC5IE IC4IE IC3IE - - - SPI2IE SPI2FLTIE')
    stimulus (scl=rwb)
sfr (key=IEC3 addr=0x9A size=2 access='u rw u u u u u u u rw rw u u rw rw u')
    reset (por='-0-------00--00-' mclr='-0-------00--00-')
    bit (names='- RTCCIE - - - - - - - INT4IE INT3IE - - BCL2IE I2C2IE -')
    stimulus (scl=rwb)
sfr (key=IEC4 addr=0x9C size=2 access='u u u u u u u u u u u u rw rw rw u')
    reset (por='------------000-' mclr='------------000-')
    bit (names='- - - - - - - - - - - - CRCIE U2ERRIE U1ERRIE -')
    stimulus (scl=rwb)

UnusedRegs (0x9E-0xA3)

sfr (key=IPC0 addr=0xA4 size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- T1IP - OC1IP - IC1IP - INT0IP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC1 addr=0xA6 size=2 access='u rw rw rw u rw rw rw u rw rw rw u u u u')
    reset (por='-100-100-100----' mclr='-uuu-uuu-uuu----')
    bit (names='- T2IP - OC2IP - IC2IP - - - -' width='1 3 1 3 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC2 addr=0xA8 size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- U1RXIP - SP1IP - SPI1FLTIP - T3IP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC3 addr=0xAA size=2 access='u u u u u u u u u rw rw rw u rw rw rw')
    reset (por='---------100-100' mclr='---------uuu-uuu')
    bit (names='- - - - - - - - - ADIP - U1TXIP' width='1 1 1 1 1 1 1 1 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC4 addr=0xAC size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- CNIP - CMPIP - BCL1IP - I2C1IP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC5 addr=0xAE size=2 access='u u u u u u u u u u u u u rw rw rw')
    reset (por='-------------100' mclr='-------------uuu')
    bit (names='- - - - - - - - - - - - - INT1IP' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3')
    stimulus (scl=rwb)
sfr (key=IPC6 addr=0xB0 size=2 access='u rw rw rw u rw rw rw u rw rw rw u u u u')
    reset (por='-100-100-100----' mclr='-uuu-uuu-uuu----')
    bit (names='- T4IP - OC4IP - OC3IP - - - -' width='1 3 1 3 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC7 addr=0xB2 size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- U2TXIP - U2RXIP - INT2IP - T5IP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC8 addr=0xB4 size=2 access='u u u u u u u u u rw rw rw u rw rw rw')
    reset (por='---------100-100' mclr='---------uuu-uuu')
    bit (names='- - - - - - - - - SPI2IP - SPIFLT2IP' width='1 1 1 1 1 1 1 1 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC9 addr=0xB6 size=2 access='u rw rw rw u rw rw rw u rw rw rw u u u u')
    reset (por='-100-100-100----' mclr='-uuu-uuu-uuu----')
    bit (names='- IC5IP - IC4IP - IC3IP - - - -' width='1 3 1 3 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC10 addr=0xB8 size=2 access='u u u u u u u u u rw rw rw u u u u')
    reset (por='---------100----' mclr='---------uuu----')
    bit (names='- - - - - - - - - OC5IP - - - -' width='1 1 1 1 1 1 1 1 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC11 addr=0xBA size=2 access='u u u u u u u u u rw rw rw u u u u')
    reset (por='---------100----' mclr='---------uuu----')
    bit (names='- - - - - - - - - PMPIP - - - -' width='1 1 1 1 1 1 1 1 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC12 addr=0xBC size=2 access='u u u u u rw rw rw u rw rw rw u u u u')
    reset (por='-----100-100----' mclr='-----uuu-uuu----')
    bit (names='- - - - - BCL2IP - I2C2IP - - - -' width='1 1 1 1 1 3 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC13 addr=0xBE size=2 access='u u u u u rw rw rw u rw rw rw u u u u')
    reset (por='-----100-100----' mclr='-----uuu-uuu----')
    bit (names='- - - - - INT4IP - INT3IP - - - -' width='1 1 1 1 1 3 1 3 1 1 1 1 1')
    stimulus (scl=rwb)
#sfr (key=IPC14 addr=0xC0 size=2 access='u u u u u u u u u u u u u u u u')
#    reset (por='----------------' mclr='----------------')
#    bit (names='- - - - - - - - - - - - - - - -')
#    stimulus (scl=rwb)
sfr (key=IPC15 addr=0xC2 size=2 access='u u u u u rw rw rw u u u u u u u u')
    reset (por='-----100--------' mclr='-----uuu--------')
    bit (names='- - - - - RTCCIP - - - - - - - -' width='1 1 1 1 1 3 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC16 addr=0xC4 size=2 access='u rw rw rw u rw rw rw u rw rw rw u u u u')
    reset (por='-100-100-100----' mclr='-uuu-uuu-uuu----')
    bit (names='- CRCIP - U2ERRIP - U1ERRIP - - - -' width='1 3 1 3 1 3 1 1 1 1')
    stimulus (scl=rwb)

UnusedRegs (0xC6-0xDF)

sfr (key=INTREG addr=0xE0 size=2 access='r rw u u r r r r u u r r r r r r')
    reset (por='00--0000--000000' mclr='00--0000--000000')
    bit (names='IRQtoCPU TMODE - - ILR - - VECNUM' width='1 1 1 1 4 1 1 6')
    stimulus (scl=rwb)

UnusedRegs (0xE2-0xFF)



sfr (key=TMR1 addr=0x100 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR1' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR1 addr=0x102 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR1' width='16')
    stimulus (scl=rwb type=int)
sfr (key=T1CON addr=0x104 size=2 access='rw u rw u u u u u u rw rw rw u rw rw u')
    reset (por='0-0------000-00-' mclr='0-0------uuu-uu-')
    bit (names='T1ON - T1SIDL - - - - - - T1GATE T1CKPS - T1SYNC T1CS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=TMR2 addr=0x106 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR2' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR3HLD addr=0x108 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR3HLD' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR3 addr=0x10a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR3' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR2 addr=0x10c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR2' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR3 addr=0x10e size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR3' width='16')
    stimulus (scl=rwb type=int)
sfr (key=T2CON addr=0x110 size=2 access='rw u rw u u u u u u rw rw rw rw u rw u')
    reset (por='0-0------0000-0-' mclr='0-0------0000-0-')
    bit (names='T2ON - T2SIDL - - - - - - T2GATE T2CKPS T32 - T2CS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=T3CON addr=0x112 size=2 access='rw u rw u u u u u u rw rw rw u u rw u')
    reset (por='0-0------000--0-' mclr='0-0------000--0-')
    bit (names='T3ON - T3SIDL - - - - - - T3GATE T3CKPS - - T3CS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=TMR4 addr=0x114 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR4' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR5HLD addr=0x116 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR5HLD' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR5 addr=0x118 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR5' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR4 addr=0x11a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR4' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR5 addr=0x11c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR5' width='16')
    stimulus (scl=rwb type=int)
sfr (key=T4CON addr=0x11e size=2 access='rw u rw u u u u u u rw rw rw rw u rw u')
    reset (por='0-0------0000-0-' mclr='0-0------0000-0-')
    bit (names='T4ON - T4SIDL - - - - - - T4GATE T4CKPS T45 - T4CS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=T5CON addr=0x120 size=2 access='rw u rw u u u u u u rw rw rw u u rw u')
    reset (por='0-0------000--0-' mclr='0-0------uuu--u-')
    bit (names='T5ON - T5SIDL - - - - - - T5GATE TCKPS - - T5CS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)

UnusedRegs (0x122-0x13f)



sfr (key=IC1BUF addr=0x140 size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC1BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC1CON addr=0x142 size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
sfr (key=IC2BUF addr=0x144 size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC2BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC2CON addr=0x146 size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
sfr (key=IC3BUF addr=0x148 size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC3BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC3CON addr=0x14a size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
sfr (key=IC4BUF addr=0x14c size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC4BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC4CON addr=0x14e size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
sfr (key=IC5BUF addr=0x150 size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC5BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC5CON addr=0x152 size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)

UnusedRegs (0x154-0x17f)



sfr (key=OC1RS addr=0x180 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC1RS' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC1R addr=0x182 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC1R' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC1CON addr=0x184 size=2 access='u u rw u u u u u u u u r rw rw rw rw')
    reset (por='--0--------00000' mclr='--0--------00000')
    bit (names='- - OCSIDL - - - - - - - - OCFLT1 OCTSEL1 OCM' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3' scltype='b b b b b b b b b b b b b i')
    stimulus (scl=rwb)
sfr (key=OC2RS addr=0x186 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC2RS' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC2R addr=0x188 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC2R' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC2CON addr=0x18a size=2 access='u u rw u u u u u u u u r rw rw rw rw')
    reset (por='--0--------00000' mclr='--0--------00000')
    bit (names='- - OCSIDL - - - - - - - - OCFLT2 OCTSEL2 OCM' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3' scltype='b b b b b b b b b b b b b i')
    stimulus (scl=rwb)
sfr (key=OC3RS addr=0x18c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC3RS' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC3R addr=0x18e size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC3R' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC3CON addr=0x190 size=2 access='u u rw u u u u u u u u r rw rw rw rw')
    reset (por='--0--------00000' mclr='--0--------00000')
    bit (names='- - OCSIDL - - - - - - - - OCFLT3 OCTSEL3 OCM' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3' scltype='b b b b b b b b b b b b b i')
    stimulus (scl=rwb)
sfr (key=OC4RS addr=0x192 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC4RS' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC4R addr=0x194 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC4R' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC4CON addr=0x196 size=2 access='u u rw u u u u u u u u r rw rw rw rw')
    reset (por='--0--------00000' mclr='--0--------00000')
    bit (names='- - OCSIDL - - - - - - - - OCFLT4 OCTSEL4 OCM' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3' scltype='b b b b b b b b b b b b b i')
    stimulus (scl=rwb)
sfr (key=OC5RS addr=0x198 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC5RS' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC5R addr=0x19a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='OC5R' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC5CON addr=0x19c size=2 access='u u rw u u u u u u u u r rw rw rw rw')
    reset (por='--0--------00000' mclr='--0--------00000')
    bit (names='- - OCSIDL - - - - - - - - OCFLT5 OCTSEL5 OCM' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3' scltype='b b b b b b b b b b b b b i')
    stimulus (scl=rwb)

UnusedRegs (0x19e-0x1ff)



sfr (key=I2C1RCV addr=0x200 size=2 access='u u u u u u u u r r r r r r r r')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - I2CRCV' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=I2C1TRN addr=0x202 size=2 access='u u u u u u u u w w w w w w w w')
    reset (por='--------11111111' mclr='--------11111111')
    bit (names='- - - - - - - - I2CTRN' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=I2C1BRG addr=0x204 size=2 access='u u u u u u u rw rw rw rw rw rw rw rw rw')
    reset (por='-------000000000' mclr='-------000000000')
    bit (names='- - - - - - - I2CBRG' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rwb)
sfr (key=I2C1CON addr=0x206 size=2 access='rw u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0-01000000000000' mclr='0-01000000000000')
    bit (names='I2CEN - I2CSIDL SCLREL IPMIEN A10M DISSLW SMEN GCEN STREN ACKDT ACKEN RCEN PEN RSEN SEN')
    stimulus (scl=rwb)
sfr (key=I2C1STAT addr=0x208 size=2 access='r r u u u r r r rc rc r rc rc r r r')
    reset (por='00---00000000000' mclr='00---00000000000')
    bit (names='ACKSTAT TRSTAT - - - BCL GCSTAT ADD10 IWCOL I2CPOV D/nA P S R/nW RBF TBF')
    bit (tag=scl names='ACKSTAT TRSTAT - - - BCL GCSTAT ADD10 IWCOL I2CCOV D_nA P S R_nW RBF TBF')
    stimulus (scl=rwb)
    
sfr (key=I2C1ADD addr=0x20a size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------0000000000' mclr='------0000000000')
    bit (names='- - - - - - I2CADD' width='1 1 1 1 1 1 10')
    stimulus (scl=rwb)
    
#Added by akram on 23-Sep-2005 Ref: Page  132 of DS39747A
#PS part does not have I2C1MSK and I2C2MSK
sfr (key=I2C1MSK addr=0x20C size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------0000000000' mclr='------0000000000')
    bit (names='- - - - - - AMSK' width='1 1 1 1 1 1 10')
    stimulus (scl=rwb)
   

UnusedRegs (0x20d-0x20f)

# I2C2 Registers #####################################################

sfr (key=I2C2RCV addr=0x210 size=2 access='u u u u u u u u r r r r r r r r')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - I2CRCV' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=I2C2TRN addr=0x212 size=2 access='u u u u u u u u w w w w w w w w')
    reset (por='--------11111111' mclr='--------11111111')
    bit (names='- - - - - - - - I2CTRN' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=I2C2BRG addr=0x214 size=2 access='u u u u u u u rw rw rw rw rw rw rw rw rw')
    reset (por='-------000000000' mclr='-------000000000')
    bit (names='- - - - - - - I2CBRG' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rwb)
sfr (key=I2C2CON addr=0x216 size=2 access='rw u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0-01000000000000' mclr='0-01000000000000')
    bit (names='I2CEN - I2CSIDL SCLREL IPMIEN A10M DISSLW SMEN GCEN STREN ACKDT ACKEN RCEN PEN RSEN SEN')
    stimulus (scl=rwb)
sfr (key=I2C2STAT addr=0x218 size=2 access='r r u u u r r r rc rc r rc rc r r r')
    reset (por='00---00000000000' mclr='00---00000000000')
    bit (names='ACKSTAT TRSTAT - - - BCL GCSTAT ADD10 IWCOL I2CPOV D/nA P S R/nW RBF TBF')
    bit (tag=scl names='ACKSTAT TRSTAT - - - BCL GCSTAT ADD10 IWCOL I2CCOV D_nA P S R_nW RBF TBF')
    stimulus (scl=rwb)
    
sfr (key=I2C2ADD addr=0x21a size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------0000000000' mclr='------0000000000')
    bit (names='- - - - - - I2CADD' width='1 1 1 1 1 1 10')
    stimulus (scl=rwb)
    
#Added by akram on 23-Sep-2005 Ref: Page no 132 of DS39747A
#Removed by leo on 04-Oct-2005 because PS part does not have I2C1MSK and I2C2MSK
sfr (key=I2C2MSK addr=0x21C size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------0000000000' mclr='------0000000000')
    bit (names='- - - - - - AMSK' width='1 1 1 1 1 1 10')
    stimulus (scl=rwb)  

UnusedRegs (0x21d-0x21f)



sfr (key=U1MODE addr=0x220 size=2 access='rw u rw rw rw u rw rw rw rw rw rw rw rw rw rw')
    reset (por='0-000-0000000000' mclr='0-000-0000000000')
    bit (names='UARTEN - USIDL IREN RTSMD - UEN1 UEN0 WAKE LPBACK ABAUD RXINV BRGH PDSEL STSEL' width='1 1 1 1 1 1 1 1 1 1 1 1 1 2 1')
    stimulus (scl=rwb)
sfr (key=U1STA addr=0x222 size=2 access='rw rw rw u rw rw r r rw rw rw r r r rc r')
    reset (por='000-000100010000' mclr='000-000100010000')
    bit (names='UTXISEL1 UTXINV UTXISEL0 - UTXBRK UTXEN UTXBF TRMT URXISEL ADDEN RIDLE PERR FERR OERR URXDA' width='1 1 1 1 1 1 1 1 2 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=U1TXREG addr=0x224 size=2 access='u u u u u u u w w w w w w w w w')
    reset (por='-------xxxxxxxxx' mclr='-------000000000')
    bit (names='- - - - - - - TX' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rwb regfiles=w)
sfr (key=U1RXREG addr=0x226 size=2 access='u u u u u u u r r r r r r r r r')
    reset (por='-------000000000' mclr='-------000000000')
    bit (names='- - - - - - - RX' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rb regfiles=rp)
sfr (key=U1BRG addr=0x228 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='BRG' width='16')
    stimulus (scl=rwb)

UnusedRegs (0x22a-0x22f)


sfr (key=U2MODE addr=0x230 size=2 access='rw u rw rw rw u rw rw rw rw rw rw rw rw rw rw')
    reset (por='0-000-0000000000' mclr='0-000-0000000000')
    bit (names='UARTEN - USIDL IREN RTSMD - UEN1 UEN0 WAKE LPBACK ABAUD RXINV BRGH PDSEL STSEL' width='1 1 1 1 1 1 1 1 1 1 1 1 1 2 1')
    stimulus (scl=rwb)
sfr (key=U2STA addr=0x232 size=2 access='rw rw rw u rw rw r r rw rw rw r r r rc r')
    reset (por='000-000100010000' mclr='000-000100010000')
    bit (names='UTXISEL1 UTXINV UTXISEL0 - UTXBRK UTXEN UTXBF TRMT URXISEL ADDEN RIDLE PERR FERR OERR URXDA' width='1 1 1 1 1 1 1 1 2 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=U2TXREG addr=0x234 size=2 access='u u u u u u u w w w w w w w w w')
    reset (por='-------xxxxxxxxx' mclr='-------000000000')
    bit (names='- - - - - - - TX' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rwb regfiles=w)
sfr (key=U2RXREG addr=0x236 size=2 access='u u u u u u u r r r r r r r r r')
    reset (por='-------000000000' mclr='-------000000000')
    bit (names='- - - - - - - RX' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rb regfiles=rp)
sfr (key=U2BRG addr=0x238 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='BRG' width='16')
    stimulus (scl=rwb)

UnusedRegs (0x23a-0x23f)



sfr (key=SPI1STAT addr=0x240 size=2 access='rw u rw u u rw rw rw u rc u u u u r r')
    reset (por='0-0--000-0----00' mclr='0-0--000-0----00')
    bit (names='SPIEN - SPISIDL - - BUFELM - SPIROV - - - - SPITBF SPIRBF' width='1 1 1 1 1 3 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=SPI1CON addr=0x242 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='---0000000000000' mclr='---0000000000000')
    bit (names='- - - DISSCK DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE PPRE' width='1 1 1 1 1 1 1 1 1 1 1 3 2')
    stimulus (scl=rwb)
sfr (key=SPI1CON2 addr=0x244 size=2 access='rw rw rw u u u u u u u u u u u rw rw')
    reset (por='000-----------00' mclr='000-----------00')
    bit (names='FRMEN FRMSYNC FRMPOL - - - - - - - - - - - FRMDEL ENHBUF' width='1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=SPI1BUF addr=0x248 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='SPI1BUF' width='16')
    stimulus (scl=rwb type=int regfiles=rw pcfiles=rw)
    
#sfr (key=SPI1TEST1 addr=0x248 size=2 access='u u u u rw rw rw rw u u u u rw rw rw rw')
#    reset (por='----0000----0000' mclr='----0000----0000')
#    bit (names='- - - - CRPTR - - - - CWPTR' width='1 1 1 1 4 1 1 1 1 4')
#sfr (key=SPI1TEST2 addr=0x24a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
#    reset (por='0000000000000000' mclr='0000000000000000')
#    bit (names='CRDAT CWDAT' width='8 8')

UnusedRegs (0x245-0x246)
UnusedRegs (0x24c-0x25f)


sfr (key=SPI2STAT addr=0x260 size=2 access='rw u rw u u rw rw rw u rc u u u u r r')
    reset (por='0-0--000-0----00' mclr='0-0--000-0----00')
    bit (names='SPIEN - SPISIDL - - BUFELM - SPIROV - - - - SPITBF SPIRBF' width='1 1 1 1 1 3 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=SPI2CON addr=0x262 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='---0000000000000' mclr='---0000000000000')
    bit (names='- - - DISSCK DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE PPRE' width='1 1 1 1 1 1 1 1 1 1 1 3 2')
    stimulus (scl=rwb)
sfr (key=SPI2CON2 addr=0x264 size=2 access='rw rw rw u u u u u u u u u u u rw rw')
    reset (por='000-----------00' mclr='000-----------00')
    bit (names='FRMEN FRMSYNC FRMPOL - - - - - - - - - - - FRMDEL ENHBUF' width='1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=SPI2BUF addr=0x268 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='SPI1BUF' width='16')
    stimulus (scl=rwb type=int regfiles=rw pcfiles=rw)
#sfr (key=SPI2TEST1 addr=0x268 size=2 access='u u u u rw rw rw rw u u u u rw rw rw rw')
#    reset (por='----0000----0000' mclr='----0000----0000')
#    bit (names='- - - - CRPTR - - - - CWPTR' width='1 1 1 1 4 1 1 1 1 4')
#sfr (key=SPI2TEST2 addr=0x26a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
#    reset (por='0000000000000000' mclr='0000000000000000')
#    bit (names='CRDAT CWDAT' width='8 8')

UnusedRegs (0x26c-0x27f)


UnusedRegs (0x280-0x2bf)

UnusedRegs (0x2c0-0x2c4) #PORTA

# PORTA Registers ####################################################

sfr (key=TRISA addr=0x2c0 size=2 access='u u u u u rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-----11111111111' mclr='-----11111111111')
    bit (names='- - - - - TRISA10 TRISA9 TRISA8 TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0')
    bit (tag=scl names='- - - - - TRISA' width='1 1 1 1 1 11')
    stimulus (scl=rwb)
sfr (key=PORTA addr=0x2c2 size=2 access='u u u u u rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-----xxxxxxxxxxx' mclr='-----uuuuuuuuuuu')
    bit (names='- - - - - RA10 RA9 RA8 RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0')
    bit (tag=scl names='- - - - - RA' width='1 1 1 1 1 11')
    stimulus (scl=rwb)
sfr (key=LATA addr=0x2c4 size=2 access='u u u u u rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-----00000000000' mclr='-----uuuuuuuuuuu')
    bit (names='- - - - - LATA10 LATA9 LATA8 LATA7 LATA6 LATA5 LATA4 LATA3 LATA2 LATA1 LATA0')
    bit (tag=scl names='- - - - - LATA' width='1 1 1 1 1 11')
    stimulus (scl=rwb)
sfr (key=ODCFGA addr=0x2c6 size=2 access='u u u u u rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-----00000000000' mclr='-----00000000000')
    bit (names='- - - - - ODA10 ODA9 ODA8 ODA7 ODA6 ODA5 ODA4 ODA3 ODA2 ODA1 ODA0')
    bit (tag=scl names='- - - - - ODA' width='1 1 1 1 1 11')
    stimulus (scl=rwb)

# PORTB Registers ####################################################

sfr (key=TRISB addr=0x2c6 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='TRISB15 TRISB14 TRISB13 TRISB12 TRISB11 TRISB10 TRISB9 TRISB8 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0')
    bit (tag=scl names='TRISB' width='16')
    stimulus (scl=rwb)
sfr (key=PORTB addr=0x2c8 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='RB15 RB14 RB13 RB12 RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0')
    bit (tag=scl names='RB' width='16')
    stimulus (scl=rwb)
sfr (key=LATB addr=0x2ca size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='LATB15 LATB14 LATB13 LATB12 LATB11 LATB10 LATB9 LATB8 LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0')
    bit (tag=scl names='LATB' width='16')
    stimulus (scl=rwb)
sfr (key=ODCFGB addr=0x2ce size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='ODB15 ODB14 ODB13 ODB12 ODB11 ODB10 ODB9 ODB8 ODB7 ODB6 ODB5 ODB4 ODB3 ODB2 ODB1 ODB0')
    bit (tag=scl names='ODB' width='16')
    stimulus (scl=rwb)

# PORTC Registers ####################################################

sfr (key=TRISC addr=0x2cc size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------11111111' mclr='--------11111111')
    bit (names='- - - - - - - - TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0')
    bit (tag=scl names='- - - - - - - - TRISC' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb)
sfr (key=PORTC addr=0x2ce size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------xxxxxxxx' mclr='--------uuuuuuuu')
    bit (names='- - - - - - - - RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0')
    bit (tag=scl names='- - - - - - - - RC' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb)
sfr (key=LATC addr=0x2d0 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------uuuuuuuu')
    bit (names='- - - - - - - - LATC7 LATC6 LATC5 LATC4 LATC3 LATC2 LATC1 LATC0')
    bit (tag=scl names='- - - - - - - - LATC' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb)
sfr (key=ODCCFG addr=0x2d6 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - ODCC7 ODCC6 ODCC5 ODCC4 ODCC3 ODCC2 ODCC1 ODCC0')
    bit (tag=scl names='- - - - - - - - ODCC' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb)


UnusedRegs (0x2ea-0x2ff)


sfr (key=ADC1BUF0 addr=0x300 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF0' width='1 1 1 1 1 1 10')
    stimulus (scl=rb regfiles=r)
sfr (key=ADC1BUF1 addr=0x302 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF1' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF2 addr=0x304 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF2' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF3 addr=0x306 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF3' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF4 addr=0x308 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF4' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF5 addr=0x30a size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF5' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF6 addr=0x30c size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF6' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF7 addr=0x30e size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF7' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF8 addr=0x310 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF8' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUF9 addr=0x312 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUF9' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUFA addr=0x314 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUFA' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUFB addr=0x316 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUFB' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUFC addr=0x318 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUFC' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUFD addr=0x31a size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUFD' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUFE addr=0x31c size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUFE' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADC1BUFF addr=0x31e size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADC1BUFF' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)

sfr (key=AD1CON1 addr=0x320 size=2 access='rw u rw u u u rw rw rw rw rw u u rw rw rc')
    reset (por='0-0---00000--000' mclr='0-0---00000--000')
    bit (names='ADON - ADSIDL - - - FORM SSRC - - ASAM SAMP DONE' width='1 1 1 1 1 1 2 3 1 1 1 1 1')
    stimulus (scl=rwb)
    
sfr (key=AD1CON2 addr=0x322 size=2 access='rw rw rw u u rw u u r u rw rw rw rw rw rw')
    reset (por='0000-0--0-000000' mclr='0000-0--0-000000')
    bit (names='VCFG - - CSCNA - - BUFS - SMPI BUFM ALTS' width='3 1 1 1 1 1 1 1 4 1 1')
    stimulus (scl=rwb)
    
sfr (key=AD1CON3 addr=0x324 size=2 access='rw u u rw rw rw rw rw rw rw rw rw rw rw rw rw')
   reset (por='0--0000000000000' mclr='0--0000000000000')
   bit (names='ADRC - - SAMC ADCS' width='1 1 1 5 8')
   stimulus (scl=rwb)

# CH0NB0 is unimplemented in PS part -- leo.   
sfr (key=AD1CHS addr=0x328 size=2 access='rw u u u rw rw rw rw rw u u u rw rw rw rw')
    reset (por='00--00000---0000' mclr='00--00000---0000')
    bit (names='CH0NB - - CH0SB CH0NA - - - CH0SA' width='2 1 1 4 1 1 1 1 4')
    stimulus (scl=rwb)

UnusedRegs (0x326-0x327)

UnusedRegs (0x32a-0x32b)



sfr (key=AD1PCFG addr=0x32C size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='---0000000000000' mclr='---0000000000000')
    bit (names='- - - PCFG' width='1 1 1 13')
    stimulus (scl=rwb)

UnusedRegs (0x32e-0x32f)

sfr (key=AD1CSSL addr=0x330 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='---0000000000000' mclr='---0000000000000')
    bit (names='- - - CSSL' width='1 1 1 13')
    stimulus (scl=rwb)

UnusedRegs (0x332-0x33f)


UnusedRegs (0x340-0x3ff)

# PMP Registers ######################################################

sfr (key=PMCON addr=0x600 size=2 access='rw u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0-00000000000000' mclr='0-00000000000000')
    bit (names='PMPEN - PSIDL ADRMUX PTBEEN PTWREN PTRDEN CSF ALP CS2P CS1P BEP WRSP RDSP' width='1 1 1 2 1 1 1 2 1 1 1 1 1 1')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)
sfr (key=PMMODE addr=0x602 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='BUSY IRQM INCM MODE16 MODE1 MODE0 WAITB WAITM WAITE' width='1 2 2 1 1 1 2 4 2')
    bit (tag=scl names='- BUSY 8_16 IRCM INCM MODE WAIT3 WAIT2 WAIT1' width='1 1 1 2 2 2 2 3 2')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)
sfr (key=PMADDR addr=0x604 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='CS ADDR' width='2 14')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)
sfr (key=PMDOUT2 addr=0x606 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='DATA' width='16')
sfr (key=PMDIN1 addr=0x608 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='DATA' width='16')
    stimulus (scl=rwb type=int regfiles=rw pcfiles=rw)
sfr (key=PMPDIN2 addr=0x60a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='DATA' width='16')
    stimulus (scl=rwb type=int regfiles=rw pcfiles=rw)
sfr (key=PMPEN addr=0x60c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='PTEN' width='16')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)
sfr (key=PMSTAT addr=0x60e size=2 access='rw rw u u rw rw rw rw rw rw u u rw rw rw rw')
    reset (por='00--000000--0000' mclr='uu--uuuuuu--uuuu')
    bit (names='IBF IBOV - - IB3F IB2F IB1F IB0F OBE OBUF - - OB3E OB2E OB1E OB0E')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)

UnusedRegs (0x610-0x61d)



# DOS-00604 A.3 disagrees on the starting address of this sequence of
# SFRs.  I wouldn't trust it until I get an answer back from Cris.  Of
# course, this puts the ending address of the the registers in the
# preceeding macro into question as well.

sfr (key=ALRMVAL addr=0x620 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='ALRMVAL' width='16')
    stimulus (scl=rwb type=int regfiles=rw pcfiles=rw)
sfr (key=ALRMCFG addr=0x622 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='ALRMEN CHIME AMASK APTR ARPT' width='1 1 4 2 8')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)
sfr (key=RTCVAL addr=0x624 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='RTCVAL' width='16')
    stimulus (scl=rwb type=int regfiles=rw pcfiles=rw)
sfr (key=RCFGCAL addr=0x626 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='RTCEN - RTCWREN RTCSYNC HALFSEC RTCOE RTCPTR CAL' width='1 1 1 1 1 1 2 8')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)

UnusedRegs (0x628-0x62f)



sfr (key=CMCON addr=0x630 size=2 access='rw u rc rc rw rw rw rw r r rw rw rw rw rw rw')
    reset (por='0-00000000000000' mclr='u-uuuuuuuuuuuuuu')
    bit (names='PSIDL - C2EVT C1EVT C2EN C1EN C2OUTEN C1OUTEN C2OUT C1OUT C2INV C1INV C2NEG C2POS C1NEG C1POS')
sfr (key=CVRCON addr=0x632 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------uuuuuuuu')
    bit (names='- - - - - - - - CVREN CVROE CVRR CVRSS CVR' width='1 1 1 1 1 1 1 1 1 1 1 1 4')

UnusedRegs (0x634-0x63f)


sfr (key=CRCCON addr=0x640 size=2 access='u u rw r r r r r r r u rw rw rw rw rw')
    reset (por='--00000001000000' mclr='--00000001000000')
    bit (names='- - CSIDL VWORD CRCFUL CRCMPT - CRCGO PLEN' width='1 1 1 5 1 1 1 1 4')

sfr (key=CRCXOR addr=0x642 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CRCXOR' with='16')
    
sfr (key=CRCDAT addr=0x644 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CRCDAT' with='16')

sfr (key=CRCWDAT addr=0x646 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CRCWDAT' with='16')
    
UnusedRegs (0x648-0x6bf)
UnusedRegs (0x700-0x73f)


sfr (key=RCON addr=0x740 size=2 access='rw rw u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='00------00000011' mclr='uu------uuuuuuuu')
    bit (names='TRAPR IOPR - - - - - - EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR')
    stimulus (scl=r)
    
sfr (key=OSCCON addr=0x742 size=2 access='u r r r u rw rw rw r u r u r u rw rw')
    reset (por='-000-yyy00000000' mclr='-000-yyy00000000')
    bit (names='- COSC - NOSC CLKLOCK - LOCK - CF - SOSCEN OSWEN' width='1 3 1 3 1 1 1 1 1 1 1 1')
    stimulus (scl=r)
    
sfr (key=CLKDIV addr=0x744 size=2 access='u rw rw rw rw rw rw rw u u u u u u u u')
    reset (por='00000011--------' mclr='00000011--------')
    bit (names='ROI DOZE DOZEN RCDIV - - - - - - - -' width='1 3 1 3 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)
    
UnusedRegs (0x746-0x747)

sfr (key=OSCTUN addr=0x748 size=2 access='u u u u u u u u u u rw rw rw rw rw rw')
    reset (por='----------000000' mclr='----------000000')
    bit (names='- - - - - - - - - - TUN' width='1 1 1 1 1 1 1 1 1 1 6')
    stimulus (scl=rwb regfiles=rw pcfiles=rw)

UnusedRegs (0x74a-0x75e)



#For now I have used the dsPIC NVM's as they are shown in the MM4 DOS
sfr (key=EECON1 addr=0x760 size=2 access='rs rw rw u u u u u u rw u u rw rw rw rw')
    reset (por='000------0--0000' mclr='000------0--0000')
    bit (names='WR WREN WRERR - - - - - - ERASE - - NVMOP' width='1 1 1 1 1 1 1 1 1 1 1 1 4')
    stimulus (scl=r)
#UnusedRegs (0x762-0x765)
#There are no NVMADR sfr's in this device
sfr (key=EECON2 addr=0x766 size=2 access='u u u u u u u u w w w w w w w w')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - NVMKEY' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=r)
UnusedRegs (0x768-0x76f)



sfr (key=PMD1 addr=0x770 size=2 access='rw rw rw rw rw u u u rw rw rw rw rw rw rw rw')
    reset (por='00000---00000000' mclr='00000---00000000')
    bit (names='T5MD T4MD T3MD T2MD T1MD - - - I2CMD U2MD U1MD SPI2MD SPI1MD C2MD C1MD ADCM')
    stimulus (scl=rw)
sfr (key=PMD2 addr=0x772 size=2 access='u u u rw rw rw rw rw u u u rw rw rw rw rw')
    reset (por='---00000---00000' mclr='---00000---00000')
    bit (names='- - - IC5MD IC4MD IC3MD IC2MD IC1MD - - - OC5MD OC4MD OC3MD OC2MD 0C1MD')
    stimulus (scl=rw)
sfr (key=PMD3 addr=0x774 size=2 access='u u u u u rw rw rw u u u u u u rw u')
    reset (por='-----000------0-' mclr='-----000------0-')
    bit (names='- - - - - CMPMD RTCCMD PMPMD - - - - - - I2CMD -')

UnusedRegs (0x776-0x77f)


UnusedRegs (0x780-7ff)

                               # -------------------#
#------------------------------# Configuration Bits #------------------------------------#
                               # -------------------#
cfgbits (key=LASTWORDMINUSONE addr=0xabfc unused=0x0000)
    field (key=POSCMOD mask=0x0003 desc="Primary Oscillator Select" fuseaddr=0xF80008 fusemask=0x0003)
        setting (req=0x0003 value=0x0003 desc="Primary Oscillator Disabled")
        setting (req=0x0003 value=0x0002 desc="HS Oscillator Enabled")
        setting (req=0x0003 value=0x0001 desc="XT Oscillator Enabled")
        setting (req=0x0003 value=0x0000 desc="External-Clock Mode Enabled")
    field (key=OSCIOFNC mask=0x0020 desc="Primary Oscillator Output Function" fuseaddr=0xF80008 fusemask=0x0020)
        setting (req=0x0020 value=0x0000 desc="OSCO pin has digital I/O function")
        setting (req=0x0020 value=0x0020 desc="OSCO pin has clock out function")         
    field (key=FCKSM mask=0x00C0 desc="Clock Switching and Monitor" fuseaddr=0xF80008 fusemask=0x00C0)
        setting (req=0x0080 value=0x0080 desc="Sw Disabled, Mon Disabled")
        setting (req=0x00C0 value=0x0040 desc="Sw Enabled, Mon Disabled")
        setting (req=0x00C0 value=0x0000 desc="Sw Enabled, Mon Enabled")
    field (key=FNOSC mask=0x0700 desc="Oscillator Select" fuseaddr=0xF80008 fusemask=0x0700)
        setting (req=0x0700 value=0x0700 desc="Fast RC Oscillator with Postscaler (FRCDIV)")
        setting (req=0x0700 value=0x0500 desc="Low-Power RC Oscillator (LPRC)")
        setting (req=0x0700 value=0x0400 desc="Secondary Oscillator (SOSC)")
        setting (req=0x0700 value=0x0300 desc="Primary Oscillator with PLL module (HSPLL, ECPLL)")
        setting (req=0x0700 value=0x0200 desc="Primary Oscillator (XT, HS, EC)")
        setting (req=0x0700 value=0x0100 desc="Fast RC Oscillator with PLL module (FRCPLL)")
        setting (req=0x0700 value=0x0000 desc="Fast RC Oscillator (FRC)")            
    # According to Dave O., the data sheet as of 4/19/06 is wrong. The unused bits should be set
    # to one JLD. The following hidden reserved field does that.
    field (key=RES0 mask=0xF81C desc="Reserved" init=0xF81C flags=xh)    # these bits should be 1
        setting (req=0xF81C value=0xF81C desc="Reserved")

cfgbits (key=LASTWORD addr=0xabfe unused=0x0000)
    field (key=WDTPS mask=0x000f desc="Watchdog Timer Postscaler" fuseaddr=0xF8000A fusemask=0x000F)
        setting (req=0x000f value=0x000f desc="1:32,768")
        setting (req=0x000f value=0x000e desc="1:16,384")
        setting (req=0x000f value=0x000d desc="1:8,192")
        setting (req=0x000f value=0x000c desc="1:4,096")
        setting (req=0x000f value=0x000b desc="1:2,048")
        setting (req=0x000f value=0x000a desc="1:1,024")
        setting (req=0x000f value=0x0009 desc="1:512")
        setting (req=0x000f value=0x0008 desc="1:256")
        setting (req=0x000f value=0x0007 desc="1:128")
        setting (req=0x000f value=0x0006 desc="1:64")
        setting (req=0x000f value=0x0005 desc="1:32")
        setting (req=0x000f value=0x0004 desc="1:16")
        setting (req=0x000f value=0x0003 desc="1:8")
        setting (req=0x000f value=0x0002 desc="1:4")
        setting (req=0x000f value=0x0001 desc="1:2")
        setting (req=0x000f value=0x0000 desc="1:1")
    field (key=FWPSA mask=0x0010 desc="WDT Prescaler" fuseaddr=0xF8000A fusemask=0x0010)
        setting (req=0x0010 value=0x0010 desc="1:128")
        setting (req=0x0010 value=0x0000 desc="1:32")             
    field (key=FWDTEN mask=0x0080 desc="Watchdog Timer Enable" min=1 fuseaddr=0xF8000A fusemask=0x0080)
        setting (req=0x0080 value=0x0080 desc="Enable")
        setting (req=0x0080 value=0x0000 desc="Disable")
    field (key=ICS mask=0x0100 desc="Comm Channel Select" fuseaddr=0xF80010 fusemask=0x0001 init=0x0100)
        setting (req=0x0100 value=0x0100 desc="EMIC2/EMUD2 shared with PCG2/PGD2")
        setting (req=0x0100 value=0x0000 desc="EMIC1/EMUD1 shared with PCG1/PGD1")
    field (key=COE mask=0x0400 desc="Set Clip On Emulation Mode" fuseaddr=0xF80010 fusemask=0x0040)
        setting (req=0x0400 value=0x0400 desc="Reset Into Operational Mode")
        setting (req=0x0400 value=0x0000 desc="Reset Into Clip On Emulation Mode")
    field (key=BACKBUG mask=0x0800 desc="Background Debug" fuseaddr=0xF80010 fusemask=0x0080 flags=h)
        setting (req=0x0800 value=0x0800 desc="Disabled")
        setting (req=0x0800 value=0x0000 desc="Enabled")
    field (key=GWRP mask=0x1000 desc="General Code Segment Write Protect" fuseaddr=0xF80010 fusemask=0x0001)
        setting (req=0x1000 value=0x1000 desc="Disabled")
        setting (req=0x1000 value=0x0000 desc="Enabled")
    field (key=GSS0 mask=0x2000 desc="General Code Segment Code Protect" fuseaddr=0xF80010 fusemask=0x0002)
        setting (req=0x2000 value=0x2000 desc="Disabled")
        setting (req=0x2000 value=0x0000 desc="Enabled")
    #For unkown reasons I had set JTAGEN was set to 0 in 10/20/05. Now we know from Dave O. 
    # that this must be a 1.
    field (key=JTAGEN mask=0x4000 desc="JTAG Port Enable" fuseaddr=0xF80010 fusemask=0x0020)
      setting (req=0x4000 value=0x4000 desc="Enabled")
      setting (req=0x4000 value=0x0000 desc="Disabled")
    # According to Dave O., the data sheet as of 4/19/06 is wrong. The unused bits should be set
    # to one JLD. The following hidden reserved field does that.
    field (key=RES1 mask=0x0260 desc="Reserved" init=0x0260 flags=xh)    # these bits should be 1
        setting (req=0x0260 value=0x0260 desc="Reserved")
    # Datasheet DS39756A says this bit must be programmed to a 0, and that the read value is indeterminent
    # so I've disabled the illegal value and marked the field as X GBP
    field (key=SIGN mask=0x8000 desc="Signature Bit" init=0x0x0000 flags=xh)
        #setting (req=0x8000 value=0x8000 desc="Incorrect")
        setting (req=0x8000 value=0x0000 desc="Correct")
                               # ------------#
#------------------------------# Peripherals #------------------------------------#
                               # ------------#

#--------------------------------------------------------------------------------
# Note: nextpin=NONE when next pinfunc is a portpin (eg RA3), CNx, or INTx.
# nextperiph=NONE when nextpin=NONE
#--------------------------------------------------------------------------------
peripheral (key=PORTA sfrs='TRISA LATA PORTA INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RA0 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN2 enreg=CNEN1 enmask=0x0004)
    iopin (key=RA1 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN3 enreg=CNEN1 enmask=0x0008)
    iopin (key=RA2 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN30 enreg=CNEN2 enmask=0x4000)
    iopin (key=RA3 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN29 enreg=CNEN2 enmask=0x2000)
    iopin (key=RA4 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN0 enreg=CNEN1 enmask=0x0001)
    iopin (key=RA5 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN20 enreg=CNEN2 enmask=0x0010)
    iopin (key=RA6 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN19 enreg=CNEN2 enmask=0x0008)
    iopin (key=RA7 dir=inout)
    iopin (key=RA8 dir=inout)
    iopin (key=RA9 dir=inout)
    iopin (key=RA10 dir=inout)


#--------------------------------------------------------------------------------
# 				PORTB
#--------------------------------------------------------------------------------

peripheral (key=PORTB sfrs='TRISB LATB PORTB INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RB0 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN4 enreg=CNEN1 enmask=0x0010)
        cnpin (key=RP0 notify=XBAR)
    iopin (key=RB1 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN5 enreg=CNEN1 enmask=0x0020)
        cnpin (key=RP1 notify=XBAR)
    iopin (key=RB2 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN6 enreg=CNEN1 enmask=0x0040)
        cnpin (key=RP2 notify=XBAR)
    iopin (key=RB3 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN7 enreg=CNEN1 enmask=0x0080)
        cnpin (key=RP3 notify=XBAR)
    iopin (key=RB4 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN1 enreg=CNEN1 enmask=0x0002)
        cnpin (key=RP4 notify=XBAR)
    iopin (key=RB5 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN27 enreg=CNEN2 enmask=0x0800)
        cnpin (key=RP5 notify=XBAR)
    iopin (key=RB6 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN24 enreg=CNEN2 enmask=0x0100)
        cnpin (key=RP6 notify=XBAR)
    iopin (key=RB7 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN23 enreg=CNEN2 enmask=0x0080)
        cnpin (key=RP7 notify=XBAR)
    iopin (key=RB8 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN22 enreg=CNEN2 enmask=0x0040)
        cnpin (key=RP8 notify=XBAR)
    iopin (key=RB9 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN21 enreg=CNEN2 enmask=0x0020)
        cnpin (key=RP9 notify=XBAR)
    iopin (key=RB10 dir=inout)
        cnpin (key=RP10 notify=XBAR)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN16 enreg=CNEN1 enmask=0x8000)
    iopin (key=RB11 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN15 enreg=CNEN1 enmask=0x6000)
        cnpin (key=RP11 notify=XBAR)
    iopin (key=RB12 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN14 enreg=CNEN1 enmask=0x4000)
        cnpin (key=RP12 notify=XBAR)
    iopin (key=RB13 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN13 enreg=CNEN1 enmask=0x2000)
        cnpin (key=RP13 notify=XBAR)
    iopin (key=RB14 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN12 enreg=CNEN1 enmask=0x1000)
        cnpin (key=RP14 notify=XBAR)
    iopin (key=RB15 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN11 enreg=CNEN1 enmask=0x0800)
        cnpin (key=RP15 notify=XBAR)


###        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
#        cn (key=CN12 enreg=CNEN1 enmask=0x1000)
#        cnpin (key=OCFB notify=OC5)



#--------------------------------------------------------------------------------
# 				PORTC
#--------------------------------------------------------------------------------

peripheral (key=PORTC sfrs='TRISC LATC PORTC INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RC0 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN8 enreg=CNEN1 enmask=0x0100)
        cnpin (key=RP16 notify=XBAR)
    iopin (key=RC1 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN9 enreg=CNEN1 enmask=0x0200)
        cnpin (key=RP17 notify=XBAR)
    iopin (key=RC2 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN10 enreg=CNEN1 enmask=0x0400)
        cnpin (key=RP18 notify=XBAR)
    iopin (key=RC3 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN28 enreg=CNEN2 enmask=0x1000)
        cnpin (key=RP19 notify=XBAR)
    iopin (key=RC4 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN25 enreg=CNEN2 enmask=0x0200)
        cnpin (key=RP20 notify=XBAR)
    iopin (key=RC5 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN26 enreg=CNEN2 enmask=0x0400)
        cnpin (key=RP21 notify=XBAR)
    iopin (key=RC6 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN18 enreg=CNEN2 enmask=0x0004)
        cnpin (key=RP22 notify=XBAR)
    iopin (key=RC7 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN17 enreg=CNEN2 enmask=0x0002)
        cnpin (key=RP23 notify=XBAR)


#--------------------------------------------------------------------------------
# 				CROSS BAR
#
#    pinfunc (key=RP0 port=RC0 dir=inout)
#        nextp (nextperiph=TMR2 nextpin=T2CKI)
#        nextp (nextperiph=TMR3 nextpin=T3CKI)
# The original intent of nextperiph was to handle pin control by peripherals with a higher priority
#
# In the CorssBar switch the next peripheral is used to identify what peripheral is attached to
# which input pin. There are 2 IOpin id's per input and output register. The register contains a
# High and Low byte, each used for a different input peripheral function
#
#    #RPIN_OUTR0
#    pinfunc (key=RP0 port=RB0 dir=inout)
#            nextp (nextperiph=UART1 nextpin=U1RX)  RPINR0:<bits 0-7> contain the pin ID associated with the UART1::RX
#    pinfunc (key=RP1 port=RB1 dir=inout)
#            nextp (nextperiph=NONE nextpin=NONE)   RPINR0:<bits 8-15> does not contain a specific Peripheral pin function
#                                                                      or at least not one that is used in the simulator.
# The key name and Port is used to map the output pins to the physical IO. It aslo provides the 
# output SFR associated with the actual pin.
#
#    #RPIN_OUTR0
#    pinfunc (key=RP0 port=RB0 dir=inout)  RPOUTR0:<bits 0-7> Contain the peripheral pin ID associated with the RB0 physical pin
#            nextp (nextperiph=UART1 nextpin=U1RX)
#    pinfunc (key=RP1 port=RB1 dir=inout)  RPOUTR0:<bits 8-15> Contain the peripheral pin ID associated with the RB1
#            nextp (nextperiph=NONE nextpin=NONE)
# 
#--------------------------------------------------------------------------------

peripheral (key=XBAR sfrs='RPINR0 RPINR1 RPINR2 RPINR3 RPINR4 RPINR5 RPINR6 RPINR7 RPINR8 RPINR9 RPINR10 RPINR11 RPOUTR0 RPOUTR1 RPOUTR2 RPOUTR3 RPOUTR4 RPOUTR5 RPOUTR6 RPOUTR7 RPOUTR8 RPOUTR9 RPOUTR10 RPOUTR11')
    #RPIN_OUTR0
    pinfunc (key=RP0 port=RB0 dir=inout)
            nextp (nextperiph=UART1 nextpin=U1RX)
    pinfunc (key=RP1 port=RB1 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    #RPIN_OUTR1
    pinfunc (key=RP2 port=RB2 dir=inout)
            nextp (nextperiph=UART2 nextpin=U2RX)
    pinfunc (key=RP3 port=RB3 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    #RPIN_OUTR2
    pinfunc (key=RP4 port=RB4 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    pinfunc (key=RP5 port=RB5 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    #RPIN_OUTR3
    pinfunc (key=RP6 port=RB6 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    pinfunc (key=RP7 port=RB7 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    #RPIN_OUTR4
    pinfunc (key=RP8 port=RB8 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    pinfunc (key=RP9 port=RB9 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    #RPIN_OUTR5
    pinfunc (key=RP10 port=RB10 dir=inout)
            nextp (nextperiph=OC1 nextpin=OCFA)
	        nextp (nextperiph=OC2 nextpin=OCFA)
            nextp (nextperiph=OC3 nextpin=OCFA)
	        nextp (nextperiph=OC4 nextpin=OCFA)
	        nextp (nextperiph=OC5 nextpin=OCFA)
	pinfunc (key=RP11 port=RB11 dir=inout)
            nextp (nextperiph=IC1 nextpin=IC1)
    #RPIN_OUTR6
    pinfunc (key=RP12 port=RB12 dir=inout)
            nextp (nextperiph=IC2 nextpin=IC2)
    pinfunc (key=RP13 port=RB13 dir=inout)
            nextp (nextperiph=IC3 nextpin=IC3)
    #RPIN_OUTR7
    pinfunc (key=RP14 port=RB14 dir=inout)
            nextp (nextperiph=IC4 nextpin=IC4)
    pinfunc (key=RP15 port=RB15 dir=inout)
            nextp (nextperiph=IC5 nextpin=IC5)
    #RPIN_OUTR8
    pinfunc (key=RP16 port=RC0 dir=inout)
            nextp (nextperiph=TMR2 nextpin=T2CLK)
            nextp (nextperiph=TMR3 nextpin=T3CLK)
    pinfunc (key=RP17 port=RC1 dir=inout)
            nextp (nextperiph=TMR4 nextpin=T4CLK)
            nextp (nextperiph=TMR5 nextpin=T5CLK)
    #RPIN_OUTR9
    pinfunc (key=RP18 port=RC2 dir=inout)
            nextp (nextperiph=INT0 nextpin=INT0)
    pinfunc (key=RP19 port=RC3 dir=inout)
            nextp (nextperiph=INT1 nextpin=INT1)
    #RPIN_OUTR10
    pinfunc (key=RP20 port=RC4 dir=inout)
            nextp (nextperiph=INT2 nextpin=INT2)
    pinfunc (key=RP21 port=RC5 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    #RPIN_OUTR11
    pinfunc (key=RP22 port=RC6 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    pinfunc (key=RP23 port=RC7 dir=inout)
            nextp (nextperiph=NONE nextpin=NONE)
    interrupt (name=INT0 enreg=IEC0 enmask=0x0001 flgreg=IFS0 flgmask=0x0001 prireg=IPC0 primask=0x0007)
    interrupt (name=INT1 enreg=IEC1 enmask=0x0010 flgreg=IFS1 flgmask=0x0010 prireg=IPC5 primask=0x0007)
    interrupt (name=INT2 enreg=IEC1 enmask=0x2000 flgreg=IFS1 flgmask=0x2000 prireg=IPC7 primask=0x0070)


#--------------------------------------------------------------------------------
# 				CM
#--------------------------------------------------------------------------------

peripheral (key=CM sfrs='CMCON')
    pinfunc (key=C1INN port=RB2 dir=in)
    pinfunc (key=C1INP port=RB3 dir=in)
    pinfunc (key=C2INN port=RB0 dir=in)
    pinfunc (key=C2INP port=RB1 dir=in)
    interrupt (name=CMINT enreg=IEC1 enmask=0x0004 flgreg=IFS1 flgmask=0x0004 prireg=IPC4 primask=0x0700)

#--------------------------------------------------------------------------------
# 				TIMERs
#--------------------------------------------------------------------------------

peripheral (key=TMR1 sfrs='TMR1 PR1 T1CON')
    pinfunc (key=T1CK port=RA4 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=TMR1INT enreg=IEC0 enmask=0x0008 flgreg=IFS0 flgmask=0x0008 prireg=IPC0 primask=0x7000)

peripheral (key=TMR2 sfrs='TMR2 PR2 T2CON TMR3 TMR3HLD PR3 T3CON')
    interrupt (name=TMR2INT enreg=IEC0 enmask=0x0080 flgreg=IFS0 flgmask=0x0080 prireg=IPC1 primask=0x7000)

peripheral (key=TMR3 sfrs='TMR3 TMR3HLD PR3 T3CON')
    interrupt (name=TMR3INT enreg=IEC0 enmask=0x0100 flgreg=IFS0 flgmask=0x0100 prireg=IPC2 primask=0x0007)

peripheral (key=TMR4 sfrs='TMR4 PR4 T4CON TMR5 TMR5HLD PR5 T5CON')
    interrupt (name=TMR4INT enreg=IEC1 enmask=0x0800 flgreg=IFS1 flgmask=0x0800 prireg=IPC6 primask=0x7000)

peripheral (key=TMR5 sfrs='TMR5 TMR5HLD PR5 T5CON')
    interrupt (name=TMR5INT enreg=IEC1 enmask=0x1000 flgreg=IFS1 flgmask=0x1000 prireg=IPC7 primask=0x0007)

#--------------------------------------------------------------------------------
# 				ADC1012_1
#--------------------------------------------------------------------------------

peripheral (key=ADC1012_1 sfrs='AD1CON1 AD1CON2 AD1CON3 AD1CHS AD1PCFG AD1CSSL ADC1BUF0 ADC1BUF1 ADC1BUF2 ADC1BUF3 ADC1BUF4 ADC1BUF5 ADC1BUF6 ADC1BUF7 ADC1BUF8 ADC1BUF9 ADC1BUFA ADC1BUFB ADC1BUFC ADC1BUFD ADC1BUFE ADCBUFF')
    pinfunc (key=AN0 port=RA0 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN1 port=RA1 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN2 port=RB0 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN3 port=RB1 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN4 port=RB2 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN5 port=RB3 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN6 port=RC0 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN7 port=RC1 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN8 port=RC2 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN9 port=RB15 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN10 port=RB14 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN11 port=RB13 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN12 port=RB12 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=ADCINT enreg=IEC0 enmask=0x2000 flgreg=IFS0 flgmask=0x2000 prireg=IPC3 primask=0x0070)


#--------------------------------------------------------------------------------
# 				Input Capture
#--------------------------------------------------------------------------------

peripheral (key=IC1 sfrs='IC1CON IC1BUF')
    timers (addr=0x142 mask=0x0080)	 #IC1CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC1 port=RP11 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC1INT enreg=IEC0 enmask=0x0002 flgreg=IFS0 flgmask=0x0002 prireg=IPC0 primask=0x0070)

peripheral (key=IC2 sfrs='IC2CON IC2BUF')
    timers (addr=0x146 mask=0x0080)	 #IC2CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC2 port=RP12 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC2INT enreg=IEC0 enmask=0x0020 flgreg=IFS0 flgmask=0x0020 prireg=IPC1 primask=0x0070)

peripheral (key=IC3 sfrs='IC3CON IC3BUF')
    timers (addr=0x14a mask=0x0080)	 #IC3CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC3 port=RP13 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC3INT enreg=IEC2 enmask=0x0020 flgreg=IFS2 flgmask=0x0020 prireg=IPC9 primask=0x0070)

peripheral (key=IC4 sfrs='IC4CON IC4BUF')
    timers (addr=0x14e mask=0x0080)	 #IC4CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC4 port=RP14 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC4INT enreg=IEC2 enmask=0x0040 flgreg=IFS2 flgmask=0x0040 prireg=IPC9 primask=0x0700)

peripheral (key=IC5 sfrs='IC5CON IC5BUF')
    timers (addr=0x152 mask=0x0080)	 #IC5CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC5 port=RP15 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC5INT enreg=IEC2 enmask=0x0080 flgreg=IFS2 flgmask=0x0080 prireg=IPC9 primask=0x7000)


#--------------------------------------------------------------------------------
# 				Output Compare
#--------------------------------------------------------------------------------

peripheral (key=OC1 sfrs='OC1RS OC1R OC1CON')
    timers (addr=0x184 mask=0x0008)	#OC1CON
        setting (val=0 key=TMR2)
        setting (val=1 key=TMR3)
    pinfunc (key=OCFA port=RP10 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=OC1INT enreg=IEC0 enmask=0x0004 flgreg=IFS0 flgmask=0x0004 prireg=IPC0 primask=0x0700)

peripheral (key=OC2 sfrs='OC2RS OC2R OC2CON')
    timers (addr=0x18a mask=0x0008)	#OC2CON
        setting (val=0 key=TMR2)
        setting (val=1 key=TMR3)
    pinfunc (key=OCFA port=RP10 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=OC2INT enreg=IEC0 enmask=0x0040 flgreg=IFS0 flgmask=0x0040 prireg=IPC1 primask=0x0700)

peripheral (key=OC3 sfrs='OC3RS OC3R OC3CON')
    timers (addr=0x190 mask=0x0008)	#OC3CON
        setting (val=0 key=TMR2)
        setting (val=1 key=TMR3)
    pinfunc (key=OCFA port=RP10 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=OC3INT enreg=IEC1 enmask=0x0200 flgreg=IFS1 flgmask=0x0200 prireg=IPC6 primask=0x0070)

peripheral (key=OC4 sfrs='OC4RS OC4R OC4CON')
    timers (addr=0x196 mask=0x0008)	#OC4CON
        setting (val=0 key=TMR2)
        setting (val=1 key=TMR3)
    pinfunc (key=OCFA port=RP10 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=OC4INT enreg=IEC1 enmask=0x0400 flgreg=IFS1 flgmask=0x0400 prireg=IPC6 primask=0x0700)

peripheral (key=OC5 sfrs='OC5RS OC5R OC5CON')
    timers (addr=0x19c mask=0x0008)	#OC5CON
        setting (val=0 key=TMR2)
        setting (val=1 key=TMR3)
    pinfunc (key=OCFB port=RP10 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=OC5INT enreg=IEC2 enmask=0x0200 flgreg=IFS2 flgmask=0x0200 prireg=IPC10 primask=0x0070)


#--------------------------------------------------------------------------------
# 				UARTs
#--------------------------------------------------------------------------------

peripheral (key=UART1 sfrs='U1MODE U1STA U1TXREG U1RXREG U1BRG')
    pinfunc (key=U1RX port=RP0 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=RXINT1 enreg=IEC0 enmask=0x0800 flgreg=IFS0 flgmask=0x0800 prireg=IPC2 primask=0x7000)
    interrupt (name=TXINT1 enreg=IEC0 enmask=0x1000 flgreg=IFS0 flgmask=0x1000 prireg=IPC3 primask=0x0007)

peripheral (key=UART2 sfrs='U2MODE U2STA U2TXREG U2RXREG U2BRG')
    pinfunc (key=U2RX port=RP2 dir=in nextperiph=NONE nextpin=NONE)
# ----------------------------------------------------------
# Do not uncomment unless this device contains a 4-pin UART2 
# (vs. a 2-PIN UART2) and you fill in the blank fields below.
#    pinfunc (key=U2CTS port= dir=in nextperiph= nextpin=)
#    pinfunc (key=U2RTS port= dir=out nextperiph= nextpin=)
# ----------------------------------------------------------
    interrupt (name=RXINT2 enreg=IEC1 enmask=0x4000 flgreg=IFS1 flgmask=0x4000 prireg=IPC7 primask=0x0700)
    interrupt (name=TXINT2 enreg=IEC1 enmask=0x8000 flgreg=IFS1 flgmask=0x8000 prireg=IPC7 primask=0x7000)

#--------------------------------------------------------------------------------
# 				SPIs
#--------------------------------------------------------------------------------

peripheral (key=SPI1) # sfrs='SPI1STAT SPI1CON SPI1BUF')
    pinfunc (key=SCK1 port=RP4 dir=inout nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDI1 port=RP5 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDO1 port=RP6 dir=out nextperiph=NONE nextpin=NONE)
peripheral (key=SPI2) # sfrs='SPI2STAT SPI2CON SPI2BUF')
    pinfunc (key=SCK2 port=RP8 dir=inout nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDI2 port=RP9 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDO2 port=RP7 dir=out nextperiph=NONE nextpin=NONE)

#--------------------------------------------------------------------------------
# 				I2C
#--------------------------------------------------------------------------------

peripheral (key=I2C) # sfrs='I2CRCV I2CTRN I2CBRG I2CCON I2CSTAT I2CADD')
    pinfunc (key=SCL port=RB8 dir=inout nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDA port=RB9 dir=inout nextperiph=NONE nextpin=NONE)
peripheral (key=I2C2) # sfrs='I2C2RCV I2C2TRN I2C2BRG I2C2CON I2C2STAT I2C2ADD')
    pinfunc (key=SCL2 port=RB3 dir=inout nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDA2 port=RB2 dir=inout nextperiph=NONE nextpin=NONE)

#--------------------------------------------------------------------------------
# 				OSC
#--------------------------------------------------------------------------------
peripheral (key=OSC sfrs='OSCCON')
peripheral (key=OSC sfrs='OSCCON')
    pinfunc (key=OSC1 port=RA2 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OSC2 port=RA3 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=SOSC1 port=RB4 dir=out nextperiph=TMR1 nextpin=T1CK)
    pinfunc (key=SOSC2 port=RA4 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=CLKO port=RA3 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=CLKI port=RA2 dir=out nextperiph=NONE nextpin=NONE)
    
peripheral (key=PSP)

#--------------------------------------------------------------------------------
# 				CORE SFRs
#--------------------------------------------------------------------------------
peripheral (key=CORE sfrs='INTCON1 INTCON2 IFS0 IFS1 IFS2 IFS3 IFS4 IEC0 IEC1 IEC2 IEC3 IEC4 IPC0 IPC1 IPC2 IPC3 IPC4 IPC5 IPC6 IPC7 IPC8 IPC9 IPC10 IPC11 IPC12 IPC13 IPC15 IPC16 INTREG EECON1 EECON2')
