format=0.1

# Variant 24
# device=PIC24FJ128GA010
# DOS: DOS-00604
# 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-0x157fb)
    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=0x0x157fc-0x157ff)
cfgwormmem (region=0xF80000-0xF80011)
# GI 8/17/04 Removed from programming spec
# userid (region=0x8005C0-0x8005FF)

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

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

NumBanks=0
xymem (region=0x800-0x27ff 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 u u u u u u u u u rw rw rw rw rw rw')
    reset (por='----------000000' mclr='----------000000')
    bit (names='- - - - - - - - - - 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 u u u u u u u u u rw rw rw rw rw rw')
    reset (por='----------000000' mclr='----------000000')
    bit (names='- - - - - - - - - - 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)

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

sfr (key=TRISA addr=0x2c0 size=2 access='rw rw u u u rw rw u rw rw rw rw rw rw rw rw')
    reset (por='11---11-11111111' mclr='11---11-11111111')
    bit (names='TRISA15 TRISA14 - - - TRISA10 TRISA9 - TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0')
    bit (tag=scl names='TRISA' width='16')
    stimulus (scl=rwb)
    
sfr (key=PORTA addr=0x2c2 size=2 access='rw rw u u u rw rw u rw rw rw rw rw rw rw rw')
    reset (por='xx---xx-xxxxxxxx' mclr='uu---uu-uuuuuuuu')
    bit (names='RA15 RA14 - - - RA10 RA9 - RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0')
    bit (tag=scl names='RA' width='16')
    stimulus (scl=rwb)
    
sfr (key=LATA addr=0x2c4 size=2 access='rw rw u u u rw rw u rw rw rw rw rw rw rw rw')
    reset (por='00---00-00000000' mclr='uu---uu-uuuuuuuu')
    bit (names='LATA15 LATA14 - - - LATA10 LATA9 - LATA7 LATA6 LATA5 LATA4 LATA3 LATA2 LATA1 LATA0')
    bit (tag=scl names='LATA' width='16')
    stimulus (scl=rwb)

sfr (key=ODCA addr=0x6c0 size=2 access='rw rw u u u rw rw u rw rw rw rw rw rw rw rw')
    reset (por='00---00-00000000' mclr='00---00-00000000')
    bit (names='ODCA15 ODCA14 - - - ODCA10 ODCA9 - ODCA7 ODCA6 ODCA5 ODCA4 ODCA3 ODCA2 ODCA1 ODCA0')
    bit (tag=scl names='ODCA' width='16')
    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=ODCB addr=0x6c6 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='ODCB15 ODCB14 ODCB13 ODCB12 ODCB11 ODCB10 ODCB9 ODCB8 ODCB7 ODCB6 ODCB5 ODCB4 ODCB3 ODCB2 ODCB1 ODCB0')
    bit (tag=scl names='ODCB' width='16')
    stimulus (scl=rwb)

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

sfr (key=TRISC addr=0x2cc size=2 access='rw rw rw rw u u u u u u u rw rw rw rw u')
    reset (por='1111-------1111-' mclr='1111-------1111-')
    bit (names='TRISC15 TRISC14 TRISC13 TRISC12 - - - - - - - TRISC4 TRISC3 TRISC2 TRISC1 -')
    bit (tag=scl names='TRISC' width='16')
    stimulus (scl=rwb)
sfr (key=PORTC addr=0x2ce size=2 access='rw rw rw rw u u u u u u u rw rw rw rw u')
    reset (por='xxxx-------xxxx-' mclr='uuuu-------uuuu-')
    bit (names='RC15 RC14 RC13 RC12 - - - - - - - RC4 RC3 RC2 RC1 -')
    bit (tag=scl names='RC' width='16')
    stimulus (scl=rwb)
sfr (key=LATC addr=0x2d0 size=2 access='rw rw rw rw u u u u u u u rw rw rw rw u')
    reset (por='0000-------0000-' mclr='uuuu-------uuuu-')
    bit (names='LATC15 LATC14 LATC13 LATC12 - - - - - - - LATC4 LATC3 LATC2 LATC1 -')
    bit (tag=scl names='LATC' width='16')
    stimulus (scl=rwb)
sfr (key=ODCC addr=0x6cc size=2 access='rw rw rw rw u u u u u u u rw rw rw rw u')
    reset (por='0000-------0000-' mclr='0000-------0000-')
    bit (names='ODCC15 ODCC14 ODCC13 ODCC12 - - - - - - - ODCC4 ODCC3 ODCC2 ODCC1 -')
    bit (tag=scl names='ODCC' width='16')
    stimulus (scl=rwb)


# PORTD Registers ####################################################

sfr (key=TRISD addr=0x2d2 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='TRISD15 TRISD14 TRISD13 TRISD12 TRISD11 TRISD10 TRISD9 TRISD8 TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0')
    bit (tag=scl names='TRISD' width='16')
    stimulus (scl=rwb)
sfr (key=PORTD addr=0x2d4 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='RD15 RD14 RD13 RD12 RD11 RD10 RD9 RD8 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0')
    bit (tag=scl names='RD' width='16')
    stimulus (scl=rwb)
sfr (key=LATD addr=0x2d6 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='LATD15 LATD14 LATD13 LATD12 LATD11 LATD10 LATD9 LATD8 LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0')
    bit (tag=scl names='LATD' width='16')
    stimulus (scl=rwb)
sfr (key=ODCD addr=0x6d2 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='ODCD15 ODCD14 ODCD13 ODCD12 ODCD11 ODCD10 ODCD9 ODCD8 ODCD7 ODCD6 ODCD5 ODCD4 ODCD3 ODCD2 ODCD1 ODCD0')
    bit (tag=scl names='ODCD' width='16')
    stimulus (scl=rwb)


# PORTE Registers ####################################################

sfr (key=TRISE addr=0x2d8 size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------1111111111' mclr='------1111111111')
    bit (names='- - - - - - TRISE9 TRISE8 TRISE7 TRISE6 TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0')
    bit (tag=scl names='TRISE' width='16')
    stimulus (scl=rwb)
sfr (key=PORTE addr=0x2da size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - RE9 RE8 RE7 RE6 RE5 RE4 RE3 RE2 RE1 RE0')
    bit (tag=scl names='RE' width='16')
    stimulus (scl=rwb)
sfr (key=LATE addr=0x2dc size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------0000000000' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - LATE9 LATE8 LATE7 LATE6 LATE5 LATE4 LATE3 LATE2 LATE1 LATE0')
    bit (tag=scl names='LATE' width='16')
    stimulus (scl=rwb)
sfr (key=ODCE addr=0x6d8 size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------0000000000' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ODCE9 ODCE8 ODCE7 ODCE6 ODCE5 ODCE4 ODCE3 ODCE2 ODCE1 ODCE0')
    bit (tag=scl names='ODCE' width='16')
    stimulus (scl=rwb)


# PORTF Registers ####################################################

sfr (key=TRISF addr=0x2de size=2 access='u u rw rw u u u rw rw rw rw rw rw rw rw rw')
    reset (por='--11---111111111' mclr='--11---111111111')
    bit (names='- - TRISF13 TRISF12 - - - TRISF8 TRISF7 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0')
    bit (tag=scl names='TRISF' width='16')
    stimulus (scl=rwb)
sfr (key=PORTF addr=0x2e0 size=2 access='u u rw rw u u u rw rw rw rw rw rw rw rw rw')
    reset (por='--xx---xxxxxxxxx' mclr='--uu---uuuuuuuuu')
    bit (names='- - RF13 RF12 - - - RF8 RF7 RF6 RF5 RF4 RF3 RF2 RF1 RF0')
    bit (tag=scl names='RF' width='16')
    stimulus (scl=rwb)
sfr (key=LATF addr=0x2e2 size=2 access='u u rw rw u u u rw rw rw rw rw rw rw rw rw')
    reset (por='--00---000000000' mclr='--uu---uuuuuuuuu')
    bit (names='- - LATF13 LATF12 - - - LATF8 LATF7 LATF6 LATF5 LATF4 LATF3 LATF2 LATF1 LATF0')
    bit (tag=scl names='LATF' width='16')
    stimulus (scl=rwb)
sfr (key=ODCF addr=0x6de size=2 access='u u rw rw u u u rw rw rw rw rw rw rw rw rw')
    reset (por='--00---000000000' mclr='--00---000000000')
    bit (names='- - ODCF13 ODCF12 - - - ODCF8 ODCF7 ODCF6 ODCF5 ODCF4 ODCF3 ODCF2 ODCF1 ODCF0')
    bit (tag=scl names='ODCF' width='16')
    stimulus (scl=rwb)


# PORTG Registers ####################################################

sfr (key=TRISG addr=0x2e4 size=2 access='rw rw rw rw u u rw rw rw rw u u rw rw rw rw')
    reset (por='1111--1111--1111' mclr='1111--1111--1111')
    bit (names='TRISG15 TRISG14 TRISG13 TRISG12 - - TRISG9 TRISG8 TRISG7 TRISG6 - - TRISG3 TRISG2 TRISG1 TRISG0')
    bit (tag=scl names='TRISG' width='16')
    stimulus (scl=rwb)
sfr (key=PORTG addr=0x2e6 size=2 access='rw rw rw rw u u rw rw rw rw u u rw rw rw rw')
    reset (por='xxxx--xxxx--xxxx' mclr='uuuu--uuuu--uuuu')
    bit (names='RG15 RG14 RG13 RG12 - - RG9 RG8 RG7 RG6 - - RG3 RG2 RG1 RG0')
    bit (tag=scl names='RG' width='16')
    stimulus (scl=rwb)
sfr (key=LATG addr=0x2e8 size=2 access='rw rw rw rw u u rw rw rw rw u u rw rw rw rw')
    reset (por='0000--0000--0000' mclr='uuuu--uuuu--uuuu')
    bit (names='LATG15 LATG14 LATG13 LATG12 - - LATG9 LATG8 LATG7 LATG6 - - LATG3 LATG2 LATG1 LATG0')
    bit (tag=scl names='LATG' width='16')
    stimulus (scl=rwb)
sfr (key=ODCG addr=0x6e4 size=2 access='rw rw rw rw u u rw rw rw rw u u rw rw rw rw')
    reset (por='0000--0000--0000' mclr='0000--0000--0000')
    bit (names='ODCG15 ODCG14 ODCG13 ODCG12 - - ODCG9 ODCG8 ODCG7 ODCG6 - - ODCG3 ODCG2 ODCG1 ODCG0')
    bit (tag=scl names='ODCG' width='16')
    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='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PCFG' width='16')
    stimulus (scl=rwb)

UnusedRegs (0x32e-0x32f)

sfr (key=AD1CSSL addr=0x330 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='CSSL' width='16')
    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 (0x6e6-0x6ff)
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=NVMCON 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=NVMKEY 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=0x157fc 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=0x157fe 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 RB3), CNx, or INTx.
# nextperiph=NONE when nextpin=NONE
#--------------------------------------------------------------------------------


#--------------------------------------------------------------------------------
# 				PORTA
#--------------------------------------------------------------------------------

peripheral (key=PORTA sfrs='TRISA LATA PORTA INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RA0 dir=inout)
    iopin (key=RA1 dir=inout)
    iopin (key=RA2 dir=inout)
    iopin (key=RA3 dir=inout)
    iopin (key=RA4 dir=inout)
    iopin (key=RA5 dir=inout)
    iopin (key=RA6 dir=inout)
    iopin (key=RA7 dir=inout)
    iopin (key=RA9 dir=inout)
    iopin (key=RA10 dir=inout)
    iopin (key=RA14 dir=inout)
        extint (key=INT3 enreg=IEC3 enmask=0x0020 flgreg=IFS3 flgmask=0x0020 prireg=IPC13 primask=0x0070)
    iopin (key=RA15 dir=inout)
        extint (key=INT4 enreg=IEC3 enmask=0x0040 flgreg=IFS3 flgmask=0x0040 prireg=IPC13 primask=0x0700)


#--------------------------------------------------------------------------------
# 				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=CN2 enreg=CNEN1 enmask=0x0004)
    iopin (key=RB1 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=RB2 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=C2INN notify=CM)
    iopin (key=RB3 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=C2INP notify=CM)
    iopin (key=RB4 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=C1INN notify=CM)
    iopin (key=RB5 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=C1INP notify=CM)
    iopin (key=RB6 dir=inout)
        cnpin (key=OCFA notify=OC1)
        cnpin (key=OCFA notify=OC2)
        cnpin (key=OCFA notify=OC3)
        cnpin (key=OCFA notify=OC4)
    iopin (key=RB7 dir=inout)
    iopin (key=RB8 dir=inout)
    #C1OUT
    iopin (key=RB9 dir=inout)
    #C2OUT
    iopin (key=RB10 dir=inout)
    iopin (key=RB11 dir=inout)
    iopin (key=RB12 dir=inout)
    iopin (key=RB13 dir=inout)
    iopin (key=RB14 dir=inout)
    iopin (key=RB15 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=OCFB notify=OC5)


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

peripheral (key=PORTC sfrs='TRISC LATC PORTC INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RC1 dir=inout)
    iopin (key=RC2 dir=inout)
    iopin (key=RC3 dir=inout)
    iopin (key=RC4 dir=inout)
    iopin (key=RC12 dir=inout)
    iopin (key=RC13 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN1 enreg=CNEN1 enmask=0x0002)
    iopin (key=RC14 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=RC15 dir=inout)

#--------------------------------------------------------------------------------
# 				PORTD
#--------------------------------------------------------------------------------

peripheral (key=PORTD sfrs='TRISD LATD PORTD INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RD0 dir=inout)
    iopin (key=RD1 dir=inout)
    iopin (key=RD2 dir=inout)
    iopin (key=RD3 dir=inout)
    iopin (key=RD4 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN13 enreg=CNEN1 enmask=0x2000)
    iopin (key=RD5 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN14 enreg=CNEN1 enmask=0x4000)
    iopin (key=RD6 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN15 enreg=CNEN1 enmask=0x6000)
    iopin (key=RD7 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN16 enreg=CNEN1 enmask=0x8000)
    iopin (key=RD8 dir=inout)
        cnpin (key=IC1 notify=IC1)
    iopin (key=RD9 dir=inout)
        cnpin (key=IC2 notify=IC2)
    iopin (key=RD10 dir=inout)
        cnpin (key=IC3 notify=IC3)
    iopin (key=RD11 dir=inout)
        cnpin (key=IC4 notify=IC4)
    iopin (key=RD12 dir=inout)
        cnpin (key=IC5 notify=IC5)
    iopin (key=RD13 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=RD14 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=RD15 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN21 enreg=CNEN2 enmask=0x0020)

#--------------------------------------------------------------------------------
# 				PORTE
#--------------------------------------------------------------------------------

peripheral (key=PORTE sfrs='TRISE LATE PORTE INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RE0 dir=inout)
    iopin (key=RE1 dir=inout)
    iopin (key=RE2 dir=inout)
    iopin (key=RE3 dir=inout)
    iopin (key=RE4 dir=inout)
    iopin (key=RE5 dir=inout)
    iopin (key=RE6 dir=inout)
    iopin (key=RE7 dir=inout)
    iopin (key=RE8 dir=inout)
        extint (key=INT1 enreg=IEC1 enmask=0x0010 flgreg=IFS1 flgmask=0x0010 prireg=IPC5 primask=0x0007)
    iopin (key=RE9 dir=inout)
        extint (key=INT2 enreg=IEC1 enmask=0x2000 flgreg=IFS1 flgmask=0x2000 prireg=IPC7 primask=0x0070)

#--------------------------------------------------------------------------------
# 				PORTF
#--------------------------------------------------------------------------------

peripheral (key=PORTF sfrs='TRISF LATF PORTF INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RF0 dir=inout)
    iopin (key=RF1 dir=inout)
    iopin (key=RF2 dir=inout)
    iopin (key=RF3 dir=inout)
    iopin (key=RF4 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN17 enreg=CNEN2 enmask=0x0002)
    iopin (key=RF5 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN18 enreg=CNEN2 enmask=0x0004)
    iopin (key=RF6 dir=inout)
        extint (key=INT0 enreg=IEC0 enmask=0x0001 flgreg=IFS0 flgmask=0x0001 prireg=IPC0 primask=0x0007)
    iopin (key=RF7 dir=inout)
    iopin (key=RF8 dir=inout)
    iopin (key=RF12 dir=inout)
    iopin (key=RF13 dir=inout)

#--------------------------------------------------------------------------------
# 				PORTG
#--------------------------------------------------------------------------------

peripheral (key=PORTG sfrs='TRISG LATG PORTG INTCON2 CNEN1 CNEN2' type=port)
    iopin (key=RG0 dir=inout)
    iopin (key=RG1 dir=inout)
    iopin (key=RG2 dir=inout)
    iopin (key=RG3 dir=inout)
    iopin (key=RG6 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN8 enreg=CNEN1 enmask=0x0100)
    iopin (key=RG7 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN9 enreg=CNEN1 enmask=0x0200)
    iopin (key=RG8 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN10 enreg=CNEN1 enmask=0x0400)
    iopin (key=RG9 dir=inout)
        cnint (key=CNIRQ enreg=IEC1 enmask=0x0008 flgreg=IFS1 flgmask=0x0008 prireg=IPC4 primask=0x7000)
        cn (key=CN11 enreg=CNEN1 enmask=0x0800)
    iopin (key=RG12 dir=inout)
    iopin (key=RG13 dir=inout)
    iopin (key=RG14 dir=inout)
    iopin (key=RG15 dir=inout)


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

peripheral (key=CM sfrs='CMCON')
    pinfunc (key=C1INN port=RB4 dir=in)
    pinfunc (key=C1INP port=RB5 dir=in)
    pinfunc (key=C2INN port=RB2 dir=in)
    pinfunc (key=C2INP port=RB3 dir=in)
    pinfunc (key=C1OUT port=RB8 dir=out)
    pinfunc (key=C2OUT port=RB9 dir=out)
    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=RC14 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')
    pinfunc (key=T2CK port=RC1 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=TMR2INT enreg=IEC0 enmask=0x0080 flgreg=IFS0 flgmask=0x0080 prireg=IPC1 primask=0x7000)

peripheral (key=TMR3 sfrs='TMR3 TMR3HLD PR3 T3CON')
    pinfunc (key=T3CK port=RC2 dir=in nextperiph=NONE nextpin=NONE)
    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')
    pinfunc (key=T4CK port=RC3 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=TMR4INT enreg=IEC1 enmask=0x0800 flgreg=IFS1 flgmask=0x0800 prireg=IPC6 primask=0x7000)

peripheral (key=TMR5 sfrs='TMR5 TMR5HLD PR5 T5CON')
    pinfunc (key=T5CK port=RC4 dir=in nextperiph=NONE nextpin=NONE)
    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 ADC1BUFF')
    pinfunc (key=AN0 port=RB0 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN1 port=RB1 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN2 port=RB2 dir=in nextperiph=SPI1 nextpin=SS1)
    pinfunc (key=AN3 port=RB3 dir=in nextperiph=QEI nextpin=INDX)
    pinfunc (key=AN4 port=RB4 dir=in nextperiph=QEI nextpin=QEA)
    pinfunc (key=AN5 port=RB5 dir=in nextperiph=QEI nextpin=QEB)
    pinfunc (key=AN6 port=RB6 dir=in nextperiph=OC1_4 nextpin=OCFA)
    pinfunc (key=AN7 port=RB7 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN8 port=RB8 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN9 port=RB9 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN10 port=RB10 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN11 port=RB11 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN12 port=RB12 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN13 port=RB13 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN14 port=RB14 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN15 port=RB15 dir=in nextperiph=OC5_8 nextpin=OCFB)
    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=RD8 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=RD9 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=RD10 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=RD11 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=RD12 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=OC1 port=RD0 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OCFA port=RB6 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=OC2 port=RD1 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OCFA port=RB6 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=OC3 port=RD2 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OCFA port=RB6 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=OC4 port=RD3 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OCFA port=RB6 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=OC5 port=RD4 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OCFB port=RB15 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=RF2 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=U1TX port=RF3 dir=out 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=RF4 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=U2TX port=RF5 dir=out 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=RF12 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=U2RTS port=RF13 dir=out nextperiph=NONE nextpin=NONE)
    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=RF6 dir=inout nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDI1 port=RF7 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDO1 port=RF8 dir=out nextperiph=NONE nextpin=NONE)
peripheral (key=SPI2) # sfrs='SPI2STAT SPI2CON SPI2BUF')
    pinfunc (key=SCK2 port=RG6 dir=inout nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDI2 port=RG7 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=SDO2 port=RG8 dir=out nextperiph=NONE nextpin=NONE)

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

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

#--------------------------------------------------------------------------------
# 				OSC
#--------------------------------------------------------------------------------
peripheral (key=OSC sfrs='OSCCON')
    pinfunc (key=OSC1 port=RC12 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OSC2 port=RC15 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=SOSC1 port=RC14 dir=out nextperiph=TMR1 nextpin=T1CK)
    pinfunc (key=SOSC2 port=RC13 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=CLKO port=RC15 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=CLKI port=RC12 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 NVMCON NVMKEY')
