+ {
+ {"p18f2321", "18f2321", "pic18f2321", "f2321"}, // also: 2221, 4221, 4321
+ 0, /* always 0 */
+ 0x200, /* RAM in bytes */
+ 0x80, /* access bank split */
+ 0, /* always 0 */
+ { 0xf80, 0xfff }, /* range of SFR's */
+ {
+ /* configuration words */
+ 0x300001, /* first address */
+ 0x30000d, /* last address */
+ { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
+ { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
+ { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
+ { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
+ { 0x40, 0, 0xff } /* d */ }
+ },
+ /* IDLOCs --- always 0 */
+ { 0x200000, 0x200007,
+ { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
+ { 0, 0 }, { 0, 0 }, { 0, 0 } }
+ }
+ },
+ {
+ {"p18f2331", "18f2331", "pic18f2331", "f2331"}, // also: 18f[24][34]31
+ 0, /* always 0 */
+ 0x300, /* RAM in bytes */
+ 0x60, /* access bank split */
+ 0, /* always 0 */
+ { 0xf60, 0xfff }, /* range of SFR's */
+ {
+ /* configuration words */
+ 0x300001, /* first address */
+ 0x30000d, /* last address */
+ { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
+ { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
+ { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
+ { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
+ { 0x40, 0, 0xff } /* d */ }
+ },
+ /* IDLOCs --- always 0 */
+ { 0x200000, 0x200007,
+ { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
+ { 0, 0 }, { 0, 0 }, { 0, 0 } }
+ }
+ },
+ {
+ {"p18f2431", "18f2431", "pic18f2431", "f2431"}, // also: 18f[24][34]31
+ 0, /* always 0 */
+ 0x300, /* RAM in bytes */
+ 0x60, /* access bank split */
+ 0, /* always 0 */
+ { 0xf60, 0xfff }, /* range of SFR's */
+ {
+ /* configuration words */
+ 0x300001, /* first address */
+ 0x30000d, /* last address */
+ { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
+ { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
+ { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
+ { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
+ { 0x40, 0, 0xff } /* d */ }
+ },
+ /* IDLOCs --- always 0 */
+ { 0x200000, 0x200007,
+ { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
+ { 0, 0 }, { 0, 0 }, { 0, 0 } }
+ }
+ },