1 /* GNU PIC processor definitions
2 Copyright (C) 2001, 2002, 2003, 2004, 2005
3 Craig Franklin
4
5 Copyright (C) 2014-2016 Molnar Karoly
6
7 This file is part of gputils.
8
9 gputils is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 gputils is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with gputils; see the file COPYING. If not, write to
21 the Free Software Foundation, 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. */
23
24 #include <config.h>
25 #include <stdlib.h>
26 #ifdef HAVE_SYS_IOCTL_H
27 # include <sys/ioctl.h> /* ioctl(TIOCGWINSZ) with GNU and BSD */
28 #endif
29 #ifdef HAVE_TERMIOS_H
30 # include <termios.h> /* ioctl(TIOCGWINSZ) with Solaris */
31 #endif
32 #include "stdhdr.h"
33 #include "libgputils.h"
34
35 /* XXXPRO: Need to add a line here for any extra processors. Please
36 keep this list sorted primarily by number, secondarily sorting
37 alphabetically. */
38
39 /* class defined_as names[3] coff_type common_ram_addrs[2] maxrom config_addrs[2] script
40 | | | | num_pages | common_ram_max | prog_mem_size | eeprom_addrs[2] | pic16e_flags
41 | | | | | num_banks | | linear_ram_addrs[2] | | badrom[MAX_BADROM] | | idlocs_mask | |
42 | | | | | | bank_bits| | | maxram | | | idlocs_addrs[2] | | | header | |
43 | | | | | | | | | | | | | | | | | | | | |
44 V V V V V V V V V V V V V V V V V V V V V */
45 static struct px pics[] = {
46 { PROC_CLASS_PIC12 , "__10F200" , { "pic10f200" , "p10f200" , "10f200" }, 0xF200, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0000FF, 0x000100, { -1, -1 }, { 0x000100, 0x000103 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p10f200.inc" , "10f200_g.lkr" , 0 },
47 { PROC_CLASS_PIC12 , "__10F202" , { "pic10f202" , "p10f202" , "10f202" }, 0xF202, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p10f202.inc" , "10f202_g.lkr" , 0 },
48 { PROC_CLASS_PIC12 , "__10F204" , { "pic10f204" , "p10f204" , "10f204" }, 0xF204, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0000FF, 0x000100, { -1, -1 }, { 0x000100, 0x000103 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p10f204.inc" , "10f204_g.lkr" , 0 },
49 { PROC_CLASS_PIC12 , "__10F206" , { "pic10f206" , "p10f206" , "10f206" }, 0xF206, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p10f206.inc" , "10f206_g.lkr" , 0 },
50 { PROC_CLASS_PIC12 , "__10F220" , { "pic10f220" , "p10f220" , "10f220" }, 0xF220, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0000FF, 0x000100, { -1, -1 }, { 0x000100, 0x000103 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p10f220.inc" , "10f220_g.lkr" , 0 },
51 { PROC_CLASS_PIC12 , "__10F222" , { "pic10f222" , "p10f222" , "10f222" }, 0xF222, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p10f222.inc" , "10f222_g.lkr" , 0 },
52 { PROC_CLASS_PIC14 , "__10F320" , { "pic10f320" , "p10f320" , "10f320" }, 0xF320, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x007F, 0x0000FF, 0x000100, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p10f320.inc" , "10f320_g.lkr" , 0 },
53 { PROC_CLASS_PIC14 , "__10F322" , { "pic10f322" , "p10f322" , "10f322" }, 0xF322, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x007F, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p10f322.inc" , "10f322_g.lkr" , 0 },
54 { PROC_CLASS_PIC14 , "__10LF320" , { "pic10lf320" , "p10lf320" , "10lf320" }, 0xA320, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x007F, 0x0000FF, 0x000100, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p10lf320.inc" , "10lf320_g.lkr" , 0 },
55 { PROC_CLASS_PIC14 , "__10LF322" , { "pic10lf322" , "p10lf322" , "10lf322" }, 0xA322, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x007F, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p10lf322.inc" , "10lf322_g.lkr" , 0 },
56 { PROC_CLASS_PIC12 , "__12C508" , { "pic12c508" , "p12c508" , "12c508" }, 0x2508, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12c508.inc" , "12c508_g.lkr" , 0 },
57 { PROC_CLASS_PIC12 , "__12C508A" , { "pic12c508a" , "p12c508a" , "12c508a" }, 0x508A, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12c508a.inc" , "12c508a_g.lkr" , 0 },
58 { PROC_CLASS_PIC12 , "__12C509" , { "pic12c509" , "p12c509" , "12c509" }, 0x2509, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12c509.inc" , "12c509_g.lkr" , 0 },
59 { PROC_CLASS_PIC12 , "__12C509A" , { "pic12c509a" , "p12c509a" , "12c509a" }, 0x509A, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12c509a.inc" , "12c509a_g.lkr" , 0 },
60 { PROC_CLASS_PIC14 , "__12C671" , { "pic12c671" , "p12c671" , "12c671" }, 0x2671, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12c671.inc" , "12c671_g.lkr" , 0 },
61 { PROC_CLASS_PIC14 , "__12C672" , { "pic12c672" , "p12c672" , "12c672" }, 0x2672, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12c672.inc" , "12c672_g.lkr" , 0 },
62 { PROC_CLASS_PIC12 , "__12CE518" , { "pic12ce518" , "p12ce518" , "12ce518" }, 0x2518, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12ce518.inc" , "12ce518_g.lkr" , 0 },
63 { PROC_CLASS_PIC12 , "__12CE519" , { "pic12ce519" , "p12ce519" , "12ce519" }, 0x2519, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12ce519.inc" , "12ce519_g.lkr" , 0 },
64 { PROC_CLASS_PIC14 , "__12CE673" , { "pic12ce673" , "p12ce673" , "12ce673" }, 0x2673, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12ce673.inc" , "12ce673_g.lkr" , 0 },
65 { PROC_CLASS_PIC14 , "__12CE674" , { "pic12ce674" , "p12ce674" , "12ce674" }, 0x2674, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12ce674.inc" , "12ce674_g.lkr" , 0 },
66 { PROC_CLASS_PIC12 , "__12CR509A" , { "pic12cr509a" , "p12cr509a" , "12cr509a" }, 0xD09A, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12cr509a.inc" , "12cr509a_g.lkr" , 0 },
67 { PROC_CLASS_PIC12 , "__12F508" , { "pic12f508" , "p12f508" , "12f508" }, 0xF508, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12f508.inc" , "12f508_g.lkr" , 0 },
68 { PROC_CLASS_PIC12 , "__12F509" , { "pic12f509" , "p12f509" , "12f509" }, 0xF509, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12f509.inc" , "12f509_g.lkr" , 0 },
69 { PROC_CLASS_PIC12 , "__12F510" , { "pic12f510" , "p12f510" , "12f510" }, 0xF510, 2, 2, 0x0020, { 0x0A, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p12f510.inc" , "12f510_g.lkr" , 0 },
70 { PROC_CLASS_PIC12 , "__12F519" , { "pic12f519" , "p12f519" , "12f519" }, 0xF519, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000440, 0x000443 }, { 0x000FFF, 0x000FFF }, { 0x000400, 0x00043F }, 0x0FF0, "p12f519.inc" , "12f519_g.lkr" , 0 },
71 { PROC_CLASS_PIC12 , "__12F520" , { "pic12f520" , "p12f520" , "12f520" }, 0xF520, 3, 8, 0x00E0, { 0x07, 0x0F }, -1, { -1, -1 }, 0x00FF, 0x0005FF, 0x000600, { -1, -1 }, { 0x000640, 0x000643 }, { 0x000FFF, 0x000FFF }, { 0x000600, 0x00063F }, 0x0FF0, "p12f520.inc" , "12f520_g.lkr" , 0 },
72 { PROC_CLASS_PIC12E , "__12F529T39A" , { "pic12f529t39a" , "p12f529t39a" , "12f529t39a" }, 0xE529, 3, 8, 0x00E0, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x00FF, 0x0005FF, 0x000600, { -1, -1 }, { 0x000640, 0x000643 }, { 0x000FFF, 0x000FFF }, { 0x000600, 0x00063F }, 0x0FF0, "p12f529t39a.inc" , "12f529t39a_g.lkr" , 0 },
73 { PROC_CLASS_PIC12E , "__12F529T48A" , { "pic12f529t48a" , "p12f529t48a" , "12f529t48a" }, 0xD529, 3, 8, 0x00E0, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x00FF, 0x0005FF, 0x000600, { -1, -1 }, { 0x000640, 0x000643 }, { 0x000FFF, 0x000FFF }, { 0x000600, 0x00063F }, 0x0FF0, "p12f529t48a.inc" , "12f529t48a_g.lkr" , 0 },
74 { PROC_CLASS_PIC14 , "__12F609" , { "pic12f609" , "p12f609" , "12f609" }, 0xF609, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12f609.inc" , "12f609_g.lkr" , 0 },
75 { PROC_CLASS_PIC14 , "__12F615" , { "pic12f615" , "p12f615" , "12f615" }, 0xF615, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12f615.inc" , "12f615_g.lkr" , 0 },
76 { PROC_CLASS_PIC14 , "__12F617" , { "pic12f617" , "p12f617" , "12f617" }, 0xF617, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12f617.inc" , "12f617_g.lkr" , 0 },
77 { PROC_CLASS_PIC14 , "__12F629" , { "pic12f629" , "p12f629" , "12f629" }, 0x2629, 1, 2, 0x0080, { 0x20, 0x5F }, -1, { -1, -1 }, 0x00DF, 0x00217F, 0x000400, { 0x0003FF, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p12f629.inc" , "12f629_g.lkr" , 0 },
78 { PROC_CLASS_PIC14 , "__12F635" , { "pic12f635" , "p12f635" , "12f635" }, 0xF635, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p12f635.inc" , "12f635_g.lkr" , 0 },
79 { PROC_CLASS_PIC14 , "__12F675" , { "pic12f675" , "p12f675" , "12f675" }, 0x2675, 1, 2, 0x0080, { 0x20, 0x5F }, -1, { -1, -1 }, 0x00DF, 0x00217F, 0x000400, { 0x0003FF, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p12f675.inc" , "12f675_g.lkr" , 0 },
80 { PROC_CLASS_PIC14 , "__12F683" , { "pic12f683" , "p12f683" , "12f683" }, 0xF683, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p12f683.inc" , "12f683_g.lkr" , 0 },
81 { PROC_CLASS_PIC14 , "__12F752" , { "pic12f752" , "p12f752" , "12f752" }, 0xF752, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12f752.inc" , "12f752_g.lkr" , 0 },
82 { PROC_CLASS_PIC14E , "__12F1501" , { "pic12f1501" , "p12f1501" , "12f1501" }, 0x1501, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x202F }, 0x0FFF, 0x0003FF, 0x000400, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p12f1501.inc" , "12f1501_g.lkr" , 0 },
83 { PROC_CLASS_PIC14E , "__12F1571" , { "pic12f1571" , "p12f1571" , "12f1571" }, 0x1571, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0003FF, 0x000400, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p12f1571.inc" , "12f1571_g.lkr" , 0 },
84 { PROC_CLASS_PIC14E , "__12F1572" , { "pic12f1572" , "p12f1572" , "12f1572" }, 0x1572, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p12f1572.inc" , "12f1572_g.lkr" , 0 },
85 { PROC_CLASS_PIC14E , "__12F1612" , { "pic12f1612" , "p12f1612" , "12f1612" }, 0x1612, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p12f1612.inc" , "12f1612_g.lkr" , 0 },
86 { PROC_CLASS_PIC14E , "__12F1822" , { "pic12f1822" , "p12f1822" , "12f1822" }, 0x1822, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p12f1822.inc" , "12f1822_g.lkr" , 0 },
87 { PROC_CLASS_PIC14E , "__12F1840" , { "pic12f1840" , "p12f1840" , "12f1840" }, 0x1840, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p12f1840.inc" , "12f1840_g.lkr" , 0 },
88 { PROC_CLASS_PIC14 , "__12HV609" , { "pic12hv609" , "p12hv609" , "12hv609" }, 0x6609, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12hv609.inc" , "12hv609_g.lkr" , 0 },
89 { PROC_CLASS_PIC14 , "__12HV615" , { "pic12hv615" , "p12hv615" , "12hv615" }, 0x6615, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12hv615.inc" , "12hv615_g.lkr" , 0 },
90 { PROC_CLASS_PIC14 , "__12HV752" , { "pic12hv752" , "p12hv752" , "12hv752" }, 0x6652, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p12hv752.inc" , "12hv752_g.lkr" , 0 },
91 { PROC_CLASS_PIC14E , "__12LF1501" , { "pic12lf1501" , "p12lf1501" , "12lf1501" }, 0xA501, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x202F }, 0x0FFF, 0x0003FF, 0x000400, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p12lf1501.inc" , "12lf1501_g.lkr" , 0 },
92 { PROC_CLASS_PIC14E , "__12LF1552" , { "pic12lf1552" , "p12lf1552" , "12lf1552" }, 0xA552, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p12lf1552.inc" , "12lf1552_g.lkr" , 0 },
93 { PROC_CLASS_PIC14E , "__12LF1571" , { "pic12lf1571" , "p12lf1571" , "12lf1571" }, 0xA571, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0003FF, 0x000400, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p12lf1571.inc" , "12lf1571_g.lkr" , 0 },
94 { PROC_CLASS_PIC14E , "__12LF1572" , { "pic12lf1572" , "p12lf1572" , "12lf1572" }, 0xA572, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p12lf1572.inc" , "12lf1572_g.lkr" , 0 },
95 { PROC_CLASS_PIC14E , "__12LF1612" , { "pic12lf1612" , "p12lf1612" , "12lf1612" }, 0xA612, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p12lf1612.inc" , "12lf1612_g.lkr" , 0 },
96 { PROC_CLASS_PIC14E , "__12LF1822" , { "pic12lf1822" , "p12lf1822" , "12lf1822" }, 0xA822, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p12lf1822.inc" , "12lf1822_g.lkr" , 0 },
97 { PROC_CLASS_PIC14E , "__12LF1840" , { "pic12lf1840" , "p12lf1840" , "12lf1840" }, 0xA840, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p12lf1840.inc" , "12lf1840_g.lkr" , 0 },
98 { PROC_CLASS_PIC14E , "__12LF1840T39A", { "pic12lf1840t39a", "p12lf1840t39a" , "12lf1840t39a" }, 0xC840, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p12lf1840t39a.inc", "12lf1840t39a_g.lkr", 0 },
99 { PROC_CLASS_PIC14E , "__12LF1840T48A", { "pic12lf1840t48a", "p12lf1840t48a" , "12lf1840t48a" }, 0xB840, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p12lf1840t48a.inc", "12lf1840t48a_g.lkr", 0 },
100 { PROC_CLASS_PIC12 , "__16C5X" , { "pic16c5x" , "p16c5x" , "16c5x" }, 0x658A, 4, 4, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { 0x000200, 0x000203 }, { -1, -1 }, { -1, -1 }, 0x0FF0, "p16c5x.inc" , NULL , 0 },
101 { PROC_CLASS_PIC12 , "__16C52" , { "pic16c52" , "p16c52" , "16c52" }, 0x6C52, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x00017F, 0x000180, { -1, -1 }, { 0x000180, 0x000183 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c5x.inc" , "16c52_g.lkr" , 0 },
102 { PROC_CLASS_PIC12 , "__16C54" , { "pic16c54" , "p16c54" , "16c54" }, 0x6C54, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c54.inc" , "16c54_g.lkr" , 0 },
103 { PROC_CLASS_PIC12 , "__16C54A" , { "pic16c54a" , "p16c54a" , "16c54a" }, 0x654A, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c54a.inc" , "16c54a_g.lkr" , 0 },
104 { PROC_CLASS_PIC12 , "__16C54B" , { "pic16c54b" , "p16c54b" , "16c54b" }, 0x654B, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c54a.inc" , "16c54b_g.lkr" , 0 },
105 { PROC_CLASS_PIC12 , "__16C54C" , { "pic16c54c" , "p16c54c" , "16c54c" }, 0x654C, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c54c.inc" , "16c54c_g.lkr" , 0 },
106 { PROC_CLASS_PIC12 , "__16C55" , { "pic16c55" , "p16c55" , "16c55" }, 0x6C55, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c55.inc" , "16c55_g.lkr" , 0 },
107 { PROC_CLASS_PIC12 , "__16C55A" , { "pic16c55a" , "p16c55a" , "16c55a" }, 0x655A, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c55a.inc" , "16c55a_g.lkr" , 0 },
108 { PROC_CLASS_PIC12 , "__16C56" , { "pic16c56" , "p16c56" , "16c56" }, 0x6C56, 2, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c56.inc" , "16c56_g.lkr" , 0 },
109 { PROC_CLASS_PIC12 , "__16C56A" , { "pic16c56a" , "p16c56a" , "16c56a" }, 0x656A, 2, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c56a.inc" , "16c56a_g.lkr" , 0 },
110 { PROC_CLASS_PIC12 , "__16C57" , { "pic16c57" , "p16c57" , "16c57" }, 0x6C57, 4, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c57.inc" , "16c57_g.lkr" , 0 },
111 { PROC_CLASS_PIC12 , "__16C57C" , { "pic16c57c" , "p16c57c" , "16c57c" }, 0x657C, 4, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c57c.inc" , "16c57c_g.lkr" , 0 },
112 { PROC_CLASS_PIC12 , "__16C58A" , { "pic16c58a" , "p16c58a" , "16c58a" }, 0x658A, 4, 4, 0x0060, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c58a.inc" , "16c58a_g.lkr" , 0 },
113 { PROC_CLASS_PIC12 , "__16C58B" , { "pic16c58b" , "p16c58b" , "16c58b" }, 0x658B, 4, 4, 0x0060, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c58b.inc" , "16c58b_g.lkr" , 0 },
114 { PROC_CLASS_PIC14 , "__16C61" , { "pic16c61" , "p16c61" , "16c61" }, 0x6C61, 1, 2, 0x0080, { 0x0C, 0x2F }, -1, { -1, -1 }, 0x00AF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c61.inc" , "16c61_g.lkr" , 0 },
115 { PROC_CLASS_PIC14 , "__16C62" , { "pic16c62" , "p16c62" , "16c62" }, 0x6C62, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c62.inc" , "16c62_g.lkr" , 0 },
116 { PROC_CLASS_PIC14 , "__16C62A" , { "pic16c62a" , "p16c62a" , "16c62a" }, 0x662A, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c62a.inc" , "16c62a_g.lkr" , 0 },
117 { PROC_CLASS_PIC14 , "__16C62B" , { "pic16c62b" , "p16c62b" , "16c62b" }, 0x662B, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c62b.inc" , "16c62b_g.lkr" , 0 },
118 { PROC_CLASS_PIC14 , "__16C63" , { "pic16c63" , "p16c63" , "16c63" }, 0x6C63, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c63.inc" , "16c63_g.lkr" , 0 },
119 { PROC_CLASS_PIC14 , "__16C63A" , { "pic16c63a" , "p16c63a" , "16c63a" }, 0x663A, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c63a.inc" , "16c63a_g.lkr" , 0 },
120 { PROC_CLASS_PIC14 , "__16C64" , { "pic16c64" , "p16c64" , "16c64" }, 0x6C64, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c64.inc" , "16c64_g.lkr" , 0 },
121 { PROC_CLASS_PIC14 , "__16C64A" , { "pic16c64a" , "p16c64a" , "16c64a" }, 0x664A, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c64a.inc" , "16c64a_g.lkr" , 0 },
122 { PROC_CLASS_PIC14 , "__16C65" , { "pic16c65" , "p16c65" , "16c65" }, 0x6C65, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c65.inc" , "16c65_g.lkr" , 0 },
123 { PROC_CLASS_PIC14 , "__16C65A" , { "pic16c65a" , "p16c65a" , "16c65a" }, 0x665A, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c65a.inc" , "16c65a_g.lkr" , 0 },
124 { PROC_CLASS_PIC14 , "__16C65B" , { "pic16c65b" , "p16c65b" , "16c65b" }, 0x665B, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c65b.inc" , "16c65b_g.lkr" , 0 },
125 { PROC_CLASS_PIC14 , "__16C66" , { "pic16c66" , "p16c66" , "16c66" }, 0x6C66, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c66.inc" , "16c66_g.lkr" , 0 },
126 { PROC_CLASS_PIC14 , "__16C67" , { "pic16c67" , "p16c67" , "16c67" }, 0x6C67, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c67.inc" , "16c67_g.lkr" , 0 },
127 { PROC_CLASS_PIC14 , "__16C71" , { "pic16c71" , "p16c71" , "16c71" }, 0x6C71, 1, 2, 0x0080, { 0x0C, 0x2F }, -1, { -1, -1 }, 0x00AF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c71.inc" , "16c71_g.lkr" , 0 },
128 { PROC_CLASS_PIC14 , "__16C72" , { "pic16c72" , "p16c72" , "16c72" }, 0x6C72, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c72.inc" , "16c72_g.lkr" , 0 },
129 { PROC_CLASS_PIC14 , "__16C72A" , { "pic16c72a" , "p16c72a" , "16c72a" }, 0x672A, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c72a.inc" , "16c72a_g.lkr" , 0 },
130 { PROC_CLASS_PIC14 , "__16C73" , { "pic16c73" , "p16c73" , "16c73" }, 0x6C73, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c73.inc" , "16c73_g.lkr" , 0 },
131 { PROC_CLASS_PIC14 , "__16C73A" , { "pic16c73a" , "p16c73a" , "16c73a" }, 0x673A, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c73a.inc" , "16c73a_g.lkr" , 0 },
132 { PROC_CLASS_PIC14 , "__16C73B" , { "pic16c73b" , "p16c73b" , "16c73b" }, 0x673B, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c73b.inc" , "16c73b_g.lkr" , 0 },
133 { PROC_CLASS_PIC14 , "__16C74" , { "pic16c74" , "p16c74" , "16c74" }, 0x6C74, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c74.inc" , "16c74_g.lkr" , 0 },
134 { PROC_CLASS_PIC14 , "__16C74A" , { "pic16c74a" , "p16c74a" , "16c74a" }, 0x674A, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c74a.inc" , "16c74a_g.lkr" , 0 },
135 { PROC_CLASS_PIC14 , "__16C74B" , { "pic16c74b" , "p16c74b" , "16c74b" }, 0x674B, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c74b.inc" , "16c74b_g.lkr" , 0 },
136 { PROC_CLASS_PIC14 , "__16C76" , { "pic16c76" , "p16c76" , "16c76" }, 0x6C76, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c76.inc" , "16c76_g.lkr" , 0 },
137 { PROC_CLASS_PIC14 , "__16C77" , { "pic16c77" , "p16c77" , "16c77" }, 0x6C77, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c77.inc" , "16c77_g.lkr" , 0 },
138 { PROC_CLASS_PIC14 , "__16C84" , { "pic16c84" , "p16c84" , "16c84" }, 0x6C84, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x008B, 0x00213F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16c84.inc" , "16c84_g.lkr" , 0 },
139 { PROC_CLASS_PIC14 , "__16C432" , { "pic16c432" , "p16c432" , "16c432" }, 0x6432, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c432.inc" , "16c432_g.lkr" , 0 },
140 { PROC_CLASS_PIC14 , "__16C433" , { "pic16c433" , "p16c433" , "16c433" }, 0x6433, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c433.inc" , "16c433_g.lkr" , 0 },
141 { PROC_CLASS_PIC12 , "__16C505" , { "pic16c505" , "p16c505" , "16c505" }, 0x2505, 2, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16c505.inc" , "16c505_g.lkr" , 0 },
142 { PROC_CLASS_PIC14 , "__16C554" , { "pic16c554" , "p16c554" , "16c554" }, 0x6554, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x009F, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c554.inc" , "16c554_g.lkr" , 0 },
143 { PROC_CLASS_PIC14 , "__16C557" , { "pic16c557" , "p16c557" , "16c557" }, 0x6557, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c557.inc" , "16c557_g.lkr" , 0 },
144 { PROC_CLASS_PIC14 , "__16C558" , { "pic16c558" , "p16c558" , "16c558" }, 0x6558, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c558.inc" , "16c558_g.lkr" , 0 },
145 { PROC_CLASS_PIC14 , "__16C620" , { "pic16c620" , "p16c620" , "16c620" }, 0x6620, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x009F, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c620.inc" , "16c620_g.lkr" , 0 },
146 { PROC_CLASS_PIC14 , "__16C620A" , { "pic16c620a" , "p16c620a" , "16c620a" }, 0x620A, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c620a.inc" , "16c620a_g.lkr" , 0 },
147 { PROC_CLASS_PIC14 , "__16C621" , { "pic16c621" , "p16c621" , "16c621" }, 0x6621, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x009F, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c621.inc" , "16c621_g.lkr" , 0 },
148 { PROC_CLASS_PIC14 , "__16C621A" , { "pic16c621a" , "p16c621a" , "16c621a" }, 0x621A, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c621a.inc" , "16c621a_g.lkr" , 0 },
149 { PROC_CLASS_PIC14 , "__16C622" , { "pic16c622" , "p16c622" , "16c622" }, 0x6622, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c622.inc" , "16c622_g.lkr" , 0 },
150 { PROC_CLASS_PIC14 , "__16C622A" , { "pic16c622a" , "p16c622a" , "16c622a" }, 0x622A, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c622a.inc" , "16c622a_g.lkr" , 0 },
151 { PROC_CLASS_PIC14 , "__16C642" , { "pic16c642" , "p16c642" , "16c642" }, 0x6642, 2, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c642.inc" , "16c642_g.lkr" , 0 },
152 { PROC_CLASS_PIC14 , "__16C662" , { "pic16c662" , "p16c662" , "16c662" }, 0x6662, 2, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c662.inc" , "16c662_g.lkr" , 0 },
153 { PROC_CLASS_PIC14 , "__16C710" , { "pic16c710" , "p16c710" , "16c710" }, 0x6710, 1, 2, 0x0080, { 0x0C, 0x2F }, -1, { -1, -1 }, 0x00AF, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c710.inc" , "16c710_g.lkr" , 0 },
154 { PROC_CLASS_PIC14 , "__16C711" , { "pic16c711" , "p16c711" , "16c711" }, 0x6711, 1, 2, 0x0080, { 0x0C, 0x4F }, -1, { -1, -1 }, 0x00CF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c711.inc" , "16c711_g.lkr" , 0 },
155 { PROC_CLASS_PIC14 , "__16C712" , { "pic16c712" , "p16c712" , "16c712" }, 0x6712, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c712.inc" , "16c712_g.lkr" , 0 },
156 { PROC_CLASS_PIC14 , "__16C715" , { "pic16c715" , "p16c715" , "16c715" }, 0x6715, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c715.inc" , "16c715_g.lkr" , 0 },
157 { PROC_CLASS_PIC14 , "__16C716" , { "pic16c716" , "p16c716" , "16c716" }, 0x6716, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c716.inc" , "16c716_g.lkr" , 0 },
158 { PROC_CLASS_PIC14 , "__16C717" , { "pic16c717" , "p16c717" , "16c717" }, 0x6717, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c717.inc" , "16c717_g.lkr" , 0 },
159 { PROC_CLASS_PIC14 , "__16C745" , { "pic16c745" , "p16c745" , "16c745" }, 0x6745, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c745.inc" , "16c745_g.lkr" , 0 },
160 { PROC_CLASS_PIC14 , "__16C765" , { "pic16c765" , "p16c765" , "16c765" }, 0x6765, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c765.inc" , "16c765_g.lkr" , 0 },
161 { PROC_CLASS_PIC14 , "__16C770" , { "pic16c770" , "p16c770" , "16c770" }, 0x6770, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c770.inc" , "16c770_g.lkr" , 0 },
162 { PROC_CLASS_PIC14 , "__16C771" , { "pic16c771" , "p16c771" , "16c771" }, 0x6771, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c771.inc" , "16c771_g.lkr" , 0 },
163 { PROC_CLASS_PIC14 , "__16C773" , { "pic16c773" , "p16c773" , "16c773" }, 0x6773, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c773.inc" , "16c773_g.lkr" , 0 },
164 { PROC_CLASS_PIC14 , "__16C774" , { "pic16c774" , "p16c774" , "16c774" }, 0x6774, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c774.inc" , "16c774_g.lkr" , 0 },
165 { PROC_CLASS_PIC14 , "__16C781" , { "pic16c781" , "p16c781" , "16c781" }, 0x6781, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c781.inc" , "16c781_g.lkr" , 0 },
166 { PROC_CLASS_PIC14 , "__16C782" , { "pic16c782" , "p16c782" , "16c782" }, 0x6782, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c782.inc" , "16c782_g.lkr" , 0 },
167 { PROC_CLASS_PIC14 , "__16C923" , { "pic16c923" , "p16c923" , "16c923" }, 0x6923, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c923.inc" , "16c923_g.lkr" , 0 },
168 { PROC_CLASS_PIC14 , "__16C924" , { "pic16c924" , "p16c924" , "16c924" }, 0x6924, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c924.inc" , "16c924_g.lkr" , 0 },
169 { PROC_CLASS_PIC14 , "__16C925" , { "pic16c925" , "p16c925" , "16c925" }, 0x6925, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c925.inc" , "16c925_g.lkr" , 0 },
170 { PROC_CLASS_PIC14 , "__16C926" , { "pic16c926" , "p16c926" , "16c926" }, 0x6926, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16c926.inc" , "16c926_g.lkr" , 0 },
171 { PROC_CLASS_PIC14 , "__16CE623" , { "pic16ce623" , "p16ce623" , "16ce623" }, 0x6623, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16ce623.inc" , "16ce623_g.lkr" , 0 },
172 { PROC_CLASS_PIC14 , "__16CE624" , { "pic16ce624" , "p16ce624" , "16ce624" }, 0x6624, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16ce624.inc" , "16ce624_g.lkr" , 0 },
173 { PROC_CLASS_PIC14 , "__16CE625" , { "pic16ce625" , "p16ce625" , "16ce625" }, 0x6625, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16ce625.inc" , "16ce625_g.lkr" , 0 },
174 { PROC_CLASS_PIC12 , "__16CR54" , { "pic16cr54" , "p16cr54" , "16cr54" }, 0xDC54, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr54.inc" , "16cr54_g.lkr" , 0 },
175 { PROC_CLASS_PIC12 , "__16CR54A" , { "pic16cr54a" , "p16cr54a" , "16cr54a" }, 0xD54A, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr54a.inc" , "16cr54a_g.lkr" , 0 },
176 { PROC_CLASS_PIC12 , "__16CR54B" , { "pic16cr54b" , "p16cr54b" , "16cr54b" }, 0xD54B, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr54a.inc" , "16cr54b_g.lkr" , 0 },
177 { PROC_CLASS_PIC12 , "__16CR54C" , { "pic16cr54c" , "p16cr54c" , "16cr54c" }, 0xD54C, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr54c.inc" , "16cr54c_g.lkr" , 0 },
178 { PROC_CLASS_PIC12 , "__16CR56A" , { "pic16cr56a" , "p16cr56a" , "16cr56a" }, 0xD56A, 2, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr56a.inc" , "16cr56a_g.lkr" , 0 },
179 { PROC_CLASS_PIC12 , "__16CR57A" , { "pic16cr57a" , "p16cr57a" , "16cr57a" }, 0xD57A, 4, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr57a.inc" , "16cr57a_g.lkr" , 0 },
180 { PROC_CLASS_PIC12 , "__16CR57B" , { "pic16cr57b" , "p16cr57b" , "16cr57b" }, 0xD57B, 4, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr57b.inc" , "16cr57b_g.lkr" , 0 },
181 { PROC_CLASS_PIC12 , "__16CR57C" , { "pic16cr57c" , "p16cr57c" , "16cr57c" }, 0xD57C, 4, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr57c.inc" , "16cr57c_g.lkr" , 0 },
182 { PROC_CLASS_PIC12 , "__16CR58A" , { "pic16cr58a" , "p16cr58a" , "16cr58a" }, 0xD58A, 4, 4, 0x0060, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr58a.inc" , "16cr58a_g.lkr" , 0 },
183 { PROC_CLASS_PIC12 , "__16CR58B" , { "pic16cr58b" , "p16cr58b" , "16cr58b" }, 0xD58B, 4, 4, 0x0060, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16cr58b.inc" , "16cr58b_g.lkr" , 0 },
184 { PROC_CLASS_PIC14 , "__16CR62" , { "pic16cr62" , "p16cr62" , "16cr62" }, 0xDC62, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16cr62.inc" , "16cr62_g.lkr" , 0 },
185 { PROC_CLASS_PIC14 , "__16CR63" , { "pic16cr63" , "p16cr63" , "16cr63" }, 0x6D63, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16cr63.inc" , "16cr63_g.lkr" , 0 },
186 { PROC_CLASS_PIC14 , "__16CR64" , { "pic16cr64" , "p16cr64" , "16cr64" }, 0xDC64, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16cr64.inc" , "16cr64_g.lkr" , 0 },
187 { PROC_CLASS_PIC14 , "__16CR65" , { "pic16cr65" , "p16cr65" , "16cr65" }, 0x6D65, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16cr65.inc" , "16cr65_g.lkr" , 0 },
188 { PROC_CLASS_PIC14 , "__16CR72" , { "pic16cr72" , "p16cr72" , "16cr72" }, 0x6D72, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00BF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16cr72.inc" , "16cr72_g.lkr" , 0 },
189 { PROC_CLASS_PIC14 , "__16CR83" , { "pic16cr83" , "p16cr83" , "16cr83" }, 0xDC83, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x008B, 0x00213F, 0x000200, { 0x000200, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16cr83.inc" , "16cr83_g.lkr" , 0 },
190 { PROC_CLASS_PIC14 , "__16CR84" , { "pic16cr84" , "p16cr84" , "16cr84" }, 0xDC84, 1, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x008B, 0x00213F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16cr84.inc" , "16cr84_g.lkr" , 0 },
191 { PROC_CLASS_PIC14 , "__16CR620A" , { "pic16cr620a" , "p16cr620a" , "16cr620a" }, 0xD20A, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0001FF, 0x000200, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16cr620a.inc" , "16cr620a_g.lkr" , 0 },
192 { PROC_CLASS_PIC14 , "__16CXX" , { "pic16cxx" , "p16cxx" , "16cxx" }, 0x6C77, 4, 4, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { 0x002000, 0x002003 }, { -1, -1 }, { -1, -1 }, 0x3F80, NULL , NULL , 0 },
193 { PROC_CLASS_PIC12 , "__16F54" , { "pic16f54" , "p16f54" , "16f54" }, 0x6F54, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16f54.inc" , "16f54_g.lkr" , 0 },
194 { PROC_CLASS_PIC12 , "__16F57" , { "pic16f57" , "p16f57" , "16f57" }, 0x6F57, 4, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16f57.inc" , "16f57_g.lkr" , 0 },
195 { PROC_CLASS_PIC12 , "__16F59" , { "pic16f59" , "p16f59" , "16f59" }, 0x6F59, 4, 8, 0x00E0, { 0x0A, 0x0F }, 0x00F, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16f59.inc" , "16f59_g.lkr" , 0 },
196 { PROC_CLASS_PIC14 , "__16F72" , { "pic16f72" , "p16f72" , "16f72" }, 0x672F, 1, 4, 0x0180, { 0x40, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f72.inc" , "16f72_g.lkr" , 0 },
197 { PROC_CLASS_PIC14 , "__16F73" , { "pic16f73" , "p16f73" , "16f73" }, 0x673F, 2, 4, 0x0180, { -1, -1 }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f73.inc" , "16f73_g.lkr" , 0 },
198 { PROC_CLASS_PIC14 , "__16F74" , { "pic16f74" , "p16f74" , "16f74" }, 0x674F, 2, 4, 0x0180, { -1, -1 }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f74.inc" , "16f74_g.lkr" , 0 },
199 { PROC_CLASS_PIC14 , "__16F76" , { "pic16f76" , "p16f76" , "16f76" }, 0x676F, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f76.inc" , "16f76_g.lkr" , 0 },
200 { PROC_CLASS_PIC14 , "__16F77" , { "pic16f77" , "p16f77" , "16f77" }, 0x677F, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f77.inc" , "16f77_g.lkr" , 0 },
201 { PROC_CLASS_PIC14 , "__16F83" , { "pic16f83" , "p16f83" , "16f83" }, 0x6C83, 1, 2, 0x0080, { 0x0C, 0x2F }, -1, { -1, -1 }, 0x00AF, 0x00213F, 0x000200, { 0x000200, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16f83.inc" , "16f83_g.lkr" , 0 },
202 { PROC_CLASS_PIC14 , "__16F84" , { "pic16f84" , "p16f84" , "16f84" }, 0x684A, 1, 2, 0x0080, { 0x0C, 0x4F }, -1, { -1, -1 }, 0x00CF, 0x00213F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16f84.inc" , "16f84_g.lkr" , 0 },
203 { PROC_CLASS_PIC14 , "__16F84A" , { "pic16f84a" , "p16f84a" , "16f84a" }, 0x6F84, 1, 2, 0x0080, { 0x0C, 0x4F }, -1, { -1, -1 }, 0x00CF, 0x00213F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16f84a.inc" , "16f84a_g.lkr" , 0 },
204 { PROC_CLASS_PIC14 , "__16F87" , { "pic16f87" , "p16f87" , "16f87" }, 0x687F, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f87.inc" , "16f87_g.lkr" , 0 },
205 { PROC_CLASS_PIC14 , "__16F88" , { "pic16f88" , "p16f88" , "16f88" }, 0x688F, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f88.inc" , "16f88_g.lkr" , 0 },
206 { PROC_CLASS_PIC12 , "__16F505" , { "pic16f505" , "p16f505" , "16f505" }, 0xF505, 2, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16f505.inc" , "16f505_g.lkr" , 0 },
207 { PROC_CLASS_PIC12 , "__16F506" , { "pic16f506" , "p16f506" , "16f506" }, 0xF506, 2, 4, 0x0060, { 0x0D, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16f506.inc" , "16f506_g.lkr" , 0 },
208 { PROC_CLASS_PIC12 , "__16F526" , { "pic16f526" , "p16f526" , "16f526" }, 0xF526, 2, 4, 0x0060, { 0x0D, 0x0F }, -1, { -1, -1 }, 0x007F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000440, 0x000443 }, { 0x000FFF, 0x000FFF }, { 0x000400, 0x00043F }, 0x0FF0, "p16f526.inc" , "16f526_g.lkr" , 0 },
209 { PROC_CLASS_PIC12I , "__16F527" , { "pic16f527" , "p16f527" , "16f527" }, 0xF527, 2, 4, 0x0060, { 0x0C, 0x0F }, -1, { -1, -1 }, 0x007F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000440, 0x000443 }, { 0x000FFF, 0x000FFF }, { 0x000400, 0x00043F }, 0x0FF0, "p16f527.inc" , "16f527_g.lkr" , 0 },
210 { PROC_CLASS_PIC12I , "__16F570" , { "pic16f570" , "p16f570" , "16f570" }, 0xF570, 4, 8, 0x00E0, { 0x0C, 0x0F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x000840, 0x000843 }, { 0x000FFF, 0x000FFF }, { 0x000800, 0x00083F }, 0x0FF0, "p16f570.inc" , "16f570_g.lkr" , 0 },
211 { PROC_CLASS_PIC14 , "__16F610" , { "pic16f610" , "p16f610" , "16f610" }, 0xF610, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f610.inc" , "16f610_g.lkr" , 0 },
212 { PROC_CLASS_PIC14 , "__16F616" , { "pic16f616" , "p16f616" , "16f616" }, 0xF616, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f616.inc" , "16f616_g.lkr" , 0 },
213 { PROC_CLASS_PIC14 , "__16F627" , { "pic16f627" , "p16f627" , "16f627" }, 0x6627, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f627.inc" , "16f627_g.lkr" , 0 },
214 { PROC_CLASS_PIC14 , "__16F627A" , { "pic16f627a" , "p16f627a" , "16f627a" }, 0x627A, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f627a.inc" , "16f627a_g.lkr" , 0 },
215 { PROC_CLASS_PIC14 , "__16F628" , { "pic16f628" , "p16f628" , "16f628" }, 0x6628, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f628.inc" , "16f628_g.lkr" , 0 },
216 { PROC_CLASS_PIC14 , "__16F628A" , { "pic16f628a" , "p16f628a" , "16f628a" }, 0x628A, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f628a.inc" , "16f628a_g.lkr" , 0 },
217 { PROC_CLASS_PIC14 , "__16F630" , { "pic16f630" , "p16f630" , "16f630" }, 0x6630, 1, 2, 0x0080, { 0x20, 0x5F }, -1, { -1, -1 }, 0x00DF, 0x00217F, 0x000400, { 0x0003FF, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f630.inc" , "16f630_g.lkr" , 0 },
218 { PROC_CLASS_PIC14 , "__16F631" , { "pic16f631" , "p16f631" , "16f631" }, 0x6631, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f631.inc" , "16f631_g.lkr" , 0 },
219 { PROC_CLASS_PIC14 , "__16F636" , { "pic16f636" , "p16f636" , "16f636" }, 0xF636, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f636.inc" , "16f636_g.lkr" , 0 },
220 { PROC_CLASS_PIC14 , "__16F639" , { "pic16f639" , "p16f639" , "16f639" }, 0xF639, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f639.inc" , "16f639_g.lkr" , 0 },
221 { PROC_CLASS_PIC14 , "__16F648A" , { "pic16f648a" , "p16f648a" , "16f648a" }, 0x648A, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f648a.inc" , "16f648a_g.lkr" , 0 },
222 { PROC_CLASS_PIC14 , "__16F676" , { "pic16f676" , "p16f676" , "16f676" }, 0x6676, 1, 2, 0x0080, { 0x20, 0x5F }, -1, { -1, -1 }, 0x00DF, 0x00217F, 0x000400, { 0x0003FF, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f676.inc" , "16f676_g.lkr" , 0 },
223 { PROC_CLASS_PIC14 , "__16F677" , { "pic16f677" , "p16f677" , "16f677" }, 0x6677, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f677.inc" , "16f677_g.lkr" , 0 },
224 { PROC_CLASS_PIC14 , "__16F684" , { "pic16f684" , "p16f684" , "16f684" }, 0x6684, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f684.inc" , "16f684_g.lkr" , 0 },
225 { PROC_CLASS_PIC14 , "__16F685" , { "pic16f685" , "p16f685" , "16f685" }, 0x6685, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f685.inc" , "16f685_g.lkr" , 0 },
226 { PROC_CLASS_PIC14 , "__16F687" , { "pic16f687" , "p16f687" , "16f687" }, 0x6687, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f687.inc" , "16f687_g.lkr" , 0 },
227 { PROC_CLASS_PIC14 , "__16F688" , { "pic16f688" , "p16f688" , "16f688" }, 0x6688, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f688.inc" , "16f688_g.lkr" , 0 },
228 { PROC_CLASS_PIC14 , "__16F689" , { "pic16f689" , "p16f689" , "16f689" }, 0x6689, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f689.inc" , "16f689_g.lkr" , 0 },
229 { PROC_CLASS_PIC14 , "__16F690" , { "pic16f690" , "p16f690" , "16f690" }, 0x6690, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f690.inc" , "16f690_g.lkr" , 0 },
230 { PROC_CLASS_PIC14 , "__16F707" , { "pic16f707" , "p16f707" , "16f707" }, 0xF707, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f707.inc" , "16f707_g.lkr" , 0 },
231 { PROC_CLASS_PIC14 , "__16F716" , { "pic16f716" , "p16f716" , "16f716" }, 0xF716, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f716.inc" , "16f716_g.lkr" , 0 },
232 { PROC_CLASS_PIC14 , "__16F720" , { "pic16f720" , "p16f720" , "16f720" }, 0xF720, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f720.inc" , "16f720_g.lkr" , 0 },
233 { PROC_CLASS_PIC14 , "__16F721" , { "pic16f721" , "p16f721" , "16f721" }, 0xF721, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f721.inc" , "16f721_g.lkr" , 0 },
234 { PROC_CLASS_PIC14 , "__16F722" , { "pic16f722" , "p16f722" , "16f722" }, 0xF722, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f722.inc" , "16f722_g.lkr" , 0 },
235 { PROC_CLASS_PIC14 , "__16F722A" , { "pic16f722a" , "p16f722a" , "16f722a" }, 0xA722, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f722a.inc" , "16f722a_g.lkr" , 0 },
236 { PROC_CLASS_PIC14 , "__16F723" , { "pic16f723" , "p16f723" , "16f723" }, 0xF723, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f723.inc" , "16f723_g.lkr" , 0 },
237 { PROC_CLASS_PIC14 , "__16F723A" , { "pic16f723a" , "p16f723a" , "16f723a" }, 0xA723, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f723a.inc" , "16f723a_g.lkr" , 0 },
238 { PROC_CLASS_PIC14 , "__16F724" , { "pic16f724" , "p16f724" , "16f724" }, 0xF724, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f724.inc" , "16f724_g.lkr" , 0 },
239 { PROC_CLASS_PIC14 , "__16F726" , { "pic16f726" , "p16f726" , "16f726" }, 0xF726, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f726.inc" , "16f726_g.lkr" , 0 },
240 { PROC_CLASS_PIC14 , "__16F727" , { "pic16f727" , "p16f727" , "16f727" }, 0xF727, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f727.inc" , "16f727_g.lkr" , 0 },
241 { PROC_CLASS_PIC14 , "__16F737" , { "pic16f737" , "p16f737" , "16f737" }, 0x6737, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f737.inc" , "16f737_g.lkr" , 0 },
242 { PROC_CLASS_PIC14 , "__16F747" , { "pic16f747" , "p16f747" , "16f747" }, 0x6747, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f747.inc" , "16f747_g.lkr" , 0 },
243 { PROC_CLASS_PIC14 , "__16F753" , { "pic16f753" , "p16f753" , "16f753" }, 0xF753, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16f753.inc" , "16f753_g.lkr" , 0 },
244 { PROC_CLASS_PIC14 , "__16F767" , { "pic16f767" , "p16f767" , "16f767" }, 0x6767, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f767.inc" , "16f767_g.lkr" , 0 },
245 { PROC_CLASS_PIC14 , "__16F777" , { "pic16f777" , "p16f777" , "16f777" }, 0x6777, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16f777.inc" , "16f777_g.lkr" , 0 },
246 { PROC_CLASS_PIC14 , "__16F785" , { "pic16f785" , "p16f785" , "16f785" }, 0xF785, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f785.inc" , "16f785_g.lkr" , 0 },
247 { PROC_CLASS_PIC14 , "__16F818" , { "pic16f818" , "p16f818" , "16f818" }, 0x818F, 1, 4, 0x0180, { 0x40, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f818.inc" , "16f818_g.lkr" , 0 },
248 { PROC_CLASS_PIC14 , "__16F819" , { "pic16f819" , "p16f819" , "16f819" }, 0x819F, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f819.inc" , "16f819_g.lkr" , 0 },
249 { PROC_CLASS_PIC14 , "__16F870" , { "pic16f870" , "p16f870" , "16f870" }, 0x870F, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00213F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16f870.inc" , "16f870_g.lkr" , 0 },
250 { PROC_CLASS_PIC14 , "__16F871" , { "pic16f871" , "p16f871" , "16f871" }, 0x871F, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00213F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16f871.inc" , "16f871_g.lkr" , 0 },
251 { PROC_CLASS_PIC14 , "__16F872" , { "pic16f872" , "p16f872" , "16f872" }, 0x872F, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00213F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16f872.inc" , "16f872_g.lkr" , 0 },
252 { PROC_CLASS_PIC14 , "__16F873" , { "pic16f873" , "p16f873" , "16f873" }, 0x873F, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f873.inc" , "16f873_g.lkr" , 0 },
253 { PROC_CLASS_PIC14 , "__16F873A" , { "pic16f873a" , "p16f873a" , "16f873a" }, 0x873A, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f873a.inc" , "16f873a_g.lkr" , 0 },
254 { PROC_CLASS_PIC14 , "__16F874" , { "pic16f874" , "p16f874" , "16f874" }, 0x874F, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f874.inc" , "16f874_g.lkr" , 0 },
255 { PROC_CLASS_PIC14 , "__16F874A" , { "pic16f874a" , "p16f874a" , "16f874a" }, 0x874A, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16f874a.inc" , "16f874a_g.lkr" , 0 },
256 { PROC_CLASS_PIC14 , "__16F876" , { "pic16f876" , "p16f876" , "16f876" }, 0x876F, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f876.inc" , "16f876_g.lkr" , 0 },
257 { PROC_CLASS_PIC14 , "__16F876A" , { "pic16f876a" , "p16f876a" , "16f876a" }, 0x876A, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f876a.inc" , "16f876a_g.lkr" , 0 },
258 { PROC_CLASS_PIC14 , "__16F877" , { "pic16f877" , "p16f877" , "16f877" }, 0x877F, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f877.inc" , "16f877_g.lkr" , 0 },
259 { PROC_CLASS_PIC14 , "__16F877A" , { "pic16f877a" , "p16f877a" , "16f877a" }, 0x877A, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f877a.inc" , "16f877a_g.lkr" , 0 },
260 { PROC_CLASS_PIC14 , "__16F882" , { "pic16f882" , "p16f882" , "16f882" }, 0x882F, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x00217F }, 0x3F80, "p16f882.inc" , "16f882_g.lkr" , 0 },
261 { PROC_CLASS_PIC14 , "__16F883" , { "pic16f883" , "p16f883" , "16f883" }, 0x883F, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f883.inc" , "16f883_g.lkr" , 0 },
262 { PROC_CLASS_PIC14 , "__16F884" , { "pic16f884" , "p16f884" , "16f884" }, 0x884F, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f884.inc" , "16f884_g.lkr" , 0 },
263 { PROC_CLASS_PIC14 , "__16F886" , { "pic16f886" , "p16f886" , "16f886" }, 0x886F, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f886.inc" , "16f886_g.lkr" , 0 },
264 { PROC_CLASS_PIC14 , "__16F887" , { "pic16f887" , "p16f887" , "16f887" }, 0x887F, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f887.inc" , "16f887_g.lkr" , 0 },
265 { PROC_CLASS_PIC14 , "__16F913" , { "pic16f913" , "p16f913" , "16f913" }, 0xF913, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f913.inc" , "16f913_g.lkr" , 0 },
266 { PROC_CLASS_PIC14 , "__16F914" , { "pic16f914" , "p16f914" , "16f914" }, 0xF914, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f914.inc" , "16f914_g.lkr" , 0 },
267 { PROC_CLASS_PIC14 , "__16F916" , { "pic16f916" , "p16f916" , "16f916" }, 0xF916, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f916.inc" , "16f916_g.lkr" , 0 },
268 { PROC_CLASS_PIC14 , "__16F917" , { "pic16f917" , "p16f917" , "16f917" }, 0xF917, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f917.inc" , "16f917_g.lkr" , 0 },
269 { PROC_CLASS_PIC14 , "__16F946" , { "pic16f946" , "p16f946" , "16f946" }, 0xF946, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16f946.inc" , "16f946_g.lkr" , 0 },
270 { PROC_CLASS_PIC14E , "__16F1454" , { "pic16f1454" , "p16f1454" , "16f1454" }, 0x1454, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1454.inc" , "16f1454_g.lkr" , 0 },
271 { PROC_CLASS_PIC14E , "__16F1455" , { "pic16f1455" , "p16f1455" , "16f1455" }, 0x1455, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1455.inc" , "16f1455_g.lkr" , 0 },
272 { PROC_CLASS_PIC14E , "__16F1458" , { "pic16f1458" , "p16f1458" , "16f1458" }, 0x1458, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1458.inc" , "16f1458_g.lkr" , 0 },
273 { PROC_CLASS_PIC14E , "__16F1459" , { "pic16f1459" , "p16f1459" , "16f1459" }, 0x1459, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1459.inc" , "16f1459_g.lkr" , 0 },
274 { PROC_CLASS_PIC14E , "__16F1503" , { "pic16f1503" , "p16f1503" , "16f1503" }, 0x1503, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1503.inc" , "16f1503_g.lkr" , 0 },
275 { PROC_CLASS_PIC14E , "__16F1507" , { "pic16f1507" , "p16f1507" , "16f1507" }, 0x1507, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1507.inc" , "16f1507_g.lkr" , 0 },
276 { PROC_CLASS_PIC14E , "__16F1508" , { "pic16f1508" , "p16f1508" , "16f1508" }, 0x1508, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1508.inc" , "16f1508_g.lkr" , 0 },
277 { PROC_CLASS_PIC14E , "__16F1509" , { "pic16f1509" , "p16f1509" , "16f1509" }, 0x1509, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1509.inc" , "16f1509_g.lkr" , 0 },
278 { PROC_CLASS_PIC14E , "__16F1512" , { "pic16f1512" , "p16f1512" , "16f1512" }, 0x1512, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1512.inc" , "16f1512_g.lkr" , 0 },
279 { PROC_CLASS_PIC14E , "__16F1513" , { "pic16f1513" , "p16f1513" , "16f1513" }, 0x1513, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1513.inc" , "16f1513_g.lkr" , 0 },
280 { PROC_CLASS_PIC14E , "__16F1516" , { "pic16f1516" , "p16f1516" , "16f1516" }, 0x1516, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1516.inc" , "16f1516_g.lkr" , 0 },
281 { PROC_CLASS_PIC14E , "__16F1517" , { "pic16f1517" , "p16f1517" , "16f1517" }, 0x1517, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1517.inc" , "16f1517_g.lkr" , 0 },
282 { PROC_CLASS_PIC14E , "__16F1518" , { "pic16f1518" , "p16f1518" , "16f1518" }, 0x1518, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1518.inc" , "16f1518_g.lkr" , 0 },
283 { PROC_CLASS_PIC14E , "__16F1519" , { "pic16f1519" , "p16f1519" , "16f1519" }, 0x1519, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1519.inc" , "16f1519_g.lkr" , 0 },
284 { PROC_CLASS_PIC14E , "__16F1526" , { "pic16f1526" , "p16f1526" , "16f1526" }, 0x1526, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x22EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1526.inc" , "16f1526_g.lkr" , 0 },
285 { PROC_CLASS_PIC14E , "__16F1527" , { "pic16f1527" , "p16f1527" , "16f1527" }, 0x1527, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x25EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1527.inc" , "16f1527_g.lkr" , 0 },
286 { PROC_CLASS_PIC14E , "__16F1574" , { "pic16f1574" , "p16f1574" , "16f1574" }, 0x1574, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1574.inc" , "16f1574_g.lkr" , 0 },
287 { PROC_CLASS_PIC14E , "__16F1575" , { "pic16f1575" , "p16f1575" , "16f1575" }, 0x1575, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1575.inc" , "16f1575_g.lkr" , 0 },
288 { PROC_CLASS_PIC14E , "__16F1578" , { "pic16f1578" , "p16f1578" , "16f1578" }, 0x1578, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1578.inc" , "16f1578_g.lkr" , 0 },
289 { PROC_CLASS_PIC14E , "__16F1579" , { "pic16f1579" , "p16f1579" , "16f1579" }, 0x1579, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1579.inc" , "16f1579_g.lkr" , 0 },
290 { PROC_CLASS_PIC14E , "__16F1613" , { "pic16f1613" , "p16f1613" , "16f1613" }, 0x1613, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16f1613.inc" , "16f1613_g.lkr" , 0 },
291 { PROC_CLASS_PIC14E , "__16F1614" , { "pic16f1614" , "p16f1614" , "16f1614" }, 0x1614, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16f1614.inc" , "16f1614_g.lkr" , 0 },
292 { PROC_CLASS_PIC14E , "__16F1615" , { "pic16f1615" , "p16f1615" , "16f1615" }, 0x1615, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16f1615.inc" , "16f1615_g.lkr" , 0 },
293 { PROC_CLASS_PIC14E , "__16F1618" , { "pic16f1618" , "p16f1618" , "16f1618" }, 0x1618, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16f1618.inc" , "16f1618_g.lkr" , 0 },
294 { PROC_CLASS_PIC14E , "__16F1619" , { "pic16f1619" , "p16f1619" , "16f1619" }, 0x1619, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16f1619.inc" , "16f1619_g.lkr" , 0 },
295 { PROC_CLASS_PIC14E , "__16F1703" , { "pic16f1703" , "p16f1703" , "16f1703" }, 0x1703, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1703.inc" , "16f1703_g.lkr" , 0 },
296 { PROC_CLASS_PIC14E , "__16F1704" , { "pic16f1704" , "p16f1704" , "16f1704" }, 0x1704, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1704.inc" , "16f1704_g.lkr" , 0 },
297 { PROC_CLASS_PIC14E , "__16F1705" , { "pic16f1705" , "p16f1705" , "16f1705" }, 0x1705, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1705.inc" , "16f1705_g.lkr" , 0 },
298 { PROC_CLASS_PIC14E , "__16F1707" , { "pic16f1707" , "p16f1707" , "16f1707" }, 0x1707, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1707.inc" , "16f1707_g.lkr" , 0 },
299 { PROC_CLASS_PIC14E , "__16F1708" , { "pic16f1708" , "p16f1708" , "16f1708" }, 0x1708, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1708.inc" , "16f1708_g.lkr" , 0 },
300 { PROC_CLASS_PIC14E , "__16F1709" , { "pic16f1709" , "p16f1709" , "16f1709" }, 0x1709, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1709.inc" , "16f1709_g.lkr" , 0 },
301 { PROC_CLASS_PIC14E , "__16F1713" , { "pic16f1713" , "p16f1713" , "16f1713" }, 0x1713, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1713.inc" , "16f1713_g.lkr" , 0 },
302 { PROC_CLASS_PIC14E , "__16F1716" , { "pic16f1716" , "p16f1716" , "16f1716" }, 0x1716, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1716.inc" , "16f1716_g.lkr" , 0 },
303 { PROC_CLASS_PIC14E , "__16F1717" , { "pic16f1717" , "p16f1717" , "16f1717" }, 0x1717, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1717.inc" , "16f1717_g.lkr" , 0 },
304 { PROC_CLASS_PIC14E , "__16F1718" , { "pic16f1718" , "p16f1718" , "16f1718" }, 0x1718, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1718.inc" , "16f1718_g.lkr" , 0 },
305 { PROC_CLASS_PIC14E , "__16F1719" , { "pic16f1719" , "p16f1719" , "16f1719" }, 0x1719, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1719.inc" , "16f1719_g.lkr" , 0 },
306 { PROC_CLASS_PIC14E , "__16F1764" , { "pic16f1764" , "p16f1764" , "16f1764" }, 0x1764, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1764.inc" , "16f1764_g.lkr" , 0 },
307 { PROC_CLASS_PIC14E , "__16F1765" , { "pic16f1765" , "p16f1765" , "16f1765" }, 0x1765, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23AF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1765.inc" , "16f1765_g.lkr" , 0 },
308 { PROC_CLASS_PIC14E , "__16F1768" , { "pic16f1768" , "p16f1768" , "16f1768" }, 0x1768, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1768.inc" , "16f1768_g.lkr" , 0 },
309 { PROC_CLASS_PIC14E , "__16F1769" , { "pic16f1769" , "p16f1769" , "16f1769" }, 0x1769, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1769.inc" , "16f1769_g.lkr" , 0 },
310 { PROC_CLASS_PIC14E , "__16F1773" , { "pic16f1773" , "p16f1773" , "16f1773" }, 0x1773, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1773.inc" , "16f1773_g.lkr" , 0 },
311 { PROC_CLASS_PIC14E , "__16F1776" , { "pic16f1776" , "p16f1776" , "16f1776" }, 0x1776, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1776.inc" , "16f1776_g.lkr" , 0 },
312 { PROC_CLASS_PIC14E , "__16F1777" , { "pic16f1777" , "p16f1777" , "16f1777" }, 0x1777, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1777.inc" , "16f1777_g.lkr" , 0 },
313 { PROC_CLASS_PIC14E , "__16F1778" , { "pic16f1778" , "p16f1778" , "16f1778" }, 0x1778, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27CF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1778.inc" , "16f1778_g.lkr" , 0 },
314 { PROC_CLASS_PIC14E , "__16F1779" , { "pic16f1779" , "p16f1779" , "16f1779" }, 0x1779, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16f1779.inc" , "16f1779_g.lkr" , 0 },
315 { PROC_CLASS_PIC14E , "__16F1782" , { "pic16f1782" , "p16f1782" , "16f1782" }, 0x1782, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1782.inc" , "16f1782_g.lkr" , 0 },
316 { PROC_CLASS_PIC14E , "__16F1783" , { "pic16f1783" , "p16f1783" , "16f1783" }, 0x1783, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1783.inc" , "16f1783_g.lkr" , 0 },
317 { PROC_CLASS_PIC14E , "__16F1784" , { "pic16f1784" , "p16f1784" , "16f1784" }, 0x1784, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1784.inc" , "16f1784_g.lkr" , 0 },
318 { PROC_CLASS_PIC14E , "__16F1786" , { "pic16f1786" , "p16f1786" , "16f1786" }, 0x1786, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1786.inc" , "16f1786_g.lkr" , 0 },
319 { PROC_CLASS_PIC14E , "__16F1787" , { "pic16f1787" , "p16f1787" , "16f1787" }, 0x1787, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1787.inc" , "16f1787_g.lkr" , 0 },
320 { PROC_CLASS_PIC14E , "__16F1788" , { "pic16f1788" , "p16f1788" , "16f1788" }, 0x1788, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1788.inc" , "16f1788_g.lkr" , 0 },
321 { PROC_CLASS_PIC14E , "__16F1789" , { "pic16f1789" , "p16f1789" , "16f1789" }, 0x1789, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1789.inc" , "16f1789_g.lkr" , 0 },
322 { PROC_CLASS_PIC14E , "__16F1823" , { "pic16f1823" , "p16f1823" , "16f1823" }, 0x1823, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1823.inc" , "16f1823_g.lkr" , 0 },
323 { PROC_CLASS_PIC14E , "__16F1824" , { "pic16f1824" , "p16f1824" , "16f1824" }, 0x1824, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1824.inc" , "16f1824_g.lkr" , 0 },
324 { PROC_CLASS_PIC14E , "__16F1825" , { "pic16f1825" , "p16f1825" , "16f1825" }, 0x1825, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1825.inc" , "16f1825_g.lkr" , 0 },
325 { PROC_CLASS_PIC14E , "__16F1826" , { "pic16f1826" , "p16f1826" , "16f1826" }, 0x1826, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1826.inc" , "16f1826_g.lkr" , 0 },
326 { PROC_CLASS_PIC14E , "__16F1827" , { "pic16f1827" , "p16f1827" , "16f1827" }, 0x1827, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x216F }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1827.inc" , "16f1827_g.lkr" , 0 },
327 { PROC_CLASS_PIC14E , "__16F1828" , { "pic16f1828" , "p16f1828" , "16f1828" }, 0x1828, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1828.inc" , "16f1828_g.lkr" , 0 },
328 { PROC_CLASS_PIC14E , "__16F1829" , { "pic16f1829" , "p16f1829" , "16f1829" }, 0x1829, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1829.inc" , "16f1829_g.lkr" , 0 },
329 { PROC_CLASS_PIC14E , "__16F1829LIN" , { "pic16f1829lin" , "p16f1829lin" , "16f1829lin" }, 0xB829, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1829lin.inc" , "16f1829lin_g.lkr" , 0 },
330 { PROC_CLASS_PIC14E , "__16F1847" , { "pic16f1847" , "p16f1847" , "16f1847" }, 0x1847, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1847.inc" , "16f1847_g.lkr" , 0 },
331 { PROC_CLASS_PIC14E , "__16F1933" , { "pic16f1933" , "p16f1933" , "16f1933" }, 0x1933, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1933.inc" , "16f1933_g.lkr" , 0 },
332 { PROC_CLASS_PIC14E , "__16F1934" , { "pic16f1934" , "p16f1934" , "16f1934" }, 0x1934, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1934.inc" , "16f1934_g.lkr" , 0 },
333 { PROC_CLASS_PIC14E , "__16F1936" , { "pic16f1936" , "p16f1936" , "16f1936" }, 0x1936, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1936.inc" , "16f1936_g.lkr" , 0 },
334 { PROC_CLASS_PIC14E , "__16F1937" , { "pic16f1937" , "p16f1937" , "16f1937" }, 0x1937, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1937.inc" , "16f1937_g.lkr" , 0 },
335 { PROC_CLASS_PIC14E , "__16F1938" , { "pic16f1938" , "p16f1938" , "16f1938" }, 0x1938, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1938.inc" , "16f1938_g.lkr" , 0 },
336 { PROC_CLASS_PIC14E , "__16F1939" , { "pic16f1939" , "p16f1939" , "16f1939" }, 0x1939, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1939.inc" , "16f1939_g.lkr" , 0 },
337 { PROC_CLASS_PIC14E , "__16F1946" , { "pic16f1946" , "p16f1946" , "16f1946" }, 0x1946, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1946.inc" , "16f1946_g.lkr" , 0 },
338 { PROC_CLASS_PIC14E , "__16F1947" , { "pic16f1947" , "p16f1947" , "16f1947" }, 0x1947, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f1947.inc" , "16f1947_g.lkr" , 0 },
339 { PROC_CLASS_PIC14EX , "__16F15354" , { "pic16f15354" , "p16f15354" , "16f15354" }, 0xA280, 2, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x1FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { -1, -1 }, 0x3F80, "p16f15354.inc" , "16f15354_g.lkr" , 0 },
340 { PROC_CLASS_PIC14EX , "__16F15355" , { "pic16f15355" , "p16f15355" , "16f15355" }, 0xA27F, 4, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x25EF }, 0x1FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { -1, -1 }, 0x3F80, "p16f15355.inc" , "16f15355_g.lkr" , 0 },
341 { PROC_CLASS_PIC14E , "__16F18313" , { "pic16f18313" , "p16f18313" , "16f18313" }, 0x1832, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18313.inc" , "16f18313_g.lkr" , 0 },
342 { PROC_CLASS_PIC14E , "__16F18323" , { "pic16f18323" , "p16f18323" , "16f18323" }, 0x1833, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18323.inc" , "16f18323_g.lkr" , 0 },
343 { PROC_CLASS_PIC14E , "__16F18324" , { "pic16f18324" , "p16f18324" , "16f18324" }, 0x8324, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18324.inc" , "16f18324_g.lkr" , 0 },
344 { PROC_CLASS_PIC14E , "__16F18325" , { "pic16f18325" , "p16f18325" , "16f18325" }, 0x1835, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18325.inc" , "16f18325_g.lkr" , 0 },
345 { PROC_CLASS_PIC14E , "__16F18326" , { "pic16f18326" , "p16f18326" , "16f18326" }, 0x8326, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18326.inc" , "16f18326_g.lkr" , 0 },
346 { PROC_CLASS_PIC14E , "__16F18344" , { "pic16f18344" , "p16f18344" , "16f18344" }, 0x8344, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18344.inc" , "16f18344_g.lkr" , 0 },
347 { PROC_CLASS_PIC14E , "__16F18345" , { "pic16f18345" , "p16f18345" , "16f18345" }, 0x1834, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18345.inc" , "16f18345_g.lkr" , 0 },
348 { PROC_CLASS_PIC14E , "__16F18346" , { "pic16f18346" , "p16f18346" , "16f18346" }, 0x8346, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18346.inc" , "16f18346_g.lkr" , 0 },
349 { PROC_CLASS_PIC14E , "__16F18854" , { "pic16f18854" , "p16f18854" , "16f18854" }, 0x8854, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18854.inc" , "16f18854_g.lkr" , 0 },
350 { PROC_CLASS_PIC14E , "__16F18855" , { "pic16f18855" , "p16f18855" , "16f18855" }, 0x8855, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18855.inc" , "16f18855_g.lkr" , 0 },
351 { PROC_CLASS_PIC14E , "__16F18856" , { "pic16f18856" , "p16f18856" , "16f18856" }, 0x8856, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18856.inc" , "16f18856_g.lkr" , 0 },
352 { PROC_CLASS_PIC14EX , "__16F18857" , { "pic16f18857" , "p16f18857" , "16f18857" }, 0x8857, 16, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x30BF }, 0x1FFF, 0x00F0FF, 0x008000, { 0x008000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18857.inc" , "16f18857_g.lkr" , 0 },
353 { PROC_CLASS_PIC14E , "__16F18875" , { "pic16f18875" , "p16f18875" , "16f18875" }, 0x8875, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18875.inc" , "16f18875_g.lkr" , 0 },
354 { PROC_CLASS_PIC14E , "__16F18876" , { "pic16f18876" , "p16f18876" , "16f18876" }, 0x8876, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18876.inc" , "16f18876_g.lkr" , 0 },
355 { PROC_CLASS_PIC14EX , "__16F18877" , { "pic16f18877" , "p16f18877" , "16f18877" }, 0x8877, 16, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x31EF }, 0x1FFF, 0x00F0FF, 0x008000, { 0x008000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f18877.inc" , "16f18877_g.lkr" , 0 },
356 { PROC_CLASS_PIC14EX , "__16F19197" , { "pic16f19197" , "p16f19197" , "16f19197" }, 0xA27E, 16, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x31EF }, 0x1FFF, 0x00F0FF, 0x008000, { 0x008000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16f19197.inc" , "16f19197_g.lkr" , 0 },
357 { PROC_CLASS_PIC12 , "__16HV540" , { "pic16hv540" , "p16hv540" , "16hv540" }, 0x6540, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "p16hv540.inc" , "16hv540_g.lkr" , 0 },
358 { PROC_CLASS_PIC14 , "__16HV610" , { "pic16hv610" , "p16hv610" , "16hv610" }, 0x6610, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0003FF, 0x000400, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16hv610.inc" , "16hv610_g.lkr" , 0 },
359 { PROC_CLASS_PIC14 , "__16HV616" , { "pic16hv616" , "p16hv616" , "16hv616" }, 0x6616, 1, 2, 0x0080, { 0x70, 0x7F }, -1, { -1, -1 }, 0x00FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16hv616.inc" , "16hv616_g.lkr" , 0 },
360 { PROC_CLASS_PIC14 , "__16HV753" , { "pic16hv753" , "p16hv753" , "16hv753" }, 0x6753, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16hv753.inc" , "16hv753_g.lkr" , 0 },
361 { PROC_CLASS_PIC14 , "__16HV785" , { "pic16hv785" , "p16hv785" , "16hv785" }, 0x6785, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16hv785.inc" , "16hv785_g.lkr" , 0 },
362 { PROC_CLASS_PIC14 , "__16LF74" , { "pic16lf74" , "p16lf74" , "16lf74" }, 0xA674, 2, 4, 0x0180, { -1, -1 }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16lf74.inc" , "16lf74_g.lkr" , 0 },
363 { PROC_CLASS_PIC14 , "__16LF76" , { "pic16lf76" , "p16lf76" , "16lf76" }, 0xA676, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16lf76.inc" , "16lf76_g.lkr" , 0 },
364 { PROC_CLASS_PIC14 , "__16LF77" , { "pic16lf77" , "p16lf77" , "16lf77" }, 0xA677, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p16lf77.inc" , "16lf77_g.lkr" , 0 },
365 { PROC_CLASS_PIC14 , "__16LF83" , { "pic16lf83" , "p16lf83" , "16lf83" }, 0xA683, 1, 2, 0x0080, { 0x0C, 0x2F }, -1, { -1, -1 }, 0x00AF, 0x00213F, 0x000200, { 0x000200, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16lf83.inc" , "16lf83_g.lkr" , 0 },
366 { PROC_CLASS_PIC14 , "__16LF84" , { "pic16lf84" , "p16lf84" , "16lf84" }, 0xA684, 1, 2, 0x0080, { 0x0C, 0x4F }, -1, { -1, -1 }, 0x00CF, 0x00213F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16lf84.inc" , "16lf84_g.lkr" , 0 },
367 { PROC_CLASS_PIC14 , "__16LF84A" , { "pic16lf84a" , "p16lf84a" , "16lf84a" }, 0xA685, 1, 2, 0x0080, { 0x0C, 0x4F }, -1, { -1, -1 }, 0x00CF, 0x00213F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16lf84a.inc" , "16lf84a_g.lkr" , 0 },
368 { PROC_CLASS_PIC14 , "__16LF87" , { "pic16lf87" , "p16lf87" , "16lf87" }, 0xA807, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf87.inc" , "16lf87_g.lkr" , 0 },
369 { PROC_CLASS_PIC14 , "__16LF88" , { "pic16lf88" , "p16lf88" , "16lf88" }, 0xA808, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf88.inc" , "16lf88_g.lkr" , 0 },
370 { PROC_CLASS_PIC14 , "__16LF627" , { "pic16lf627" , "p16lf627" , "16lf627" }, 0xA627, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf627.inc" , "16lf627_g.lkr" , 0 },
371 { PROC_CLASS_PIC14 , "__16LF627A" , { "pic16lf627a" , "p16lf627a" , "16lf627a" }, 0xC627, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf627a.inc" , "16lf627a_g.lkr" , 0 },
372 { PROC_CLASS_PIC14 , "__16LF628" , { "pic16lf628" , "p16lf628" , "16lf628" }, 0xB628, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf628.inc" , "16lf628_g.lkr" , 0 },
373 { PROC_CLASS_PIC14 , "__16LF628A" , { "pic16lf628a" , "p16lf628a" , "16lf628a" }, 0xC628, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf628a.inc" , "16lf628a_g.lkr" , 0 },
374 { PROC_CLASS_PIC14 , "__16LF648A" , { "pic16lf648a" , "p16lf648a" , "16lf648a" }, 0xC648, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf648a.inc" , "16lf648a_g.lkr" , 0 },
375 { PROC_CLASS_PIC14 , "__16LF707" , { "pic16lf707" , "p16lf707" , "16lf707" }, 0xD707, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf707.inc" , "16lf707_g.lkr" , 0 },
376 { PROC_CLASS_PIC14 , "__16LF720" , { "pic16lf720" , "p16lf720" , "16lf720" }, 0xD720, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf720.inc" , "16lf720_g.lkr" , 0 },
377 { PROC_CLASS_PIC14 , "__16LF721" , { "pic16lf721" , "p16lf721" , "16lf721" }, 0xD721, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf721.inc" , "16lf721_g.lkr" , 0 },
378 { PROC_CLASS_PIC14 , "__16LF722" , { "pic16lf722" , "p16lf722" , "16lf722" }, 0xD722, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf722.inc" , "16lf722_g.lkr" , 0 },
379 { PROC_CLASS_PIC14 , "__16LF722A" , { "pic16lf722a" , "p16lf722a" , "16lf722a" }, 0xB722, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0007FF, 0x000800, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf722a.inc" , "16lf722a_g.lkr" , 0 },
380 { PROC_CLASS_PIC14 , "__16LF723" , { "pic16lf723" , "p16lf723" , "16lf723" }, 0xD723, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf723.inc" , "16lf723_g.lkr" , 0 },
381 { PROC_CLASS_PIC14 , "__16LF723A" , { "pic16lf723a" , "p16lf723a" , "16lf723a" }, 0xB723, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf723a.inc" , "16lf723a_g.lkr" , 0 },
382 { PROC_CLASS_PIC14 , "__16LF724" , { "pic16lf724" , "p16lf724" , "16lf724" }, 0xD724, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf724.inc" , "16lf724_g.lkr" , 0 },
383 { PROC_CLASS_PIC14 , "__16LF726" , { "pic16lf726" , "p16lf726" , "16lf726" }, 0xD726, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf726.inc" , "16lf726_g.lkr" , 0 },
384 { PROC_CLASS_PIC14 , "__16LF727" , { "pic16lf727" , "p16lf727" , "16lf727" }, 0xD727, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf727.inc" , "16lf727_g.lkr" , 0 },
385 { PROC_CLASS_PIC14 , "__16LF747" , { "pic16lf747" , "p16lf747" , "16lf747" }, 0xA747, 2, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x000FFF, 0x001000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf747.inc" , "16lf747_g.lkr" , 0 },
386 { PROC_CLASS_PIC14 , "__16LF767" , { "pic16lf767" , "p16lf767" , "16lf767" }, 0xA767, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf767.inc" , "16lf767_g.lkr" , 0 },
387 { PROC_CLASS_PIC14 , "__16LF777" , { "pic16lf777" , "p16lf777" , "16lf777" }, 0xA777, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x001FFF, 0x002000, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002008 }, { -1, -1 }, 0x3F80, "p16lf777.inc" , "16lf777_g.lkr" , 0 },
388 { PROC_CLASS_PIC14 , "__16LF818" , { "pic16lf818" , "p16lf818" , "16lf818" }, 0xA818, 1, 4, 0x0180, { 0x40, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x000400, { 0x000400, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf818.inc" , "16lf818_g.lkr" , 0 },
389 { PROC_CLASS_PIC14 , "__16LF819" , { "pic16lf819" , "p16lf819" , "16lf819" }, 0xA819, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf819.inc" , "16lf819_g.lkr" , 0 },
390 { PROC_CLASS_PIC14 , "__16LF870" , { "pic16lf870" , "p16lf870" , "16lf870" }, 0xA870, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00213F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16lf870.inc" , "16lf870_g.lkr" , 0 },
391 { PROC_CLASS_PIC14 , "__16LF871" , { "pic16lf871" , "p16lf871" , "16lf871" }, 0xA871, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00213F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16lf871.inc" , "16lf871_g.lkr" , 0 },
392 { PROC_CLASS_PIC14 , "__16LF872" , { "pic16lf872" , "p16lf872" , "16lf872" }, 0xA800, 1, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x00213F, 0x000800, { 0x000800, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00213F }, 0x3F80, "p16lf872.inc" , "16lf872_g.lkr" , 0 },
393 { PROC_CLASS_PIC14 , "__16LF873" , { "pic16lf873" , "p16lf873" , "16lf873" }, 0xA873, 2, 4, 0x0180, { -1, -1 }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf873.inc" , "16lf873_g.lkr" , 0 },
394 { PROC_CLASS_PIC14 , "__16LF873A" , { "pic16lf873a" , "p16lf873a" , "16lf873a" }, 0xA803, 2, 4, 0x0180, { -1, -1 }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf873a.inc" , "16lf873a_g.lkr" , 0 },
395 { PROC_CLASS_PIC14 , "__16LF874" , { "pic16lf874" , "p16lf874" , "16lf874" }, 0xA874, 2, 4, 0x0180, { -1, -1 }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf874.inc" , "16lf874_g.lkr" , 0 },
396 { PROC_CLASS_PIC14 , "__16LF874A" , { "pic16lf874a" , "p16lf874a" , "16lf874a" }, 0xA804, 2, 4, 0x0180, { -1, -1 }, -1, { -1, -1 }, 0x01FF, 0x00217F, 0x001000, { 0x001000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "p16lf874a.inc" , "16lf874a_g.lkr" , 0 },
397 { PROC_CLASS_PIC14 , "__16LF876" , { "pic16lf876" , "p16lf876" , "16lf876" }, 0xA801, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf876.inc" , "16lf876_g.lkr" , 0 },
398 { PROC_CLASS_PIC14 , "__16LF876A" , { "pic16lf876a" , "p16lf876a" , "16lf876a" }, 0xA805, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf876a.inc" , "16lf876a_g.lkr" , 0 },
399 { PROC_CLASS_PIC14 , "__16LF877" , { "pic16lf877" , "p16lf877" , "16lf877" }, 0xA802, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf877.inc" , "16lf877_g.lkr" , 0 },
400 { PROC_CLASS_PIC14 , "__16LF877A" , { "pic16lf877a" , "p16lf877a" , "16lf877a" }, 0xA806, 4, 4, 0x0180, { 0x70, 0x7F }, -1, { -1, -1 }, 0x01FF, 0x0021FF, 0x002000, { 0x002000, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x0021FF }, 0x3F80, "p16lf877a.inc" , "16lf877a_g.lkr" , 0 },
401 { PROC_CLASS_PIC14E , "__16LF1454" , { "pic16lf1454" , "p16lf1454" , "16lf1454" }, 0xA454, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1454.inc" , "16lf1454_g.lkr" , 0 },
402 { PROC_CLASS_PIC14E , "__16LF1455" , { "pic16lf1455" , "p16lf1455" , "16lf1455" }, 0xA455, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1455.inc" , "16lf1455_g.lkr" , 0 },
403 { PROC_CLASS_PIC14E , "__16LF1458" , { "pic16lf1458" , "p16lf1458" , "16lf1458" }, 0xA458, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1458.inc" , "16lf1458_g.lkr" , 0 },
404 { PROC_CLASS_PIC14E , "__16LF1459" , { "pic16lf1459" , "p16lf1459" , "16lf1459" }, 0xA459, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1459.inc" , "16lf1459_g.lkr" , 0 },
405 { PROC_CLASS_PIC14E , "__16LF1503" , { "pic16lf1503" , "p16lf1503" , "16lf1503" }, 0xA503, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1503.inc" , "16lf1503_g.lkr" , 0 },
406 { PROC_CLASS_PIC14E , "__16LF1507" , { "pic16lf1507" , "p16lf1507" , "16lf1507" }, 0xA507, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1507.inc" , "16lf1507_g.lkr" , 0 },
407 { PROC_CLASS_PIC14E , "__16LF1508" , { "pic16lf1508" , "p16lf1508" , "16lf1508" }, 0xA508, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1508.inc" , "16lf1508_g.lkr" , 0 },
408 { PROC_CLASS_PIC14E , "__16LF1509" , { "pic16lf1509" , "p16lf1509" , "16lf1509" }, 0xA509, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1509.inc" , "16lf1509_g.lkr" , 0 },
409 { PROC_CLASS_PIC14E , "__16LF1512" , { "pic16lf1512" , "p16lf1512" , "16lf1512" }, 0xA512, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1512.inc" , "16lf1512_g.lkr" , 0 },
410 { PROC_CLASS_PIC14E , "__16LF1513" , { "pic16lf1513" , "p16lf1513" , "16lf1513" }, 0xA513, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1513.inc" , "16lf1513_g.lkr" , 0 },
411 { PROC_CLASS_PIC14E , "__16LF1516" , { "pic16lf1516" , "p16lf1516" , "16lf1516" }, 0xA516, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1516.inc" , "16lf1516_g.lkr" , 0 },
412 { PROC_CLASS_PIC14E , "__16LF1517" , { "pic16lf1517" , "p16lf1517" , "16lf1517" }, 0xA517, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1517.inc" , "16lf1517_g.lkr" , 0 },
413 { PROC_CLASS_PIC14E , "__16LF1518" , { "pic16lf1518" , "p16lf1518" , "16lf1518" }, 0xA518, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1518.inc" , "16lf1518_g.lkr" , 0 },
414 { PROC_CLASS_PIC14E , "__16LF1519" , { "pic16lf1519" , "p16lf1519" , "16lf1519" }, 0xA519, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1519.inc" , "16lf1519_g.lkr" , 0 },
415 { PROC_CLASS_PIC14E , "__16LF1526" , { "pic16lf1526" , "p16lf1526" , "16lf1526" }, 0xA526, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x22EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1526.inc" , "16lf1526_g.lkr" , 0 },
416 { PROC_CLASS_PIC14E , "__16LF1527" , { "pic16lf1527" , "p16lf1527" , "16lf1527" }, 0xA527, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x25EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1527.inc" , "16lf1527_g.lkr" , 0 },
417 { PROC_CLASS_PIC14E , "__16LF1554" , { "pic16lf1554" , "p16lf1554" , "16lf1554" }, 0xA554, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1554.inc" , "16lf1554_g.lkr" , 0 },
418 { PROC_CLASS_PIC14E , "__16LF1559" , { "pic16lf1559" , "p16lf1559" , "16lf1559" }, 0xA559, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1559.inc" , "16lf1559_g.lkr" , 0 },
419 { PROC_CLASS_PIC14E , "__16LF1566" , { "pic16lf1566" , "p16lf1566" , "16lf1566" }, 0xA566, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1566.inc" , "16lf1566_g.lkr" , 0 },
420 { PROC_CLASS_PIC14E , "__16LF1567" , { "pic16lf1567" , "p16lf1567" , "16lf1567" }, 0xA567, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1567.inc" , "16lf1567_g.lkr" , 0 },
421 { PROC_CLASS_PIC14E , "__16LF1574" , { "pic16lf1574" , "p16lf1574" , "16lf1574" }, 0xA574, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1574.inc" , "16lf1574_g.lkr" , 0 },
422 { PROC_CLASS_PIC14E , "__16LF1575" , { "pic16lf1575" , "p16lf1575" , "16lf1575" }, 0xA575, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1575.inc" , "16lf1575_g.lkr" , 0 },
423 { PROC_CLASS_PIC14E , "__16LF1578" , { "pic16lf1578" , "p16lf1578" , "16lf1578" }, 0xA578, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1578.inc" , "16lf1578_g.lkr" , 0 },
424 { PROC_CLASS_PIC14E , "__16LF1579" , { "pic16lf1579" , "p16lf1579" , "16lf1579" }, 0xA579, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1579.inc" , "16lf1579_g.lkr" , 0 },
425 { PROC_CLASS_PIC14E , "__16LF1613" , { "pic16lf1613" , "p16lf1613" , "16lf1613" }, 0xA613, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16lf1613.inc" , "16lf1613_g.lkr" , 0 },
426 { PROC_CLASS_PIC14E , "__16LF1614" , { "pic16lf1614" , "p16lf1614" , "16lf1614" }, 0xA614, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16lf1614.inc" , "16lf1614_g.lkr" , 0 },
427 { PROC_CLASS_PIC14E , "__16LF1615" , { "pic16lf1615" , "p16lf1615" , "16lf1615" }, 0xA615, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16lf1615.inc" , "16lf1615_g.lkr" , 0 },
428 { PROC_CLASS_PIC14E , "__16LF1618" , { "pic16lf1618" , "p16lf1618" , "16lf1618" }, 0xA618, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16lf1618.inc" , "16lf1618_g.lkr" , 0 },
429 { PROC_CLASS_PIC14E , "__16LF1619" , { "pic16lf1619" , "p16lf1619" , "16lf1619" }, 0xA619, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23DF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008009 }, { -1, -1 }, 0x3F80, "p16lf1619.inc" , "16lf1619_g.lkr" , 0 },
430 { PROC_CLASS_PIC14E , "__16LF1703" , { "pic16lf1703" , "p16lf1703" , "16lf1703" }, 0xA703, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1703.inc" , "16lf1703_g.lkr" , 0 },
431 { PROC_CLASS_PIC14E , "__16LF1704" , { "pic16lf1704" , "p16lf1704" , "16lf1704" }, 0xA704, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1704.inc" , "16lf1704_g.lkr" , 0 },
432 { PROC_CLASS_PIC14E , "__16LF1705" , { "pic16lf1705" , "p16lf1705" , "16lf1705" }, 0xA705, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1705.inc" , "16lf1705_g.lkr" , 0 },
433 { PROC_CLASS_PIC14E , "__16LF1707" , { "pic16lf1707" , "p16lf1707" , "16lf1707" }, 0xA707, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1707.inc" , "16lf1707_g.lkr" , 0 },
434 { PROC_CLASS_PIC14E , "__16LF1708" , { "pic16lf1708" , "p16lf1708" , "16lf1708" }, 0xA708, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1708.inc" , "16lf1708_g.lkr" , 0 },
435 { PROC_CLASS_PIC14E , "__16LF1709" , { "pic16lf1709" , "p16lf1709" , "16lf1709" }, 0xA709, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1709.inc" , "16lf1709_g.lkr" , 0 },
436 { PROC_CLASS_PIC14E , "__16LF1713" , { "pic16lf1713" , "p16lf1713" , "16lf1713" }, 0xA713, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1713.inc" , "16lf1713_g.lkr" , 0 },
437 { PROC_CLASS_PIC14E , "__16LF1716" , { "pic16lf1716" , "p16lf1716" , "16lf1716" }, 0xB716, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1716.inc" , "16lf1716_g.lkr" , 0 },
438 { PROC_CLASS_PIC14E , "__16LF1717" , { "pic16lf1717" , "p16lf1717" , "16lf1717" }, 0xA717, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1717.inc" , "16lf1717_g.lkr" , 0 },
439 { PROC_CLASS_PIC14E , "__16LF1718" , { "pic16lf1718" , "p16lf1718" , "16lf1718" }, 0xA718, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1718.inc" , "16lf1718_g.lkr" , 0 },
440 { PROC_CLASS_PIC14E , "__16LF1719" , { "pic16lf1719" , "p16lf1719" , "16lf1719" }, 0xA719, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1719.inc" , "16lf1719_g.lkr" , 0 },
441 { PROC_CLASS_PIC14E , "__16LF1764" , { "pic16lf1764" , "p16lf1764" , "16lf1764" }, 0xA764, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1764.inc" , "16lf1764_g.lkr" , 0 },
442 { PROC_CLASS_PIC14E , "__16LF1765" , { "pic16lf1765" , "p16lf1765" , "16lf1765" }, 0xA765, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23AF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1765.inc" , "16lf1765_g.lkr" , 0 },
443 { PROC_CLASS_PIC14E , "__16LF1768" , { "pic16lf1768" , "p16lf1768" , "16lf1768" }, 0xA768, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1768.inc" , "16lf1768_g.lkr" , 0 },
444 { PROC_CLASS_PIC14E , "__16LF1769" , { "pic16lf1769" , "p16lf1769" , "16lf1769" }, 0xA769, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1769.inc" , "16lf1769_g.lkr" , 0 },
445 { PROC_CLASS_PIC14E , "__16LF1773" , { "pic16lf1773" , "p16lf1773" , "16lf1773" }, 0xA773, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1773.inc" , "16lf1773_g.lkr" , 0 },
446 { PROC_CLASS_PIC14E , "__16LF1776" , { "pic16lf1776" , "p16lf1776" , "16lf1776" }, 0xA776, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1776.inc" , "16lf1776_g.lkr" , 0 },
447 { PROC_CLASS_PIC14E , "__16LF1777" , { "pic16lf1777" , "p16lf1777" , "16lf1777" }, 0xA26D, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1777.inc" , "16lf1777_g.lkr" , 0 },
448 { PROC_CLASS_PIC14E , "__16LF1778" , { "pic16lf1778" , "p16lf1778" , "16lf1778" }, 0xA778, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27CF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1778.inc" , "16lf1778_g.lkr" , 0 },
449 { PROC_CLASS_PIC14E , "__16LF1779" , { "pic16lf1779" , "p16lf1779" , "16lf1779" }, 0xA779, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1779.inc" , "16lf1779_g.lkr" , 0 },
450 { PROC_CLASS_PIC14E , "__16LF1782" , { "pic16lf1782" , "p16lf1782" , "16lf1782" }, 0xA782, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1782.inc" , "16lf1782_g.lkr" , 0 },
451 { PROC_CLASS_PIC14E , "__16LF1783" , { "pic16lf1783" , "p16lf1783" , "16lf1783" }, 0xA783, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1783.inc" , "16lf1783_g.lkr" , 0 },
452 { PROC_CLASS_PIC14E , "__16LF1784" , { "pic16lf1784" , "p16lf1784" , "16lf1784" }, 0xA784, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1784.inc" , "16lf1784_g.lkr" , 0 },
453 { PROC_CLASS_PIC14E , "__16LF1786" , { "pic16lf1786" , "p16lf1786" , "16lf1786" }, 0xA786, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1786.inc" , "16lf1786_g.lkr" , 0 },
454 { PROC_CLASS_PIC14E , "__16LF1787" , { "pic16lf1787" , "p16lf1787" , "16lf1787" }, 0xA787, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1787.inc" , "16lf1787_g.lkr" , 0 },
455 { PROC_CLASS_PIC14E , "__16LF1788" , { "pic16lf1788" , "p16lf1788" , "16lf1788" }, 0xA788, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1788.inc" , "16lf1788_g.lkr" , 0 },
456 { PROC_CLASS_PIC14E , "__16LF1789" , { "pic16lf1789" , "p16lf1789" , "16lf1789" }, 0xA789, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1789.inc" , "16lf1789_g.lkr" , 0 },
457 { PROC_CLASS_PIC14E , "__16LF1823" , { "pic16lf1823" , "p16lf1823" , "16lf1823" }, 0xA823, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1823.inc" , "16lf1823_g.lkr" , 0 },
458 { PROC_CLASS_PIC14E , "__16LF1824" , { "pic16lf1824" , "p16lf1824" , "16lf1824" }, 0xA824, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1824.inc" , "16lf1824_g.lkr" , 0 },
459 { PROC_CLASS_PIC14E , "__16LF1824T39A", { "pic16lf1824t39a", "p16lf1824t39a" , "16lf1824t39a" }, 0xC824, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1824t39a.inc", "16lf1824t39a_g.lkr", 0 },
460 { PROC_CLASS_PIC14E , "__16LF1825" , { "pic16lf1825" , "p16lf1825" , "16lf1825" }, 0xA825, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1825.inc" , "16lf1825_g.lkr" , 0 },
461 { PROC_CLASS_PIC14E , "__16LF1826" , { "pic16lf1826" , "p16lf1826" , "16lf1826" }, 0xA826, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1826.inc" , "16lf1826_g.lkr" , 0 },
462 { PROC_CLASS_PIC14E , "__16LF1827" , { "pic16lf1827" , "p16lf1827" , "16lf1827" }, 0xA827, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x216F }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1827.inc" , "16lf1827_g.lkr" , 0 },
463 { PROC_CLASS_PIC14E , "__16LF1828" , { "pic16lf1828" , "p16lf1828" , "16lf1828" }, 0xA828, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1828.inc" , "16lf1828_g.lkr" , 0 },
464 { PROC_CLASS_PIC14E , "__16LF1829" , { "pic16lf1829" , "p16lf1829" , "16lf1829" }, 0xA829, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1829.inc" , "16lf1829_g.lkr" , 0 },
465 { PROC_CLASS_PIC14E , "__16LF1847" , { "pic16lf1847" , "p16lf1847" , "16lf1847" }, 0xA847, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1847.inc" , "16lf1847_g.lkr" , 0 },
466 { PROC_CLASS_PIC14E , "__16LF1902" , { "pic16lf1902" , "p16lf1902" , "16lf1902" }, 0xA902, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x206F }, 0x0FFF, 0x0007FF, 0x000800, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1902.inc" , "16lf1902_g.lkr" , 0 },
467 { PROC_CLASS_PIC14E , "__16LF1903" , { "pic16lf1903" , "p16lf1903" , "16lf1903" }, 0xA903, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1903.inc" , "16lf1903_g.lkr" , 0 },
468 { PROC_CLASS_PIC14E , "__16LF1904" , { "pic16lf1904" , "p16lf1904" , "16lf1904" }, 0xA904, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1904.inc" , "16lf1904_g.lkr" , 0 },
469 { PROC_CLASS_PIC14E , "__16LF1906" , { "pic16lf1906" , "p16lf1906" , "16lf1906" }, 0xA906, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1906.inc" , "16lf1906_g.lkr" , 0 },
470 { PROC_CLASS_PIC14E , "__16LF1907" , { "pic16lf1907" , "p16lf1907" , "16lf1907" }, 0xA907, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { -1, -1 }, 0x3F80, "p16lf1907.inc" , "16lf1907_g.lkr" , 0 },
471 { PROC_CLASS_PIC14E , "__16LF1933" , { "pic16lf1933" , "p16lf1933" , "16lf1933" }, 0xA933, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1933.inc" , "16lf1933_g.lkr" , 0 },
472 { PROC_CLASS_PIC14E , "__16LF1934" , { "pic16lf1934" , "p16lf1934" , "16lf1934" }, 0xA934, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1934.inc" , "16lf1934_g.lkr" , 0 },
473 { PROC_CLASS_PIC14E , "__16LF1936" , { "pic16lf1936" , "p16lf1936" , "16lf1936" }, 0xA936, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1936.inc" , "16lf1936_g.lkr" , 0 },
474 { PROC_CLASS_PIC14E , "__16LF1937" , { "pic16lf1937" , "p16lf1937" , "16lf1937" }, 0xA937, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1937.inc" , "16lf1937_g.lkr" , 0 },
475 { PROC_CLASS_PIC14E , "__16LF1938" , { "pic16lf1938" , "p16lf1938" , "16lf1938" }, 0xA938, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1938.inc" , "16lf1938_g.lkr" , 0 },
476 { PROC_CLASS_PIC14E , "__16LF1939" , { "pic16lf1939" , "p16lf1939" , "16lf1939" }, 0xA939, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1939.inc" , "16lf1939_g.lkr" , 0 },
477 { PROC_CLASS_PIC14E , "__16LF1946" , { "pic16lf1946" , "p16lf1946" , "16lf1946" }, 0xA946, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1946.inc" , "16lf1946_g.lkr" , 0 },
478 { PROC_CLASS_PIC14E , "__16LF1947" , { "pic16lf1947" , "p16lf1947" , "16lf1947" }, 0xA947, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x008008 }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf1947.inc" , "16lf1947_g.lkr" , 0 },
479 { PROC_CLASS_PIC14EX , "__16LF15354" , { "pic16lf15354" , "p16lf15354" , "16lf15354" }, 0xA282, 2, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x1FFF, 0x000FFF, 0x001000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { -1, -1 }, 0x3F80, "p16lf15354.inc" , "16lf15354_g.lkr" , 0 },
480 { PROC_CLASS_PIC14EX , "__16LF15355" , { "pic16lf15355" , "p16lf15355" , "16lf15355" }, 0xA281, 4, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x25EF }, 0x1FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { -1, -1 }, 0x3F80, "p16lf15355.inc" , "16lf15355_g.lkr" , 0 },
481 { PROC_CLASS_PIC14E , "__16LF18313" , { "pic16lf18313" , "p16lf18313" , "16lf18313" }, 0xA832, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18313.inc" , "16lf18313_g.lkr" , 0 },
482 { PROC_CLASS_PIC14E , "__16LF18323" , { "pic16lf18323" , "p16lf18323" , "16lf18323" }, 0xA833, 1, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x20EF }, 0x0FFF, 0x00F0FF, 0x000800, { 0x000800, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18323.inc" , "16lf18323_g.lkr" , 0 },
483 { PROC_CLASS_PIC14E , "__16LF18324" , { "pic16lf18324" , "p16lf18324" , "16lf18324" }, 0xA324, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18324.inc" , "16lf18324_g.lkr" , 0 },
484 { PROC_CLASS_PIC14E , "__16LF18325" , { "pic16lf18325" , "p16lf18325" , "16lf18325" }, 0xA325, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18325.inc" , "16lf18325_g.lkr" , 0 },
485 { PROC_CLASS_PIC14E , "__16LF18326" , { "pic16lf18326" , "p16lf18326" , "16lf18326" }, 0xA274, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18326.inc" , "16lf18326_g.lkr" , 0 },
486 { PROC_CLASS_PIC14E , "__16LF18344" , { "pic16lf18344" , "p16lf18344" , "16lf18344" }, 0xA344, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18344.inc" , "16lf18344_g.lkr" , 0 },
487 { PROC_CLASS_PIC14E , "__16LF18345" , { "pic16lf18345" , "p16lf18345" , "16lf18345" }, 0xA345, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18345.inc" , "16lf18345_g.lkr" , 0 },
488 { PROC_CLASS_PIC14E , "__16LF18346" , { "pic16lf18346" , "p16lf18346" , "16lf18346" }, 0xA275, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800A }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18346.inc" , "16lf18346_g.lkr" , 0 },
489 { PROC_CLASS_PIC14E , "__16LF18854" , { "pic16lf18854" , "p16lf18854" , "16lf18854" }, 0xA854, 2, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x21EF }, 0x0FFF, 0x00F0FF, 0x001000, { 0x001000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18854.inc" , "16lf18854_g.lkr" , 0 },
490 { PROC_CLASS_PIC14E , "__16LF18855" , { "pic16lf18855" , "p16lf18855" , "16lf18855" }, 0xA855, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18855.inc" , "16lf18855_g.lkr" , 0 },
491 { PROC_CLASS_PIC14E , "__16LF18856" , { "pic16lf18856" , "p16lf18856" , "16lf18856" }, 0xA856, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27EF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18856.inc" , "16lf18856_g.lkr" , 0 },
492 { PROC_CLASS_PIC14EX , "__16LF18857" , { "pic16lf18857" , "p16lf18857" , "16lf18857" }, 0xA857, 16, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x31CF }, 0x1FFF, 0x00F0FF, 0x008000, { 0x008000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18857.inc" , "16lf18857_g.lkr" , 0 },
493 { PROC_CLASS_PIC14E , "__16LF18875" , { "pic16lf18875" , "p16lf18875" , "16lf18875" }, 0xA875, 4, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x23EF }, 0x0FFF, 0x00F0FF, 0x002000, { 0x002000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18875.inc" , "16lf18875_g.lkr" , 0 },
494 { PROC_CLASS_PIC14E , "__16LF18876" , { "pic16lf18876" , "p16lf18876" , "16lf18876" }, 0xA876, 8, 32, 0x0F80, { 0x70, 0x7F }, -1, { 0x2000, 0x27CF }, 0x0FFF, 0x00F0FF, 0x004000, { 0x004000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18876.inc" , "16lf18876_g.lkr" , 0 },
495 { PROC_CLASS_PIC14EX , "__16LF18877" , { "pic16lf18877" , "p16lf18877" , "16lf18877" }, 0xA877, 16, 64, 0x1F80, { 0x70, 0x7F }, -1, { 0x2000, 0x25EF }, 0x1FEF, 0x00F0FF, 0x008000, { 0x008000, 0x00EFFF }, { 0x008000, 0x008003 }, { 0x008007, 0x00800B }, { 0x00F000, 0x00F0FF }, 0x3F80, "p16lf18877.inc" , "16lf18877_g.lkr" , 0 },
496 { PROC_CLASS_PIC16 , "__17C42" , { "pic17c42" , "p17c42" , "17c42" }, 0x7C42, 0, 4, 0x0300, { 0x18, 0x1F }, -1, { -1, -1 }, 0x03FF, 0x0007FF, 0x000800, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c42.inc" , "17c42_g.lkr" , 0 },
497 { PROC_CLASS_PIC16 , "__17C42A" , { "pic17c42a" , "p17c42a" , "17c42a" }, 0x742A, 0, 4, 0x0300, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x031F, 0x0007FF, 0x000800, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c42a.inc" , "17c42a_g.lkr" , 0 },
498 { PROC_CLASS_PIC16 , "__17C43" , { "pic17c43" , "p17c43" , "17c43" }, 0x7C43, 0, 4, 0x0300, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x031F, 0x000FFF, 0x001000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c43.inc" , "17c43_g.lkr" , 0 },
499 { PROC_CLASS_PIC16 , "__17C44" , { "pic17c44" , "p17c44" , "17c44" }, 0x7C44, 0, 4, 0x0300, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x031F, 0x001FFF, 0x002000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c44.inc" , "17c44_g.lkr" , 0 },
500 { PROC_CLASS_PIC16 , "__17C752" , { "pic17c752" , "p17c752" , "17c752" }, 0x7752, 0, 8, 0x0700, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x071F, 0x001FFF, 0x002000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c752.inc" , "17c752_g.lkr" , 0 },
501 { PROC_CLASS_PIC16 , "__17C756" , { "pic17c756" , "p17c756" , "17c756" }, 0x7756, 0, 8, 0x0700, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x071F, 0x003FFF, 0x004000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c756.inc" , "17c756_g.lkr" , 0 },
502 { PROC_CLASS_PIC16 , "__17C756A" , { "pic17c756a" , "p17c756a" , "17c756a" }, 0x756A, 0, 8, 0x0700, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x071F, 0x003FFF, 0x004000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c756a.inc" , "17c756a_g.lkr" , 0 },
503 { PROC_CLASS_PIC16 , "__17C762" , { "pic17c762" , "p17c762" , "17c762" }, 0x7762, 0, 9, 0x0F00, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x081F, 0x001FFF, 0x002000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c762.inc" , "17c762_g.lkr" , 0 },
504 { PROC_CLASS_PIC16 , "__17C766" , { "pic17c766" , "p17c766" , "17c766" }, 0x7766, 0, 9, 0x0F00, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x081F, 0x003FFF, 0x004000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17c766.inc" , "17c766_g.lkr" , 0 },
505 { PROC_CLASS_PIC16 , "__17CR42" , { "pic17cr42" , "p17cr42" , "17cr42" }, 0xE42A, 0, 4, 0x0300, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x031F, 0x0007FF, 0x000800, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17cr42.inc" , "17cr42_g.lkr" , 0 },
506 { PROC_CLASS_PIC16 , "__17CR43" , { "pic17cr43" , "p17cr43" , "17cr43" }, 0xEC43, 0, 4, 0x0300, { 0x1A, 0x1F }, -1, { -1, -1 }, 0x031F, 0x000FFF, 0x001000, { -1, -1 }, { -1, -1 }, { 0x00FE00, 0x00FE0F }, { -1, -1 }, 0x0000, "p17cr43.inc" , "17cr43_g.lkr" , 0 },
507 { PROC_CLASS_PIC16 , "__17CXX" , { "pic17cxx" , "p17cxx" , "17cxx" }, 0x7756, 0, 4, 0x0000, { 0x1A, 0x1F }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
508 { PROC_CLASS_PIC16E , "__18C242" , { "pic18c242" , "p18c242" , "18c242" }, 0x8242, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c242.inc" , "18c242_g.lkr" , 0 },
509 { PROC_CLASS_PIC16E , "__18C252" , { "pic18c252" , "p18c252" , "18c252" }, 0x8252, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c252.inc" , "18c252_g.lkr" , 0 },
510 { PROC_CLASS_PIC16E , "__18C442" , { "pic18c442" , "p18c442" , "18c442" }, 0x8442, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c442.inc" , "18c442_g.lkr" , 0 },
511 { PROC_CLASS_PIC16E , "__18C452" , { "pic18c452" , "p18c452" , "18c452" }, 0x8452, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c452.inc" , "18c452_g.lkr" , 0 },
512 { PROC_CLASS_PIC16E , "__18C601" , { "pic18c601" , "p18c601" , "18c601" }, 0x8601, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x03FFFF, 0x040000, { -1, -1 }, { -1, -1 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c601.inc" , "18c601_g.lkr" , 0 },
513 { PROC_CLASS_PIC16E , "__18C658" , { "pic18c658" , "p18c658" , "18c658" }, 0x8658, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c658.inc" , "18c658_g.lkr" , 0 },
514 { PROC_CLASS_PIC16E , "__18C801" , { "pic18c801" , "p18c801" , "18c801" }, 0x8801, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x1FFFFF, 0x200000, { -1, -1 }, { -1, -1 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c801.inc" , "18c801_g.lkr" , 0 },
515 { PROC_CLASS_PIC16E , "__18C858" , { "pic18c858" , "p18c858" , "18c858" }, 0x8858, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x300007 }, { -1, -1 }, 0x0000, "p18c858.inc" , "18c858_g.lkr" , 0 },
516 { PROC_CLASS_PIC16E , "__18CXX" , { "pic18cxx" , "p18cxx" , "18cxx" }, 0x8452, 0, 16, 0x0000, { 0x00, 0x7F }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { 0x200000, 0x200007 }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
517 { PROC_CLASS_PIC16E , "__18F13K22" , { "pic18f13k22" , "p18f13k22" , "18f13k22" }, 0xB132, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f13k22.inc" , "18f13k22_g.lkr" , 1 },
518 { PROC_CLASS_PIC16E , "__18F13K50" , { "pic18f13k50" , "p18f13k50" , "18f13k50" }, 0xA135, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f13k50.inc" , "18f13k50_g.lkr" , 1 },
519 { PROC_CLASS_PIC16E , "__18F14K22" , { "pic18f14k22" , "p18f14k22" , "18f14k22" }, 0xB142, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f14k22.inc" , "18f14k22_g.lkr" , 1 },
520 { PROC_CLASS_PIC16E , "__18F14K22LIN" , { "pic18f14k22lin" , "p18f14k22lin" , "18f14k22lin" }, 0xC142, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f14k22lin.inc" , "18f14k22lin_g.lkr" , 1 },
521 { PROC_CLASS_PIC16E , "__18F14K50" , { "pic18f14k50" , "p18f14k50" , "18f14k50" }, 0xA145, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f14k50.inc" , "18f14k50_g.lkr" , 1 },
522 { PROC_CLASS_PIC16E , "__18F23K20" , { "pic18f23k20" , "p18f23k20" , "18f23k20" }, 0xD320, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f23k20.inc" , "18f23k20_g.lkr" , 1 },
523 { PROC_CLASS_PIC16E , "__18F23K22" , { "pic18f23k22" , "p18f23k22" , "18f23k22" }, 0xD322, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f23k22.inc" , "18f23k22_g.lkr" , 1 },
524 { PROC_CLASS_PIC16E , "__18F24J10" , { "pic18f24j10" , "p18f24j10" , "18f24j10" }, 0xD410, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18f24j10.inc" , "18f24j10_g.lkr" , 3 },
525 { PROC_CLASS_PIC16E , "__18F24J11" , { "pic18f24j11" , "p18f24j11" , "18f24j11" }, 0xD411, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18f24j11.inc" , "18f24j11_g.lkr" , 3 },
526 { PROC_CLASS_PIC16E , "__18F24J50" , { "pic18f24j50" , "p18f24j50" , "18f24j50" }, 0xD450, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18f24j50.inc" , "18f24j50_g.lkr" , 3 },
527 { PROC_CLASS_PIC16E , "__18F24K20" , { "pic18f24k20" , "p18f24k20" , "18f24k20" }, 0xD420, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f24k20.inc" , "18f24k20_g.lkr" , 1 },
528 { PROC_CLASS_PIC16E , "__18F24K22" , { "pic18f24k22" , "p18f24k22" , "18f24k22" }, 0xD422, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f24k22.inc" , "18f24k22_g.lkr" , 1 },
529 { PROC_CLASS_PIC16E , "__18F24K40" , { "pic18f24k40" , "p18f24k40" , "18f24k40" }, 0x2440, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3100FF, 0x004000, { 0x004000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3100FF }, 0x0000, "p18f24k40.inc" , "18f24k40_g.lkr" , 1 },
530 { PROC_CLASS_PIC16E , "__18F24K50" , { "pic18f24k50" , "p18f24k50" , "18f24k50" }, 0xD451, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f24k50.inc" , "18f24k50_g.lkr" , 1 },
531 { PROC_CLASS_PIC16E , "__18F25J10" , { "pic18f25j10" , "p18f25j10" , "18f25j10" }, 0xD510, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f25j10.inc" , "18f25j10_g.lkr" , 3 },
532 { PROC_CLASS_PIC16E , "__18F25J11" , { "pic18f25j11" , "p18f25j11" , "18f25j11" }, 0xD511, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18f25j11.inc" , "18f25j11_g.lkr" , 3 },
533 { PROC_CLASS_PIC16E , "__18F25J50" , { "pic18f25j50" , "p18f25j50" , "18f25j50" }, 0xD550, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18f25j50.inc" , "18f25j50_g.lkr" , 3 },
534 { PROC_CLASS_PIC16E , "__18F25K20" , { "pic18f25k20" , "p18f25k20" , "18f25k20" }, 0xD520, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f25k20.inc" , "18f25k20_g.lkr" , 1 },
535 { PROC_CLASS_PIC16E , "__18F25K22" , { "pic18f25k22" , "p18f25k22" , "18f25k22" }, 0xD522, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f25k22.inc" , "18f25k22_g.lkr" , 1 },
536 { PROC_CLASS_PIC16E , "__18F25K40" , { "pic18f25k40" , "p18f25k40" , "18f25k40" }, 0x2540, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3100FF, 0x008000, { 0x008000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3100FF }, 0x0000, "p18f25k40.inc" , "18f25k40_g.lkr" , 1 },
537 { PROC_CLASS_PIC16E , "__18F25K50" , { "pic18f25k50" , "p18f25k50" , "18f25k50" }, 0xD551, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f25k50.inc" , "18f25k50_g.lkr" , 1 },
538 { PROC_CLASS_PIC16E , "__18F25K80" , { "pic18f25k80" , "p18f25k80" , "18f25k80" }, 0xA580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f25k80.inc" , "18f25k80_g.lkr" , 1 },
539 { PROC_CLASS_PIC16E , "__18F26J11" , { "pic18f26j11" , "p18f26j11" , "18f26j11" }, 0xD611, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f26j11.inc" , "18f26j11_g.lkr" , 3 },
540 { PROC_CLASS_PIC16E , "__18F26J13" , { "pic18f26j13" , "p18f26j13" , "18f26j13" }, 0xD616, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f26j13.inc" , "18f26j13_g.lkr" , 3 },
541 { PROC_CLASS_PIC16E , "__18F26J50" , { "pic18f26j50" , "p18f26j50" , "18f26j50" }, 0xD650, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f26j50.inc" , "18f26j50_g.lkr" , 3 },
542 { PROC_CLASS_PIC16E , "__18F26J53" , { "pic18f26j53" , "p18f26j53" , "18f26j53" }, 0xD655, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f26j53.inc" , "18f26j53_g.lkr" , 3 },
543 { PROC_CLASS_PIC16E , "__18F26K20" , { "pic18f26k20" , "p18f26k20" , "18f26k20" }, 0xD620, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f26k20.inc" , "18f26k20_g.lkr" , 1 },
544 { PROC_CLASS_PIC16E , "__18F26K22" , { "pic18f26k22" , "p18f26k22" , "18f26k22" }, 0xD622, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f26k22.inc" , "18f26k22_g.lkr" , 1 },
545 { PROC_CLASS_PIC16E , "__18F26K40" , { "pic18f26k40" , "p18f26k40" , "18f26k40" }, 0x2640, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x010000, { 0x010000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18f26k40.inc" , "18f26k40_g.lkr" , 1 },
546 { PROC_CLASS_PIC16E , "__18F26K80" , { "pic18f26k80" , "p18f26k80" , "18f26k80" }, 0xA680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f26k80.inc" , "18f26k80_g.lkr" , 1 },
547 { PROC_CLASS_PIC16E , "__18F27J13" , { "pic18f27j13" , "p18f27j13" , "18f27j13" }, 0xD711, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f27j13.inc" , "18f27j13_g.lkr" , 3 },
548 { PROC_CLASS_PIC16E , "__18F27J53" , { "pic18f27j53" , "p18f27j53" , "18f27j53" }, 0xD750, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f27j53.inc" , "18f27j53_g.lkr" , 3 },
549 { PROC_CLASS_PIC16E , "__18F27K40" , { "pic18f27k40" , "p18f27k40" , "18f27k40" }, 0x2740, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x020000, { 0x020000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18f27k40.inc" , "18f27k40_g.lkr" , 1 },
550 { PROC_CLASS_PIC16E , "__18F43K20" , { "pic18f43k20" , "p18f43k20" , "18f43k20" }, 0xE320, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f43k20.inc" , "18f43k20_g.lkr" , 1 },
551 { PROC_CLASS_PIC16E , "__18F43K22" , { "pic18f43k22" , "p18f43k22" , "18f43k22" }, 0xE322, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f43k22.inc" , "18f43k22_g.lkr" , 1 },
552 { PROC_CLASS_PIC16E , "__18F44J10" , { "pic18f44j10" , "p18f44j10" , "18f44j10" }, 0xE410, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18f44j10.inc" , "18f44j10_g.lkr" , 3 },
553 { PROC_CLASS_PIC16E , "__18F44J11" , { "pic18f44j11" , "p18f44j11" , "18f44j11" }, 0xE411, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18f44j11.inc" , "18f44j11_g.lkr" , 3 },
554 { PROC_CLASS_PIC16E , "__18F44J50" , { "pic18f44j50" , "p18f44j50" , "18f44j50" }, 0xE450, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18f44j50.inc" , "18f44j50_g.lkr" , 3 },
555 { PROC_CLASS_PIC16E , "__18F44K20" , { "pic18f44k20" , "p18f44k20" , "18f44k20" }, 0xE420, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f44k20.inc" , "18f44k20_g.lkr" , 1 },
556 { PROC_CLASS_PIC16E , "__18F44K22" , { "pic18f44k22" , "p18f44k22" , "18f44k22" }, 0xE422, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f44k22.inc" , "18f44k22_g.lkr" , 1 },
557 { PROC_CLASS_PIC16E , "__18F45J10" , { "pic18f45j10" , "p18f45j10" , "18f45j10" }, 0xE510, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f45j10.inc" , "18f45j10_g.lkr" , 3 },
558 { PROC_CLASS_PIC16E , "__18F45J11" , { "pic18f45j11" , "p18f45j11" , "18f45j11" }, 0xE511, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18f45j11.inc" , "18f45j11_g.lkr" , 3 },
559 { PROC_CLASS_PIC16E , "__18F45J50" , { "pic18f45j50" , "p18f45j50" , "18f45j50" }, 0xE550, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18f45j50.inc" , "18f45j50_g.lkr" , 3 },
560 { PROC_CLASS_PIC16E , "__18F45K20" , { "pic18f45k20" , "p18f45k20" , "18f45k20" }, 0xE520, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f45k20.inc" , "18f45k20_g.lkr" , 1 },
561 { PROC_CLASS_PIC16E , "__18F45K22" , { "pic18f45k22" , "p18f45k22" , "18f45k22" }, 0xE522, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f45k22.inc" , "18f45k22_g.lkr" , 1 },
562 { PROC_CLASS_PIC16E , "__18F45K40" , { "pic18f45k40" , "p18f45k40" , "18f45k40" }, 0x4540, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3100FF, 0x008000, { 0x008000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3100FF }, 0x0000, "p18f45k40.inc" , "18f45k40_g.lkr" , 1 },
563 { PROC_CLASS_PIC16E , "__18F45K50" , { "pic18f45k50" , "p18f45k50" , "18f45k50" }, 0xE551, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f45k50.inc" , "18f45k50_g.lkr" , 1 },
564 { PROC_CLASS_PIC16E , "__18F45K80" , { "pic18f45k80" , "p18f45k80" , "18f45k80" }, 0xB580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f45k80.inc" , "18f45k80_g.lkr" , 1 },
565 { PROC_CLASS_PIC16E , "__18F46J11" , { "pic18f46j11" , "p18f46j11" , "18f46j11" }, 0xE611, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f46j11.inc" , "18f46j11_g.lkr" , 3 },
566 { PROC_CLASS_PIC16E , "__18F46J13" , { "pic18f46j13" , "p18f46j13" , "18f46j13" }, 0xE616, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f46j13.inc" , "18f46j13_g.lkr" , 3 },
567 { PROC_CLASS_PIC16E , "__18F46J50" , { "pic18f46j50" , "p18f46j50" , "18f46j50" }, 0xE650, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f46j50.inc" , "18f46j50_g.lkr" , 3 },
568 { PROC_CLASS_PIC16E , "__18F46J53" , { "pic18f46j53" , "p18f46j53" , "18f46j53" }, 0xE655, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f46j53.inc" , "18f46j53_g.lkr" , 3 },
569 { PROC_CLASS_PIC16E , "__18F46K20" , { "pic18f46k20" , "p18f46k20" , "18f46k20" }, 0xE620, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f46k20.inc" , "18f46k20_g.lkr" , 1 },
570 { PROC_CLASS_PIC16E , "__18F46K22" , { "pic18f46k22" , "p18f46k22" , "18f46k22" }, 0xE622, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f46k22.inc" , "18f46k22_g.lkr" , 1 },
571 { PROC_CLASS_PIC16E , "__18F46K40" , { "pic18f46k40" , "p18f46k40" , "18f46k40" }, 0x4640, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x010000, { 0x010000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18f46k40.inc" , "18f46k40_g.lkr" , 1 },
572 { PROC_CLASS_PIC16E , "__18F46K80" , { "pic18f46k80" , "p18f46k80" , "18f46k80" }, 0xB680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f46k80.inc" , "18f46k80_g.lkr" , 1 },
573 { PROC_CLASS_PIC16E , "__18F47J13" , { "pic18f47j13" , "p18f47j13" , "18f47j13" }, 0xE711, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f47j13.inc" , "18f47j13_g.lkr" , 3 },
574 { PROC_CLASS_PIC16E , "__18F47J53" , { "pic18f47j53" , "p18f47j53" , "18f47j53" }, 0xE750, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f47j53.inc" , "18f47j53_g.lkr" , 3 },
575 { PROC_CLASS_PIC16E , "__18F47K40" , { "pic18f47k40" , "p18f47k40" , "18f47k40" }, 0x4740, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x020000, { 0x020000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18f47k40.inc" , "18f47k40_g.lkr" , 1 },
576 { PROC_CLASS_PIC16E , "__18F63J11" , { "pic18f63j11" , "p18f63j11" , "18f63j11" }, 0x6311, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FF7, 0x001FF8, { -1, -1 }, { -1, -1 }, { 0x001FF8, 0x001FFD }, { -1, -1 }, 0x0000, "p18f63j11.inc" , "18f63j11_g.lkr" , 3 },
577 { PROC_CLASS_PIC16E , "__18F63J90" , { "pic18f63j90" , "p18f63j90" , "18f63j90" }, 0xB390, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FF7, 0x001FF8, { -1, -1 }, { -1, -1 }, { 0x001FF8, 0x001FFD }, { -1, -1 }, 0x0000, "p18f63j90.inc" , "18f63j90_g.lkr" , 3 },
578 { PROC_CLASS_PIC16E , "__18F64J11" , { "pic18f64j11" , "p18f64j11" , "18f64j11" }, 0x6411, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18f64j11.inc" , "18f64j11_g.lkr" , 3 },
579 { PROC_CLASS_PIC16E , "__18F64J15" , { "pic18f64j15" , "p18f64j15" , "18f64j15" }, 0xB415, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, "p18f64j15.inc" , "18f64j15_g.lkr" , 3 }, /* not documented by Microchip, added in svn rev. #378, see http://osdir.com/ml/hardware.microcontrollers.gnupic/2008-05/msg00013.html */
580 { PROC_CLASS_PIC16E , "__18F64J90" , { "pic18f64j90" , "p18f64j90" , "18f64j90" }, 0xB490, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18f64j90.inc" , "18f64j90_g.lkr" , 3 },
581 { PROC_CLASS_PIC16E , "__18F65J10" , { "pic18f65j10" , "p18f65j10" , "18f65j10" }, 0xB510, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f65j10.inc" , "18f65j10_g.lkr" , 3 },
582 { PROC_CLASS_PIC16E , "__18F65J11" , { "pic18f65j11" , "p18f65j11" , "18f65j11" }, 0x6511, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f65j11.inc" , "18f65j11_g.lkr" , 3 },
583 { PROC_CLASS_PIC16E , "__18F65J15" , { "pic18f65j15" , "p18f65j15" , "18f65j15" }, 0xB515, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00BFF7, 0x00BFF8, { -1, -1 }, { -1, -1 }, { 0x00BFF8, 0x00BFFD }, { -1, -1 }, 0x0000, "p18f65j15.inc" , "18f65j15_g.lkr" , 3 },
584 { PROC_CLASS_PIC16E , "__18F65J50" , { "pic18f65j50" , "p18f65j50" , "18f65j50" }, 0xB550, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f65j50.inc" , "18f65j50_g.lkr" , 3 },
585 { PROC_CLASS_PIC16E , "__18F65J90" , { "pic18f65j90" , "p18f65j90" , "18f65j90" }, 0xB590, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f65j90.inc" , "18f65j90_g.lkr" , 3 },
586 { PROC_CLASS_PIC16E , "__18F65J94" , { "pic18f65j94" , "p18f65j94" , "18f65j94" }, 0x6594, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FEF, 0x007FF0, { -1, -1 }, { -1, -1 }, { 0x007FF0, 0x007FFF }, { -1, -1 }, 0x0000, "p18f65j94.inc" , "18f65j94_g.lkr" , 3 },
587 { PROC_CLASS_PIC16E , "__18F65K22" , { "pic18f65k22" , "p18f65k22" , "18f65k22" }, 0x6522, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f65k22.inc" , "18f65k22_g.lkr" , 1 },
588 { PROC_CLASS_PIC16E , "__18F65K40" , { "pic18f65k40" , "p18f65k40" , "18f65k40" }, 0xA26F, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x008000, { 0x008000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18f65k40.inc" , "18f65k40_g.lkr" , 1 },
589 { PROC_CLASS_PIC16E , "__18F65K80" , { "pic18f65k80" , "p18f65k80" , "18f65k80" }, 0xC580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f65k80.inc" , "18f65k80_g.lkr" , 1 },
590 { PROC_CLASS_PIC16E , "__18F65K90" , { "pic18f65k90" , "p18f65k90" , "18f65k90" }, 0xB591, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f65k90.inc" , "18f65k90_g.lkr" , 1 },
591 { PROC_CLASS_PIC16E , "__18F66J10" , { "pic18f66j10" , "p18f66j10" , "18f66j10" }, 0xB610, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f66j10.inc" , "18f66j10_g.lkr" , 3 },
592 { PROC_CLASS_PIC16E , "__18F66J11" , { "pic18f66j11" , "p18f66j11" , "18f66j11" }, 0xB611, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f66j11.inc" , "18f66j11_g.lkr" , 3 },
593 { PROC_CLASS_PIC16E , "__18F66J15" , { "pic18f66j15" , "p18f66j15" , "18f66j15" }, 0xB615, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f66j15.inc" , "18f66j15_g.lkr" , 3 },
594 { PROC_CLASS_PIC16E , "__18F66J16" , { "pic18f66j16" , "p18f66j16" , "18f66j16" }, 0xB616, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f66j16.inc" , "18f66j16_g.lkr" , 3 },
595 { PROC_CLASS_PIC16E , "__18F66J50" , { "pic18f66j50" , "p18f66j50" , "18f66j50" }, 0xB650, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f66j50.inc" , "18f66j50_g.lkr" , 3 },
596 { PROC_CLASS_PIC16E , "__18F66J55" , { "pic18f66j55" , "p18f66j55" , "18f66j55" }, 0xB655, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f66j55.inc" , "18f66j55_g.lkr" , 3 },
597 { PROC_CLASS_PIC16E , "__18F66J60" , { "pic18f66j60" , "p18f66j60" , "18f66j60" }, 0xB660, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f66j60.inc" , "18f66j60_g.lkr" , 3 },
598 { PROC_CLASS_PIC16E , "__18F66J65" , { "pic18f66j65" , "p18f66j65" , "18f66j65" }, 0xB665, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f66j65.inc" , "18f66j65_g.lkr" , 3 },
599 { PROC_CLASS_PIC16E , "__18F66J90" , { "pic18f66j90" , "p18f66j90" , "18f66j90" }, 0xB690, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f66j90.inc" , "18f66j90_g.lkr" , 3 },
600 { PROC_CLASS_PIC16E , "__18F66J93" , { "pic18f66j93" , "p18f66j93" , "18f66j93" }, 0x6693, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f66j93.inc" , "18f66j93_g.lkr" , 3 },
601 { PROC_CLASS_PIC16E , "__18F66J94" , { "pic18f66j94" , "p18f66j94" , "18f66j94" }, 0x6694, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFEF, 0x00FFF0, { -1, -1 }, { -1, -1 }, { 0x00FFF0, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f66j94.inc" , "18f66j94_g.lkr" , 3 },
602 { PROC_CLASS_PIC16E , "__18F66J99" , { "pic18f66j99" , "p18f66j99" , "18f66j99" }, 0x6699, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FEF, 0x017FF0, { -1, -1 }, { -1, -1 }, { 0x017FF0, 0x017FFF }, { -1, -1 }, 0x0000, "p18f66j99.inc" , "18f66j99_g.lkr" , 3 },
603 { PROC_CLASS_PIC16E , "__18F66K22" , { "pic18f66k22" , "p18f66k22" , "18f66k22" }, 0xB622, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f66k22.inc" , "18f66k22_g.lkr" , 1 },
604 { PROC_CLASS_PIC16E , "__18F66K40" , { "pic18f66k40" , "p18f66k40" , "18f66k40" }, 0x6640, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x010000, { 0x010000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18f66k40.inc" , "18f66k40_g.lkr" , 1 },
605 { PROC_CLASS_PIC16E , "__18F66K80" , { "pic18f66k80" , "p18f66k80" , "18f66k80" }, 0xC680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f66k80.inc" , "18f66k80_g.lkr" , 1 },
606 { PROC_CLASS_PIC16E , "__18F66K90" , { "pic18f66k90" , "p18f66k90" , "18f66k90" }, 0xB691, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f66k90.inc" , "18f66k90_g.lkr" , 1 },
607 { PROC_CLASS_PIC16E , "__18F67J10" , { "pic18f67j10" , "p18f67j10" , "18f67j10" }, 0xB710, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f67j10.inc" , "18f67j10_g.lkr" , 3 },
608 { PROC_CLASS_PIC16E , "__18F67J11" , { "pic18f67j11" , "p18f67j11" , "18f67j11" }, 0xB711, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f67j11.inc" , "18f67j11_g.lkr" , 3 },
609 { PROC_CLASS_PIC16E , "__18F67J50" , { "pic18f67j50" , "p18f67j50" , "18f67j50" }, 0xB750, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f67j50.inc" , "18f67j50_g.lkr" , 3 },
610 { PROC_CLASS_PIC16E , "__18F67J60" , { "pic18f67j60" , "p18f67j60" , "18f67j60" }, 0xB760, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f67j60.inc" , "18f67j60_g.lkr" , 3 },
611 { PROC_CLASS_PIC16E , "__18F67J90" , { "pic18f67j90" , "p18f67j90" , "18f67j90" }, 0x6790, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f67j90.inc" , "18f67j90_g.lkr" , 3 },
612 { PROC_CLASS_PIC16E , "__18F67J93" , { "pic18f67j93" , "p18f67j93" , "18f67j93" }, 0x6793, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f67j93.inc" , "18f67j93_g.lkr" , 3 },
613 { PROC_CLASS_PIC16E , "__18F67J94" , { "pic18f67j94" , "p18f67j94" , "18f67j94" }, 0x6794, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFEF, 0x01FFF0, { -1, -1 }, { -1, -1 }, { 0x01FFF0, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f67j94.inc" , "18f67j94_g.lkr" , 3 },
614 { PROC_CLASS_PIC16E , "__18F67K22" , { "pic18f67k22" , "p18f67k22" , "18f67k22" }, 0x6722, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f67k22.inc" , "18f67k22_g.lkr" , 1 },
615 { PROC_CLASS_PIC16E , "__18F67K40" , { "pic18f67k40" , "p18f67k40" , "18f67k40" }, 0x6740, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x020000, { 0x020000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18f67k40.inc" , "18f67k40_g.lkr" , 1 },
616 { PROC_CLASS_PIC16E , "__18F67K90" , { "pic18f67k90" , "p18f67k90" , "18f67k90" }, 0xB790, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f67k90.inc" , "18f67k90_g.lkr" , 1 },
617 { PROC_CLASS_PIC16E , "__18F83J11" , { "pic18f83j11" , "p18f83j11" , "18f83j11" }, 0x8311, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FF7, 0x001FF8, { -1, -1 }, { -1, -1 }, { 0x001FF8, 0x001FFD }, { -1, -1 }, 0x0000, "p18f83j11.inc" , "18f83j11_g.lkr" , 3 },
618 { PROC_CLASS_PIC16E , "__18F83J90" , { "pic18f83j90" , "p18f83j90" , "18f83j90" }, 0xC390, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FF7, 0x001FF8, { -1, -1 }, { -1, -1 }, { 0x001FF8, 0x001FFD }, { -1, -1 }, 0x0000, "p18f83j90.inc" , "18f83j90_g.lkr" , 3 },
619 { PROC_CLASS_PIC16E , "__18F84J11" , { "pic18f84j11" , "p18f84j11" , "18f84j11" }, 0x8411, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18f84j11.inc" , "18f84j11_g.lkr" , 3 },
620 { PROC_CLASS_PIC16E , "__18F84J15" , { "pic18f84j15" , "p18f84j15" , "18f84j15" }, 0xC415, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, "p18f84j15.inc" , "18f84j15_g.lkr" , 3 }, /* not documented by Microchip, added in svn rev. #378, see http://osdir.com/ml/hardware.microcontrollers.gnupic/2008-05/msg00013.html */
621 { PROC_CLASS_PIC16E , "__18F84J90" , { "pic18f84j90" , "p18f84j90" , "18f84j90" }, 0xC490, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18f84j90.inc" , "18f84j90_g.lkr" , 3 },
622 { PROC_CLASS_PIC16E , "__18F85J10" , { "pic18f85j10" , "p18f85j10" , "18f85j10" }, 0xC510, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f85j10.inc" , "18f85j10_g.lkr" , 3 },
623 { PROC_CLASS_PIC16E , "__18F85J11" , { "pic18f85j11" , "p18f85j11" , "18f85j11" }, 0x8511, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f85j11.inc" , "18f85j11_g.lkr" , 3 },
624 { PROC_CLASS_PIC16E , "__18F85J15" , { "pic18f85j15" , "p18f85j15" , "18f85j15" }, 0xC515, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00BFF7, 0x00BFF8, { -1, -1 }, { -1, -1 }, { 0x00BFF8, 0x00BFFD }, { -1, -1 }, 0x0000, "p18f85j15.inc" , "18f85j15_g.lkr" , 3 },
625 { PROC_CLASS_PIC16E , "__18F85J50" , { "pic18f85j50" , "p18f85j50" , "18f85j50" }, 0xC550, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f85j50.inc" , "18f85j50_g.lkr" , 3 },
626 { PROC_CLASS_PIC16E , "__18F85J90" , { "pic18f85j90" , "p18f85j90" , "18f85j90" }, 0xC590, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18f85j90.inc" , "18f85j90_g.lkr" , 3 },
627 { PROC_CLASS_PIC16E , "__18F85J94" , { "pic18f85j94" , "p18f85j94" , "18f85j94" }, 0x8594, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FEF, 0x007FF0, { -1, -1 }, { -1, -1 }, { 0x007FF0, 0x007FFF }, { -1, -1 }, 0x0000, "p18f85j94.inc" , "18f85j94_g.lkr" , 3 },
628 { PROC_CLASS_PIC16E , "__18F85K22" , { "pic18f85k22" , "p18f85k22" , "18f85k22" }, 0x8522, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f85k22.inc" , "18f85k22_g.lkr" , 1 },
629 { PROC_CLASS_PIC16E , "__18F85K90" , { "pic18f85k90" , "p18f85k90" , "18f85k90" }, 0xC591, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f85k90.inc" , "18f85k90_g.lkr" , 1 },
630 { PROC_CLASS_PIC16E , "__18F86J10" , { "pic18f86j10" , "p18f86j10" , "18f86j10" }, 0xC610, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f86j10.inc" , "18f86j10_g.lkr" , 3 },
631 { PROC_CLASS_PIC16E , "__18F86J11" , { "pic18f86j11" , "p18f86j11" , "18f86j11" }, 0xC611, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f86j11.inc" , "18f86j11_g.lkr" , 3 },
632 { PROC_CLASS_PIC16E , "__18F86J15" , { "pic18f86j15" , "p18f86j15" , "18f86j15" }, 0xC615, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f86j15.inc" , "18f86j15_g.lkr" , 3 },
633 { PROC_CLASS_PIC16E , "__18F86J16" , { "pic18f86j16" , "p18f86j16" , "18f86j16" }, 0xC616, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f86j16.inc" , "18f86j16_g.lkr" , 3 },
634 { PROC_CLASS_PIC16E , "__18F86J50" , { "pic18f86j50" , "p18f86j50" , "18f86j50" }, 0xC650, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f86j50.inc" , "18f86j50_g.lkr" , 3 },
635 { PROC_CLASS_PIC16E , "__18F86J55" , { "pic18f86j55" , "p18f86j55" , "18f86j55" }, 0xC655, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f86j55.inc" , "18f86j55_g.lkr" , 3 },
636 { PROC_CLASS_PIC16E , "__18F86J60" , { "pic18f86j60" , "p18f86j60" , "18f86j60" }, 0xC660, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f86j60.inc" , "18f86j60_g.lkr" , 3 },
637 { PROC_CLASS_PIC16E , "__18F86J65" , { "pic18f86j65" , "p18f86j65" , "18f86j65" }, 0xC665, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f86j65.inc" , "18f86j65_g.lkr" , 3 },
638 { PROC_CLASS_PIC16E , "__18F86J72" , { "pic18f86j72" , "p18f86j72" , "18f86j72" }, 0x8672, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f86j72.inc" , "18f86j72_g.lkr" , 3 },
639 { PROC_CLASS_PIC16E , "__18F86J90" , { "pic18f86j90" , "p18f86j90" , "18f86j90" }, 0x8690, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f86j90.inc" , "18f86j90_g.lkr" , 3 },
640 { PROC_CLASS_PIC16E , "__18F86J93" , { "pic18f86j93" , "p18f86j93" , "18f86j93" }, 0x8693, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f86j93.inc" , "18f86j93_g.lkr" , 3 },
641 { PROC_CLASS_PIC16E , "__18F86J94" , { "pic18f86j94" , "p18f86j94" , "18f86j94" }, 0x8694, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFEF, 0x00FFF0, { -1, -1 }, { -1, -1 }, { 0x00FFF0, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f86j94.inc" , "18f86j94_g.lkr" , 3 },
642 { PROC_CLASS_PIC16E , "__18F86J99" , { "pic18f86j99" , "p18f86j99" , "18f86j99" }, 0x8699, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FEF, 0x017FF0, { -1, -1 }, { -1, -1 }, { 0x017FF0, 0x017FFF }, { -1, -1 }, 0x0000, "p18f86j99.inc" , "18f86j99_g.lkr" , 3 },
643 { PROC_CLASS_PIC16E , "__18F86K22" , { "pic18f86k22" , "p18f86k22" , "18f86k22" }, 0xC622, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f86k22.inc" , "18f86k22_g.lkr" , 1 },
644 { PROC_CLASS_PIC16E , "__18F86K90" , { "pic18f86k90" , "p18f86k90" , "18f86k90" }, 0xC690, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f86k90.inc" , "18f86k90_g.lkr" , 1 },
645 { PROC_CLASS_PIC16E , "__18F87J10" , { "pic18f87j10" , "p18f87j10" , "18f87j10" }, 0xC710, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f87j10.inc" , "18f87j10_g.lkr" , 3 },
646 { PROC_CLASS_PIC16E , "__18F87J11" , { "pic18f87j11" , "p18f87j11" , "18f87j11" }, 0xC711, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f87j11.inc" , "18f87j11_g.lkr" , 3 },
647 { PROC_CLASS_PIC16E , "__18F87J50" , { "pic18f87j50" , "p18f87j50" , "18f87j50" }, 0xC750, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f87j50.inc" , "18f87j50_g.lkr" , 3 },
648 { PROC_CLASS_PIC16E , "__18F87J60" , { "pic18f87j60" , "p18f87j60" , "18f87j60" }, 0xC760, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f87j60.inc" , "18f87j60_g.lkr" , 3 },
649 { PROC_CLASS_PIC16E , "__18F87J72" , { "pic18f87j72" , "p18f87j72" , "18f87j72" }, 0x8772, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f87j72.inc" , "18f87j72_g.lkr" , 3 },
650 { PROC_CLASS_PIC16E , "__18F87J90" , { "pic18f87j90" , "p18f87j90" , "18f87j90" }, 0x8790, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f87j90.inc" , "18f87j90_g.lkr" , 3 },
651 { PROC_CLASS_PIC16E , "__18F87J93" , { "pic18f87j93" , "p18f87j93" , "18f87j93" }, 0x8793, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f87j93.inc" , "18f87j93_g.lkr" , 3 },
652 { PROC_CLASS_PIC16E , "__18F87J94" , { "pic18f87j94" , "p18f87j94" , "18f87j94" }, 0x8794, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFEF, 0x01FFF0, { -1, -1 }, { -1, -1 }, { 0x01FFF0, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f87j94.inc" , "18f87j94_g.lkr" , 3 },
653 { PROC_CLASS_PIC16E , "__18F87K22" , { "pic18f87k22" , "p18f87k22" , "18f87k22" }, 0x8722, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f87k22.inc" , "18f87k22_g.lkr" , 1 },
654 { PROC_CLASS_PIC16E , "__18F87K90" , { "pic18f87k90" , "p18f87k90" , "18f87k90" }, 0xC790, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f87k90.inc" , "18f87k90_g.lkr" , 1 },
655 { PROC_CLASS_PIC16E , "__18F95J94" , { "pic18f95j94" , "p18f95j94" , "18f95j94" }, 0x9594, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FEF, 0x007FF0, { -1, -1 }, { -1, -1 }, { 0x007FF0, 0x007FFF }, { -1, -1 }, 0x0000, "p18f95j94.inc" , "18f95j94_g.lkr" , 3 },
656 { PROC_CLASS_PIC16E , "__18F96J60" , { "pic18f96j60" , "p18f96j60" , "18f96j60" }, 0xD660, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFD }, { -1, -1 }, 0x0000, "p18f96j60.inc" , "18f96j60_g.lkr" , 3 },
657 { PROC_CLASS_PIC16E , "__18F96J65" , { "pic18f96j65" , "p18f96j65" , "18f96j65" }, 0xD665, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FF7, 0x017FF8, { -1, -1 }, { -1, -1 }, { 0x017FF8, 0x017FFD }, { -1, -1 }, 0x0000, "p18f96j65.inc" , "18f96j65_g.lkr" , 3 },
658 { PROC_CLASS_PIC16E , "__18F96J94" , { "pic18f96j94" , "p18f96j94" , "18f96j94" }, 0x9694, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFEF, 0x00FFF0, { -1, -1 }, { -1, -1 }, { 0x00FFF0, 0x00FFFF }, { -1, -1 }, 0x0000, "p18f96j94.inc" , "18f96j94_g.lkr" , 3 },
659 { PROC_CLASS_PIC16E , "__18F96J99" , { "pic18f96j99" , "p18f96j99" , "18f96j99" }, 0x9699, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x017FEF, 0x017FF0, { -1, -1 }, { -1, -1 }, { 0x017FF0, 0x017FFF }, { -1, -1 }, 0x0000, "p18f96j99.inc" , "18f96j99_g.lkr" , 3 },
660 { PROC_CLASS_PIC16E , "__18F97J60" , { "pic18f97j60" , "p18f97j60" , "18f97j60" }, 0xD760, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFD }, { -1, -1 }, 0x0000, "p18f97j60.inc" , "18f97j60_g.lkr" , 3 },
661 { PROC_CLASS_PIC16E , "__18F97J94" , { "pic18f97j94" , "p18f97j94" , "18f97j94" }, 0x9794, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFEF, 0x01FFF0, { -1, -1 }, { -1, -1 }, { 0x01FFF0, 0x01FFFF }, { -1, -1 }, 0x0000, "p18f97j94.inc" , "18f97j94_g.lkr" , 3 },
662 { PROC_CLASS_PIC16E , "__18F242" , { "pic18f242" , "p18f242" , "18f242" }, 0x242F, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f242.inc" , "18f242_g.lkr" , 0 },
663 { PROC_CLASS_PIC16E , "__18F248" , { "pic18f248" , "p18f248" , "18f248" }, 0x8248, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f248.inc" , "18f248_g.lkr" , 0 },
664 { PROC_CLASS_PIC16E , "__18F252" , { "pic18f252" , "p18f252" , "18f252" }, 0x252F, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f252.inc" , "18f252_g.lkr" , 0 },
665 { PROC_CLASS_PIC16E , "__18F258" , { "pic18f258" , "p18f258" , "18f258" }, 0x8258, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f258.inc" , "18f258_g.lkr" , 0 },
666 { PROC_CLASS_PIC16E , "__18F442" , { "pic18f442" , "p18f442" , "18f442" }, 0x442F, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f442.inc" , "18f442_g.lkr" , 0 },
667 { PROC_CLASS_PIC16E , "__18F448" , { "pic18f448" , "p18f448" , "18f448" }, 0x8448, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f448.inc" , "18f448_g.lkr" , 0 },
668 { PROC_CLASS_PIC16E , "__18F452" , { "pic18f452" , "p18f452" , "18f452" }, 0x452F, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f452.inc" , "18f452_g.lkr" , 0 },
669 { PROC_CLASS_PIC16E , "__18F458" , { "pic18f458" , "p18f458" , "18f458" }, 0x8458, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f458.inc" , "18f458_g.lkr" , 0 },
670 { PROC_CLASS_PIC16E , "__18F1220" , { "pic18f1220" , "p18f1220" , "18f1220" }, 0xA122, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f1220.inc" , "18f1220_g.lkr" , 0 },
671 { PROC_CLASS_PIC16E , "__18F1230" , { "pic18f1230" , "p18f1230" , "18f1230" }, 0x1230, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF0007F, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF0007F }, 0x0000, "p18f1230.inc" , "18f1230_g.lkr" , 1 },
672 { PROC_CLASS_PIC16E , "__18F1320" , { "pic18f1320" , "p18f1320" , "18f1320" }, 0xA132, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f1320.inc" , "18f1320_g.lkr" , 0 },
673 { PROC_CLASS_PIC16E , "__18F1330" , { "pic18f1330" , "p18f1330" , "18f1330" }, 0x1330, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF0007F, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF0007F }, 0x0000, "p18f1330.inc" , "18f1330_g.lkr" , 1 },
674 { PROC_CLASS_PIC16E , "__18F2220" , { "pic18f2220" , "p18f2220" , "18f2220" }, 0xA222, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2220.inc" , "18f2220_g.lkr" , 0 },
675 { PROC_CLASS_PIC16E , "__18F2221" , { "pic18f2221" , "p18f2221" , "18f2221" }, 0x2221, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2221.inc" , "18f2221_g.lkr" , 1 },
676 { PROC_CLASS_PIC16E , "__18F2320" , { "pic18f2320" , "p18f2320" , "18f2320" }, 0xA232, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2320.inc" , "18f2320_g.lkr" , 0 },
677 { PROC_CLASS_PIC16E , "__18F2321" , { "pic18f2321" , "p18f2321" , "18f2321" }, 0x2321, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2321.inc" , "18f2321_g.lkr" , 1 },
678 { PROC_CLASS_PIC16E , "__18F2331" , { "pic18f2331" , "p18f2331" , "18f2331" }, 0x2331, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2331.inc" , "18f2331_g.lkr" , 0 },
679 { PROC_CLASS_PIC16E , "__18F2410" , { "pic18f2410" , "p18f2410" , "18f2410" }, 0x2410, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f2410.inc" , "18f2410_g.lkr" , 1 },
680 { PROC_CLASS_PIC16E , "__18F2420" , { "pic18f2420" , "p18f2420" , "18f2420" }, 0x2420, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2420.inc" , "18f2420_g.lkr" , 1 },
681 { PROC_CLASS_PIC16E , "__18F2423" , { "pic18f2423" , "p18f2423" , "18f2423" }, 0x2423, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2423.inc" , "18f2423_g.lkr" , 1 },
682 { PROC_CLASS_PIC16E , "__18F2431" , { "pic18f2431" , "p18f2431" , "18f2431" }, 0x2431, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2431.inc" , "18f2431_g.lkr" , 0 },
683 { PROC_CLASS_PIC16E , "__18F2439" , { "pic18f2439" , "p18f2439" , "18f2439" }, 0x2439, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x003000, { 0x003000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2439.inc" , "18f2439_g.lkr" , 0 },
684 { PROC_CLASS_PIC16E , "__18F2450" , { "pic18f2450" , "p18f2450" , "18f2450" }, 0x2450, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f2450.inc" , "18f2450_g.lkr" , 1 },
685 { PROC_CLASS_PIC16E , "__18F2455" , { "pic18f2455" , "p18f2455" , "18f2455" }, 0x2455, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2455.inc" , "18f2455_g.lkr" , 1 },
686 { PROC_CLASS_PIC16E , "__18F2458" , { "pic18f2458" , "p18f2458" , "18f2458" }, 0x2458, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2458.inc" , "18f2458_g.lkr" , 1 },
687 { PROC_CLASS_PIC16E , "__18F2480" , { "pic18f2480" , "p18f2480" , "18f2480" }, 0x2480, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2480.inc" , "18f2480_g.lkr" , 1 },
688 { PROC_CLASS_PIC16E , "__18F2510" , { "pic18f2510" , "p18f2510" , "18f2510" }, 0x2510, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f2510.inc" , "18f2510_g.lkr" , 1 },
689 { PROC_CLASS_PIC16E , "__18F2515" , { "pic18f2515" , "p18f2515" , "18f2515" }, 0x2515, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00BFFF, 0x00C000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f2515.inc" , "18f2515_g.lkr" , 1 },
690 { PROC_CLASS_PIC16E , "__18F2520" , { "pic18f2520" , "p18f2520" , "18f2520" }, 0x2520, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2520.inc" , "18f2520_g.lkr" , 1 },
691 { PROC_CLASS_PIC16E , "__18F2523" , { "pic18f2523" , "p18f2523" , "18f2523" }, 0x2523, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2523.inc" , "18f2523_g.lkr" , 1 },
692 { PROC_CLASS_PIC16E , "__18F2525" , { "pic18f2525" , "p18f2525" , "18f2525" }, 0x2525, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f2525.inc" , "18f2525_g.lkr" , 1 },
693 { PROC_CLASS_PIC16E , "__18F2539" , { "pic18f2539" , "p18f2539" , "18f2539" }, 0x2539, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2539.inc" , "18f2539_g.lkr" , 0 },
694 { PROC_CLASS_PIC16E , "__18F2550" , { "pic18f2550" , "p18f2550" , "18f2550" }, 0x2550, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2550.inc" , "18f2550_g.lkr" , 1 },
695 { PROC_CLASS_PIC16E , "__18F2553" , { "pic18f2553" , "p18f2553" , "18f2553" }, 0x2553, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2553.inc" , "18f2553_g.lkr" , 1 },
696 { PROC_CLASS_PIC16E , "__18F2580" , { "pic18f2580" , "p18f2580" , "18f2580" }, 0x2580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f2580.inc" , "18f2580_g.lkr" , 1 },
697 { PROC_CLASS_PIC16E , "__18F2585" , { "pic18f2585" , "p18f2585" , "18f2585" }, 0x2585, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f2585.inc" , "18f2585_g.lkr" , 1 },
698 { PROC_CLASS_PIC16E , "__18F2610" , { "pic18f2610" , "p18f2610" , "18f2610" }, 0x2610, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00FFFF, 0x010000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f2610.inc" , "18f2610_g.lkr" , 1 },
699 { PROC_CLASS_PIC16E , "__18F2620" , { "pic18f2620" , "p18f2620" , "18f2620" }, 0x2620, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f2620.inc" , "18f2620_g.lkr" , 1 },
700 { PROC_CLASS_PIC16E , "__18F2680" , { "pic18f2680" , "p18f2680" , "18f2680" }, 0x2680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f2680.inc" , "18f2680_g.lkr" , 1 },
701 { PROC_CLASS_PIC16E , "__18F2681" , { "pic18f2681" , "p18f2681" , "18f2681" }, 0x2681, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { 0x200000, 0x200007 }, { -1, -1 }, { 0xF00000, 0xF003FF }, 0x0000, "p18f2681.inc" , "18f2681.lkr" , 1 }, /* not documented by Microchip, added in svn rev. #317, see http://osdir.com/ml/hardware.microcontrollers.gnupic/2008-05/msg00013.html */
702 { PROC_CLASS_PIC16E , "__18F2682" , { "pic18f2682" , "p18f2682" , "18f2682" }, 0x2682, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x014000, { 0x014000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f2682.inc" , "18f2682_g.lkr" , 1 },
703 { PROC_CLASS_PIC16E , "__18F2685" , { "pic18f2685" , "p18f2685" , "18f2685" }, 0x2685, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f2685.inc" , "18f2685_g.lkr" , 1 },
704 { PROC_CLASS_PIC16E , "__18F4220" , { "pic18f4220" , "p18f4220" , "18f4220" }, 0xA422, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4220.inc" , "18f4220_g.lkr" , 0 },
705 { PROC_CLASS_PIC16E , "__18F4221" , { "pic18f4221" , "p18f4221" , "18f4221" }, 0x4221, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4221.inc" , "18f4221_g.lkr" , 1 },
706 { PROC_CLASS_PIC16E , "__18F4320" , { "pic18f4320" , "p18f4320" , "18f4320" }, 0xA432, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4320.inc" , "18f4320_g.lkr" , 0 },
707 { PROC_CLASS_PIC16E , "__18F4321" , { "pic18f4321" , "p18f4321" , "18f4321" }, 0x4321, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4321.inc" , "18f4321_g.lkr" , 1 },
708 { PROC_CLASS_PIC16E , "__18F4331" , { "pic18f4331" , "p18f4331" , "18f4331" }, 0x4331, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4331.inc" , "18f4331_g.lkr" , 0 },
709 { PROC_CLASS_PIC16E , "__18F4410" , { "pic18f4410" , "p18f4410" , "18f4410" }, 0x4410, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f4410.inc" , "18f4410_g.lkr" , 1 },
710 { PROC_CLASS_PIC16E , "__18F4420" , { "pic18f4420" , "p18f4420" , "18f4420" }, 0x4420, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4420.inc" , "18f4420_g.lkr" , 1 },
711 { PROC_CLASS_PIC16E , "__18F4423" , { "pic18f4423" , "p18f4423" , "18f4423" }, 0x4423, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4423.inc" , "18f4423_g.lkr" , 1 },
712 { PROC_CLASS_PIC16E , "__18F4431" , { "pic18f4431" , "p18f4431" , "18f4431" }, 0x4431, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4431.inc" , "18f4431_g.lkr" , 0 },
713 { PROC_CLASS_PIC16E , "__18F4439" , { "pic18f4439" , "p18f4439" , "18f4439" }, 0x4439, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x003000, { 0x003000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4439.inc" , "18f4439_g.lkr" , 0 },
714 { PROC_CLASS_PIC16E , "__18F4450" , { "pic18f4450" , "p18f4450" , "18f4450" }, 0x4450, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f4450.inc" , "18f4450_g.lkr" , 1 },
715 { PROC_CLASS_PIC16E , "__18F4455" , { "pic18f4455" , "p18f4455" , "18f4455" }, 0x4455, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4455.inc" , "18f4455_g.lkr" , 1 },
716 { PROC_CLASS_PIC16E , "__18F4458" , { "pic18f4458" , "p18f4458" , "18f4458" }, 0x4458, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4458.inc" , "18f4458_g.lkr" , 1 },
717 { PROC_CLASS_PIC16E , "__18F4480" , { "pic18f4480" , "p18f4480" , "18f4480" }, 0x4480, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4480.inc" , "18f4480_g.lkr" , 1 },
718 { PROC_CLASS_PIC16E , "__18F4510" , { "pic18f4510" , "p18f4510" , "18f4510" }, 0x4510, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f4510.inc" , "18f4510_g.lkr" , 1 },
719 { PROC_CLASS_PIC16E , "__18F4515" , { "pic18f4515" , "p18f4515" , "18f4515" }, 0x4515, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00BFFF, 0x00C000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f4515.inc" , "18f4515_g.lkr" , 1 },
720 { PROC_CLASS_PIC16E , "__18F4520" , { "pic18f4520" , "p18f4520" , "18f4520" }, 0x4520, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4520.inc" , "18f4520_g.lkr" , 1 },
721 { PROC_CLASS_PIC16E , "__18F4523" , { "pic18f4523" , "p18f4523" , "18f4523" }, 0x4523, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4523.inc" , "18f4523_g.lkr" , 1 },
722 { PROC_CLASS_PIC16E , "__18F4525" , { "pic18f4525" , "p18f4525" , "18f4525" }, 0x4525, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f4525.inc" , "18f4525_g.lkr" , 1 },
723 { PROC_CLASS_PIC16E , "__18F4539" , { "pic18f4539" , "p18f4539" , "18f4539" }, 0x4539, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4539.inc" , "18f4539_g.lkr" , 0 },
724 { PROC_CLASS_PIC16E , "__18F4550" , { "pic18f4550" , "p18f4550" , "18f4550" }, 0x4550, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4550.inc" , "18f4550_g.lkr" , 1 },
725 { PROC_CLASS_PIC16E , "__18F4553" , { "pic18f4553" , "p18f4553" , "18f4553" }, 0x4553, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4553.inc" , "18f4553_g.lkr" , 1 },
726 { PROC_CLASS_PIC16E , "__18F4580" , { "pic18f4580" , "p18f4580" , "18f4580" }, 0x4580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18f4580.inc" , "18f4580_g.lkr" , 1 },
727 { PROC_CLASS_PIC16E , "__18F4585" , { "pic18f4585" , "p18f4585" , "18f4585" }, 0x4585, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f4585.inc" , "18f4585_g.lkr" , 1 },
728 { PROC_CLASS_PIC16E , "__18F4610" , { "pic18f4610" , "p18f4610" , "18f4610" }, 0x4610, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00FFFF, 0x010000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f4610.inc" , "18f4610_g.lkr" , 1 },
729 { PROC_CLASS_PIC16E , "__18F4620" , { "pic18f4620" , "p18f4620" , "18f4620" }, 0x4620, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f4620.inc" , "18f4620_g.lkr" , 1 },
730 { PROC_CLASS_PIC16E , "__18F4680" , { "pic18f4680" , "p18f4680" , "18f4680" }, 0x4680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f4680.inc" , "18f4680_g.lkr" , 1 },
731 { PROC_CLASS_PIC16E , "__18F4681" , { "pic18f4681" , "p18f4681" , "18f4681" }, 0x4681, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { 0x200000, 0x200007 }, { -1, -1 }, { 0xF00000, 0xF003FF }, 0x0000, "p18f4681.inc" , "18f4681.lkr" , 1 }, /* not documented by Microchip, added in svn rev. #317, see http://osdir.com/ml/hardware.microcontrollers.gnupic/2008-05/msg00013.html */
732 { PROC_CLASS_PIC16E , "__18F4682" , { "pic18f4682" , "p18f4682" , "18f4682" }, 0x4682, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x014000, { 0x014000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f4682.inc" , "18f4682_g.lkr" , 1 },
733 { PROC_CLASS_PIC16E , "__18F4685" , { "pic18f4685" , "p18f4685" , "18f4685" }, 0x4685, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f4685.inc" , "18f4685_g.lkr" , 1 },
734 { PROC_CLASS_PIC16E , "__18F6310" , { "pic18f6310" , "p18f6310" , "18f6310" }, 0x6310, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f6310.inc" , "18f6310_g.lkr" , 1 },
735 { PROC_CLASS_PIC16E , "__18F6390" , { "pic18f6390" , "p18f6390" , "18f6390" }, 0x6390, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f6390.inc" , "18f6390_g.lkr" , 1 },
736 { PROC_CLASS_PIC16E , "__18F6393" , { "pic18f6393" , "p18f6393" , "18f6393" }, 0x6393, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f6393.inc" , "18f6393_g.lkr" , 1 },
737 { PROC_CLASS_PIC16E , "__18F6410" , { "pic18f6410" , "p18f6410" , "18f6410" }, 0x6410, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f6410.inc" , "18f6410_g.lkr" , 1 },
738 { PROC_CLASS_PIC16E , "__18F6490" , { "pic18f6490" , "p18f6490" , "18f6490" }, 0x6490, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f6490.inc" , "18f6490_g.lkr" , 1 },
739 { PROC_CLASS_PIC16E , "__18F6493" , { "pic18f6493" , "p18f6493" , "18f6493" }, 0x6493, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f6493.inc" , "18f6493_g.lkr" , 1 },
740 { PROC_CLASS_PIC16E , "__18F6520" , { "pic18f6520" , "p18f6520" , "18f6520" }, 0xA652, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6520.inc" , "18f6520_g.lkr" , 0 },
741 { PROC_CLASS_PIC16E , "__18F6525" , { "pic18f6525" , "p18f6525" , "18f6525" }, 0x6525, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6525.inc" , "18f6525_g.lkr" , 0 },
742 { PROC_CLASS_PIC16E , "__18F6527" , { "pic18f6527" , "p18f6527" , "18f6527" }, 0x6527, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6527.inc" , "18f6527_g.lkr" , 1 },
743 { PROC_CLASS_PIC16E , "__18F6585" , { "pic18f6585" , "p18f6585" , "18f6585" }, 0x6585, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6585.inc" , "18f6585_g.lkr" , 0 },
744 { PROC_CLASS_PIC16E , "__18F6620" , { "pic18f6620" , "p18f6620" , "18f6620" }, 0xA662, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6620.inc" , "18f6620_g.lkr" , 0 },
745 { PROC_CLASS_PIC16E , "__18F6621" , { "pic18f6621" , "p18f6621" , "18f6621" }, 0xA621, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6621.inc" , "18f6621_g.lkr" , 0 },
746 { PROC_CLASS_PIC16E , "__18F6622" , { "pic18f6622" , "p18f6622" , "18f6622" }, 0xF622, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6622.inc" , "18f6622_g.lkr" , 1 },
747 { PROC_CLASS_PIC16E , "__18F6627" , { "pic18f6627" , "p18f6627" , "18f6627" }, 0xF625, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6627.inc" , "18f6627_g.lkr" , 1 },
748 { PROC_CLASS_PIC16E , "__18F6628" , { "pic18f6628" , "p18f6628" , "18f6628" }, 0xA628, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6628.inc" , "18f6628_g.lkr" , 1 },
749 { PROC_CLASS_PIC16E , "__18F6680" , { "pic18f6680" , "p18f6680" , "18f6680" }, 0x6680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6680.inc" , "18f6680_g.lkr" , 0 },
750 { PROC_CLASS_PIC16E , "__18F6720" , { "pic18f6720" , "p18f6720" , "18f6720" }, 0xA672, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6720.inc" , "18f6720_g.lkr" , 0 },
751 { PROC_CLASS_PIC16E , "__18F6722" , { "pic18f6722" , "p18f6722" , "18f6722" }, 0x6721, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6722.inc" , "18f6722_g.lkr" , 1 },
752 { PROC_CLASS_PIC16E , "__18F6723" , { "pic18f6723" , "p18f6723" , "18f6723" }, 0x6723, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f6723.inc" , "18f6723_g.lkr" , 1 },
753 { PROC_CLASS_PIC16E , "__18F8310" , { "pic18f8310" , "p18f8310" , "18f8310" }, 0x8310, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f8310.inc" , "18f8310_g.lkr" , 1 },
754 { PROC_CLASS_PIC16E , "__18F8390" , { "pic18f8390" , "p18f8390" , "18f8390" }, 0x8390, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f8390.inc" , "18f8390_g.lkr" , 1 },
755 { PROC_CLASS_PIC16E , "__18F8393" , { "pic18f8393" , "p18f8393" , "18f8393" }, 0x8393, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f8393.inc" , "18f8393_g.lkr" , 1 },
756 { PROC_CLASS_PIC16E , "__18F8410" , { "pic18f8410" , "p18f8410" , "18f8410" }, 0x8410, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f8410.inc" , "18f8410_g.lkr" , 1 },
757 { PROC_CLASS_PIC16E , "__18F8490" , { "pic18f8490" , "p18f8490" , "18f8490" }, 0x8490, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f8490.inc" , "18f8490_g.lkr" , 1 },
758 { PROC_CLASS_PIC16E , "__18F8493" , { "pic18f8493" , "p18f8493" , "18f8493" }, 0x8493, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18f8493.inc" , "18f8493_g.lkr" , 1 },
759 { PROC_CLASS_PIC16E , "__18F8520" , { "pic18f8520" , "p18f8520" , "18f8520" }, 0xA852, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8520.inc" , "18f8520_g.lkr" , 0 },
760 { PROC_CLASS_PIC16E , "__18F8525" , { "pic18f8525" , "p18f8525" , "18f8525" }, 0x8525, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8525.inc" , "18f8525_g.lkr" , 0 },
761 { PROC_CLASS_PIC16E , "__18F8527" , { "pic18f8527" , "p18f8527" , "18f8527" }, 0x8527, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8527.inc" , "18f8527_g.lkr" , 1 },
762 { PROC_CLASS_PIC16E , "__18F8585" , { "pic18f8585" , "p18f8585" , "18f8585" }, 0x8585, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8585.inc" , "18f8585_g.lkr" , 0 },
763 { PROC_CLASS_PIC16E , "__18F8620" , { "pic18f8620" , "p18f8620" , "18f8620" }, 0xA862, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8620.inc" , "18f8620_g.lkr" , 0 },
764 { PROC_CLASS_PIC16E , "__18F8621" , { "pic18f8621" , "p18f8621" , "18f8621" }, 0x8621, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8621.inc" , "18f8621_g.lkr" , 0 },
765 { PROC_CLASS_PIC16E , "__18F8622" , { "pic18f8622" , "p18f8622" , "18f8622" }, 0x8622, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8622.inc" , "18f8622_g.lkr" , 1 },
766 { PROC_CLASS_PIC16E , "__18F8627" , { "pic18f8627" , "p18f8627" , "18f8627" }, 0x8625, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8627.inc" , "18f8627_g.lkr" , 1 },
767 { PROC_CLASS_PIC16E , "__18F8628" , { "pic18f8628" , "p18f8628" , "18f8628" }, 0x8628, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8628.inc" , "18f8628_g.lkr" , 1 },
768 { PROC_CLASS_PIC16E , "__18F8680" , { "pic18f8680" , "p18f8680" , "18f8680" }, 0x8680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8680.inc" , "18f8680_g.lkr" , 0 },
769 { PROC_CLASS_PIC16E , "__18F8720" , { "pic18f8720" , "p18f8720" , "18f8720" }, 0xA872, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8720.inc" , "18f8720_g.lkr" , 0 },
770 { PROC_CLASS_PIC16E , "__18F8722" , { "pic18f8722" , "p18f8722" , "18f8722" }, 0x8721, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8722.inc" , "18f8722_g.lkr" , 1 },
771 { PROC_CLASS_PIC16E , "__18F8723" , { "pic18f8723" , "p18f8723" , "18f8723" }, 0x8723, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18f8723.inc" , "18f8723_g.lkr" , 1 },
772 { PROC_CLASS_PIC16E , "__18LF13K22" , { "pic18lf13k22" , "p18lf13k22" , "18lf13k22" }, 0xA133, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf13k22.inc" , "18lf13k22_g.lkr" , 1 },
773 { PROC_CLASS_PIC16E , "__18LF13K50" , { "pic18lf13k50" , "p18lf13k50" , "18lf13k50" }, 0xD135, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf13k50.inc" , "18lf13k50_g.lkr" , 1 },
774 { PROC_CLASS_PIC16E , "__18LF14K22" , { "pic18lf14k22" , "p18lf14k22" , "18lf14k22" }, 0xA142, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf14k22.inc" , "18lf14k22_g.lkr" , 1 },
775 { PROC_CLASS_PIC16E , "__18LF14K50" , { "pic18lf14k50" , "p18lf14k50" , "18lf14k50" }, 0xD145, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf14k50.inc" , "18lf14k50_g.lkr" , 1 },
776 { PROC_CLASS_PIC16E , "__18LF23K22" , { "pic18lf23k22" , "p18lf23k22" , "18lf23k22" }, 0xB322, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf23k22.inc" , "18lf23k22_g.lkr" , 1 },
777 { PROC_CLASS_PIC16E , "__18LF24J10" , { "pic18lf24j10" , "p18lf24j10" , "18lf24j10" }, 0xA241, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18lf24j10.inc" , "18lf24j10_g.lkr" , 3 },
778 { PROC_CLASS_PIC16E , "__18LF24J11" , { "pic18lf24j11" , "p18lf24j11" , "18lf24j11" }, 0xB411, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18lf24j11.inc" , "18lf24j11_g.lkr" , 3 },
779 { PROC_CLASS_PIC16E , "__18LF24J50" , { "pic18lf24j50" , "p18lf24j50" , "18lf24j50" }, 0xB450, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18lf24j50.inc" , "18lf24j50_g.lkr" , 3 },
780 { PROC_CLASS_PIC16E , "__18LF24K22" , { "pic18lf24k22" , "p18lf24k22" , "18lf24k22" }, 0xB422, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf24k22.inc" , "18lf24k22_g.lkr" , 1 },
781 { PROC_CLASS_PIC16E , "__18LF24K40" , { "pic18lf24k40" , "p18lf24k40" , "18lf24k40" }, 0xC244, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3100FF, 0x004000, { 0x004000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3100FF }, 0x0000, "p18lf24k40.inc" , "18lf24k40_g.lkr" , 1 },
782 { PROC_CLASS_PIC16E , "__18LF24K50" , { "pic18lf24k50" , "p18lf24k50" , "18lf24k50" }, 0xD452, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf24k50.inc" , "18lf24k50_g.lkr" , 1 },
783 { PROC_CLASS_PIC16E , "__18LF25J10" , { "pic18lf25j10" , "p18lf25j10" , "18lf25j10" }, 0xA251, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18lf25j10.inc" , "18lf25j10_g.lkr" , 3 },
784 { PROC_CLASS_PIC16E , "__18LF25J11" , { "pic18lf25j11" , "p18lf25j11" , "18lf25j11" }, 0xB511, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18lf25j11.inc" , "18lf25j11_g.lkr" , 3 },
785 { PROC_CLASS_PIC16E , "__18LF25J50" , { "pic18lf25j50" , "p18lf25j50" , "18lf25j50" }, 0xB551, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18lf25j50.inc" , "18lf25j50_g.lkr" , 3 },
786 { PROC_CLASS_PIC16E , "__18LF25K22" , { "pic18lf25k22" , "p18lf25k22" , "18lf25k22" }, 0xB522, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf25k22.inc" , "18lf25k22_g.lkr" , 1 },
787 { PROC_CLASS_PIC16E , "__18LF25K40" , { "pic18lf25k40" , "p18lf25k40" , "18lf25k40" }, 0xC254, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3100FF, 0x008000, { 0x008000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3100FF }, 0x0000, "p18lf25k40.inc" , "18lf25k40_g.lkr" , 1 },
788 { PROC_CLASS_PIC16E , "__18LF25K50" , { "pic18lf25k50" , "p18lf25k50" , "18lf25k50" }, 0xD552, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf25k50.inc" , "18lf25k50_g.lkr" , 1 },
789 { PROC_CLASS_PIC16E , "__18LF25K80" , { "pic18lf25k80" , "p18lf25k80" , "18lf25k80" }, 0xD580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf25k80.inc" , "18lf25k80_g.lkr" , 1 },
790 { PROC_CLASS_PIC16E , "__18LF26J11" , { "pic18lf26j11" , "p18lf26j11" , "18lf26j11" }, 0xB612, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf26j11.inc" , "18lf26j11_g.lkr" , 3 },
791 { PROC_CLASS_PIC16E , "__18LF26J13" , { "pic18lf26j13" , "p18lf26j13" , "18lf26j13" }, 0xB617, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf26j13.inc" , "18lf26j13_g.lkr" , 3 },
792 { PROC_CLASS_PIC16E , "__18LF26J50" , { "pic18lf26j50" , "p18lf26j50" , "18lf26j50" }, 0xB651, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf26j50.inc" , "18lf26j50_g.lkr" , 3 },
793 { PROC_CLASS_PIC16E , "__18LF26J53" , { "pic18lf26j53" , "p18lf26j53" , "18lf26j53" }, 0xB656, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf26j53.inc" , "18lf26j53_g.lkr" , 3 },
794 { PROC_CLASS_PIC16E , "__18LF26K22" , { "pic18lf26k22" , "p18lf26k22" , "18lf26k22" }, 0xB623, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf26k22.inc" , "18lf26k22_g.lkr" , 1 },
795 { PROC_CLASS_PIC16E , "__18LF26K40" , { "pic18lf26k40" , "p18lf26k40" , "18lf26k40" }, 0xA640, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x010000, { 0x010000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18lf26k40.inc" , "18lf26k40_g.lkr" , 1 },
796 { PROC_CLASS_PIC16E , "__18LF26K80" , { "pic18lf26k80" , "p18lf26k80" , "18lf26k80" }, 0xD680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf26k80.inc" , "18lf26k80_g.lkr" , 1 },
797 { PROC_CLASS_PIC16E , "__18LF27J13" , { "pic18lf27j13" , "p18lf27j13" , "18lf27j13" }, 0xB712, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18lf27j13.inc" , "18lf27j13_g.lkr" , 3 },
798 { PROC_CLASS_PIC16E , "__18LF27J53" , { "pic18lf27j53" , "p18lf27j53" , "18lf27j53" }, 0xC753, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18lf27j53.inc" , "18lf27j53_g.lkr" , 3 },
799 { PROC_CLASS_PIC16E , "__18LF27K40" , { "pic18lf27k40" , "p18lf27k40" , "18lf27k40" }, 0xA277, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x020000, { 0x020000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18lf27k40.inc" , "18lf27k40_g.lkr" , 1 },
800 { PROC_CLASS_PIC16E , "__18LF43K22" , { "pic18lf43k22" , "p18lf43k22" , "18lf43k22" }, 0xC322, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf43k22.inc" , "18lf43k22_g.lkr" , 1 },
801 { PROC_CLASS_PIC16E , "__18LF44J10" , { "pic18lf44j10" , "p18lf44j10" , "18lf44j10" }, 0xA441, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFD }, { -1, -1 }, 0x0000, "p18lf44j10.inc" , "18lf44j10_g.lkr" , 3 },
802 { PROC_CLASS_PIC16E , "__18LF44J11" , { "pic18lf44j11" , "p18lf44j11" , "18lf44j11" }, 0xC411, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18lf44j11.inc" , "18lf44j11_g.lkr" , 3 },
803 { PROC_CLASS_PIC16E , "__18LF44J50" , { "pic18lf44j50" , "p18lf44j50" , "18lf44j50" }, 0xC450, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FF7, 0x003FF8, { -1, -1 }, { -1, -1 }, { 0x003FF8, 0x003FFF }, { -1, -1 }, 0x0000, "p18lf44j50.inc" , "18lf44j50_g.lkr" , 3 },
804 { PROC_CLASS_PIC16E , "__18LF44K22" , { "pic18lf44k22" , "p18lf44k22" , "18lf44k22" }, 0xC422, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf44k22.inc" , "18lf44k22_g.lkr" , 1 },
805 { PROC_CLASS_PIC16E , "__18LF45J10" , { "pic18lf45j10" , "p18lf45j10" , "18lf45j10" }, 0xA451, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFD }, { -1, -1 }, 0x0000, "p18lf45j10.inc" , "18lf45j10_g.lkr" , 3 },
806 { PROC_CLASS_PIC16E , "__18LF45J11" , { "pic18lf45j11" , "p18lf45j11" , "18lf45j11" }, 0xC511, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18lf45j11.inc" , "18lf45j11_g.lkr" , 3 },
807 { PROC_CLASS_PIC16E , "__18LF45J50" , { "pic18lf45j50" , "p18lf45j50" , "18lf45j50" }, 0xC551, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x007FF7, 0x007FF8, { -1, -1 }, { -1, -1 }, { 0x007FF8, 0x007FFF }, { -1, -1 }, 0x0000, "p18lf45j50.inc" , "18lf45j50_g.lkr" , 3 },
808 { PROC_CLASS_PIC16E , "__18LF45K22" , { "pic18lf45k22" , "p18lf45k22" , "18lf45k22" }, 0xC522, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf45k22.inc" , "18lf45k22_g.lkr" , 1 },
809 { PROC_CLASS_PIC16E , "__18LF45K40" , { "pic18lf45k40" , "p18lf45k40" , "18lf45k40" }, 0xC454, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3100FF, 0x008000, { 0x008000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3100FF }, 0x0000, "p18lf45k40.inc" , "18lf45k40_g.lkr" , 1 },
810 { PROC_CLASS_PIC16E , "__18LF45K50" , { "pic18lf45k50" , "p18lf45k50" , "18lf45k50" }, 0xE552, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf45k50.inc" , "18lf45k50_g.lkr" , 1 },
811 { PROC_CLASS_PIC16E , "__18LF45K80" , { "pic18lf45k80" , "p18lf45k80" , "18lf45k80" }, 0xE580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf45k80.inc" , "18lf45k80_g.lkr" , 1 },
812 { PROC_CLASS_PIC16E , "__18LF46J11" , { "pic18lf46j11" , "p18lf46j11" , "18lf46j11" }, 0xC612, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf46j11.inc" , "18lf46j11_g.lkr" , 3 },
813 { PROC_CLASS_PIC16E , "__18LF46J13" , { "pic18lf46j13" , "p18lf46j13" , "18lf46j13" }, 0xC617, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf46j13.inc" , "18lf46j13_g.lkr" , 3 },
814 { PROC_CLASS_PIC16E , "__18LF46J50" , { "pic18lf46j50" , "p18lf46j50" , "18lf46j50" }, 0xC651, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf46j50.inc" , "18lf46j50_g.lkr" , 3 },
815 { PROC_CLASS_PIC16E , "__18LF46J53" , { "pic18lf46j53" , "p18lf46j53" , "18lf46j53" }, 0xC656, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x00FFF7, 0x00FFF8, { -1, -1 }, { -1, -1 }, { 0x00FFF8, 0x00FFFF }, { -1, -1 }, 0x0000, "p18lf46j53.inc" , "18lf46j53_g.lkr" , 3 },
816 { PROC_CLASS_PIC16E , "__18LF46K22" , { "pic18lf46k22" , "p18lf46k22" , "18lf46k22" }, 0xC623, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf46k22.inc" , "18lf46k22_g.lkr" , 1 },
817 { PROC_CLASS_PIC16E , "__18LF46K40" , { "pic18lf46k40" , "p18lf46k40" , "18lf46k40" }, 0xA26E, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x010000, { 0x010000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18lf46k40.inc" , "18lf46k40_g.lkr" , 1 },
818 { PROC_CLASS_PIC16E , "__18LF46K80" , { "pic18lf46k80" , "p18lf46k80" , "18lf46k80" }, 0xE680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf46k80.inc" , "18lf46k80_g.lkr" , 1 },
819 { PROC_CLASS_PIC16E , "__18LF47J13" , { "pic18lf47j13" , "p18lf47j13" , "18lf47j13" }, 0xC712, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18lf47j13.inc" , "18lf47j13_g.lkr" , 3 },
820 { PROC_CLASS_PIC16E , "__18LF47J53" , { "pic18lf47j53" , "p18lf47j53" , "18lf47j53" }, 0xC751, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x01FFF7, 0x01FFF8, { -1, -1 }, { -1, -1 }, { 0x01FFF8, 0x01FFFF }, { -1, -1 }, 0x0000, "p18lf47j53.inc" , "18lf47j53_g.lkr" , 3 },
821 { PROC_CLASS_PIC16E , "__18LF47K40" , { "pic18lf47k40" , "p18lf47k40" , "18lf47k40" }, 0xA276, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x020000, { 0x020000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18lf47k40.inc" , "18lf47k40_g.lkr" , 1 },
822 { PROC_CLASS_PIC16E , "__18LF65K40" , { "pic18lf65k40" , "p18lf65k40" , "18lf65k40" }, 0xA270, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x008000, { 0x008000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18lf65k40.inc" , "18lf65k40_g.lkr" , 1 },
823 { PROC_CLASS_PIC16E , "__18LF65K80" , { "pic18lf65k80" , "p18lf65k80" , "18lf65k80" }, 0xF580, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf65k80.inc" , "18lf65k80_g.lkr" , 1 },
824 { PROC_CLASS_PIC16E , "__18LF66K40" , { "pic18lf66k40" , "p18lf66k40" , "18lf66k40" }, 0xA271, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x010000, { 0x010000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18lf66k40.inc" , "18lf66k40_g.lkr" , 1 },
825 { PROC_CLASS_PIC16E , "__18LF66K80" , { "pic18lf66k80" , "p18lf66k80" , "18lf66k80" }, 0xF680, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf66k80.inc" , "18lf66k80_g.lkr" , 1 },
826 { PROC_CLASS_PIC16E , "__18LF67K40" , { "pic18lf67k40" , "p18lf67k40" , "18lf67k40" }, 0xA278, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x3103FF, 0x020000, { 0x020000, 0x30FFFF }, { 0x200000, 0x20000F }, { 0x300000, 0x30000B }, { 0x310000, 0x3103FF }, 0x0000, "p18lf67k40.inc" , "18lf67k40_g.lkr" , 1 },
827 { PROC_CLASS_PIC16E , "__18LF242" , { "pic18lf242" , "p18lf242" , "18lf242" }, 0xA208, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf242.inc" , "18lf242_g.lkr" , 0 },
828 { PROC_CLASS_PIC16E , "__18LF248" , { "pic18lf248" , "p18lf248" , "18lf248" }, 0xA20E, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf248.inc" , "18lf248_g.lkr" , 0 },
829 { PROC_CLASS_PIC16E , "__18LF252" , { "pic18lf252" , "p18lf252" , "18lf252" }, 0xA215, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf252.inc" , "18lf252_g.lkr" , 0 },
830 { PROC_CLASS_PIC16E , "__18LF258" , { "pic18lf258" , "p18lf258" , "18lf258" }, 0xA21B, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf258.inc" , "18lf258_g.lkr" , 0 },
831 { PROC_CLASS_PIC16E , "__18LF442" , { "pic18lf442" , "p18lf442" , "18lf442" }, 0xA22A, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf442.inc" , "18lf442_g.lkr" , 0 },
832 { PROC_CLASS_PIC16E , "__18LF448" , { "pic18lf448" , "p18lf448" , "18lf448" }, 0xA233, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf448.inc" , "18lf448_g.lkr" , 0 },
833 { PROC_CLASS_PIC16E , "__18LF452" , { "pic18lf452" , "p18lf452" , "18lf452" }, 0xA236, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf452.inc" , "18lf452_g.lkr" , 0 },
834 { PROC_CLASS_PIC16E , "__18LF458" , { "pic18lf458" , "p18lf458" , "18lf458" }, 0xA23F, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf458.inc" , "18lf458_g.lkr" , 0 },
835 { PROC_CLASS_PIC16E , "__18LF1220" , { "pic18lf1220" , "p18lf1220" , "18lf1220" }, 0xA120, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf1220.inc" , "18lf1220_g.lkr" , 0 },
836 { PROC_CLASS_PIC16E , "__18LF1230" , { "pic18lf1230" , "p18lf1230" , "18lf1230" }, 0xA121, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF0007F, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF0007F }, 0x0000, "p18lf1230.inc" , "18lf1230_g.lkr" , 1 },
837 { PROC_CLASS_PIC16E , "__18LF1320" , { "pic18lf1320" , "p18lf1320" , "18lf1320" }, 0xA130, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf1320.inc" , "18lf1320_g.lkr" , 0 },
838 { PROC_CLASS_PIC16E , "__18LF1330" , { "pic18lf1330" , "p18lf1330" , "18lf1330" }, 0xA131, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF0007F, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF0007F }, 0x0000, "p18lf1330.inc" , "18lf1330_g.lkr" , 1 },
839 { PROC_CLASS_PIC16E , "__18LF2220" , { "pic18lf2220" , "p18lf2220" , "18lf2220" }, 0xA200, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2220.inc" , "18lf2220_g.lkr" , 0 },
840 { PROC_CLASS_PIC16E , "__18LF2221" , { "pic18lf2221" , "p18lf2221" , "18lf2221" }, 0xA201, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2221.inc" , "18lf2221_g.lkr" , 1 },
841 { PROC_CLASS_PIC16E , "__18LF2320" , { "pic18lf2320" , "p18lf2320" , "18lf2320" }, 0xA202, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2320.inc" , "18lf2320_g.lkr" , 0 },
842 { PROC_CLASS_PIC16E , "__18LF2321" , { "pic18lf2321" , "p18lf2321" , "18lf2321" }, 0xA203, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2321.inc" , "18lf2321_g.lkr" , 1 },
843 { PROC_CLASS_PIC16E , "__18LF2331" , { "pic18lf2331" , "p18lf2331" , "18lf2331" }, 0xA204, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2331.inc" , "18lf2331_g.lkr" , 0 },
844 { PROC_CLASS_PIC16E , "__18LF2410" , { "pic18lf2410" , "p18lf2410" , "18lf2410" }, 0xA205, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf2410.inc" , "18lf2410_g.lkr" , 1 },
845 { PROC_CLASS_PIC16E , "__18LF2420" , { "pic18lf2420" , "p18lf2420" , "18lf2420" }, 0xA206, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2420.inc" , "18lf2420_g.lkr" , 1 },
846 { PROC_CLASS_PIC16E , "__18LF2423" , { "pic18lf2423" , "p18lf2423" , "18lf2423" }, 0xA207, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2423.inc" , "18lf2423_g.lkr" , 1 },
847 { PROC_CLASS_PIC16E , "__18LF2431" , { "pic18lf2431" , "p18lf2431" , "18lf2431" }, 0xA209, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2431.inc" , "18lf2431_g.lkr" , 0 },
848 { PROC_CLASS_PIC16E , "__18LF2439" , { "pic18lf2439" , "p18lf2439" , "18lf2439" }, 0xA210, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x003000, { 0x003000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2439.inc" , "18lf2439_g.lkr" , 0 },
849 { PROC_CLASS_PIC16E , "__18LF2450" , { "pic18lf2450" , "p18lf2450" , "18lf2450" }, 0xA20A, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf2450.inc" , "18lf2450_g.lkr" , 1 },
850 { PROC_CLASS_PIC16E , "__18LF2455" , { "pic18lf2455" , "p18lf2455" , "18lf2455" }, 0xA20B, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2455.inc" , "18lf2455_g.lkr" , 1 },
851 { PROC_CLASS_PIC16E , "__18LF2458" , { "pic18lf2458" , "p18lf2458" , "18lf2458" }, 0xA20C, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2458.inc" , "18lf2458_g.lkr" , 1 },
852 { PROC_CLASS_PIC16E , "__18LF2480" , { "pic18lf2480" , "p18lf2480" , "18lf2480" }, 0xA20D, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2480.inc" , "18lf2480_g.lkr" , 1 },
853 { PROC_CLASS_PIC16E , "__18LF2510" , { "pic18lf2510" , "p18lf2510" , "18lf2510" }, 0xA20F, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf2510.inc" , "18lf2510_g.lkr" , 1 },
854 { PROC_CLASS_PIC16E , "__18LF2515" , { "pic18lf2515" , "p18lf2515" , "18lf2515" }, 0xA211, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00BFFF, 0x00C000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf2515.inc" , "18lf2515_g.lkr" , 1 },
855 { PROC_CLASS_PIC16E , "__18LF2520" , { "pic18lf2520" , "p18lf2520" , "18lf2520" }, 0xA212, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2520.inc" , "18lf2520_g.lkr" , 1 },
856 { PROC_CLASS_PIC16E , "__18LF2523" , { "pic18lf2523" , "p18lf2523" , "18lf2523" }, 0xA213, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2523.inc" , "18lf2523_g.lkr" , 1 },
857 { PROC_CLASS_PIC16E , "__18LF2525" , { "pic18lf2525" , "p18lf2525" , "18lf2525" }, 0xA214, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf2525.inc" , "18lf2525_g.lkr" , 1 },
858 { PROC_CLASS_PIC16E , "__18LF2539" , { "pic18lf2539" , "p18lf2539" , "18lf2539" }, 0xA216, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2539.inc" , "18lf2539_g.lkr" , 0 },
859 { PROC_CLASS_PIC16E , "__18LF2550" , { "pic18lf2550" , "p18lf2550" , "18lf2550" }, 0xA217, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2550.inc" , "18lf2550_g.lkr" , 1 },
860 { PROC_CLASS_PIC16E , "__18LF2553" , { "pic18lf2553" , "p18lf2553" , "18lf2553" }, 0xA218, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2553.inc" , "18lf2553_g.lkr" , 1 },
861 { PROC_CLASS_PIC16E , "__18LF2580" , { "pic18lf2580" , "p18lf2580" , "18lf2580" }, 0xA219, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf2580.inc" , "18lf2580_g.lkr" , 1 },
862 { PROC_CLASS_PIC16E , "__18LF2585" , { "pic18lf2585" , "p18lf2585" , "18lf2585" }, 0xA21A, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf2585.inc" , "18lf2585_g.lkr" , 1 },
863 { PROC_CLASS_PIC16E , "__18LF2610" , { "pic18lf2610" , "p18lf2610" , "18lf2610" }, 0xA21C, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00FFFF, 0x010000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf2610.inc" , "18lf2610_g.lkr" , 1 },
864 { PROC_CLASS_PIC16E , "__18LF2620" , { "pic18lf2620" , "p18lf2620" , "18lf2620" }, 0xA21D, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf2620.inc" , "18lf2620_g.lkr" , 1 },
865 { PROC_CLASS_PIC16E , "__18LF2680" , { "pic18lf2680" , "p18lf2680" , "18lf2680" }, 0xA21E, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf2680.inc" , "18lf2680_g.lkr" , 1 },
866 { PROC_CLASS_PIC16E , "__18LF2682" , { "pic18lf2682" , "p18lf2682" , "18lf2682" }, 0xA21F, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x014000, { 0x014000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf2682.inc" , "18lf2682_g.lkr" , 1 },
867 { PROC_CLASS_PIC16E , "__18LF2685" , { "pic18lf2685" , "p18lf2685" , "18lf2685" }, 0xA220, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf2685.inc" , "18lf2685_g.lkr" , 1 },
868 { PROC_CLASS_PIC16E , "__18LF4220" , { "pic18lf4220" , "p18lf4220" , "18lf4220" }, 0xA223, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4220.inc" , "18lf4220_g.lkr" , 0 },
869 { PROC_CLASS_PIC16E , "__18LF4221" , { "pic18lf4221" , "p18lf4221" , "18lf4221" }, 0xA224, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x001000, { 0x001000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4221.inc" , "18lf4221_g.lkr" , 1 },
870 { PROC_CLASS_PIC16E , "__18LF4320" , { "pic18lf4320" , "p18lf4320" , "18lf4320" }, 0xA225, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4320.inc" , "18lf4320_g.lkr" , 0 },
871 { PROC_CLASS_PIC16E , "__18LF4321" , { "pic18lf4321" , "p18lf4321" , "18lf4321" }, 0xA226, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4321.inc" , "18lf4321_g.lkr" , 1 },
872 { PROC_CLASS_PIC16E , "__18LF4331" , { "pic18lf4331" , "p18lf4331" , "18lf4331" }, 0xA227, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x002000, { 0x002000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4331.inc" , "18lf4331_g.lkr" , 0 },
873 { PROC_CLASS_PIC16E , "__18LF4410" , { "pic18lf4410" , "p18lf4410" , "18lf4410" }, 0xA228, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf4410.inc" , "18lf4410_g.lkr" , 1 },
874 { PROC_CLASS_PIC16E , "__18LF4420" , { "pic18lf4420" , "p18lf4420" , "18lf4420" }, 0xA229, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4420.inc" , "18lf4420_g.lkr" , 1 },
875 { PROC_CLASS_PIC16E , "__18LF4423" , { "pic18lf4423" , "p18lf4423" , "18lf4423" }, 0xA22B, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4423.inc" , "18lf4423_g.lkr" , 1 },
876 { PROC_CLASS_PIC16E , "__18LF4431" , { "pic18lf4431" , "p18lf4431" , "18lf4431" }, 0xA22C, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4431.inc" , "18lf4431_g.lkr" , 0 },
877 { PROC_CLASS_PIC16E , "__18LF4439" , { "pic18lf4439" , "p18lf4439" , "18lf4439" }, 0xA22D, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x003000, { 0x003000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4439.inc" , "18lf4439_g.lkr" , 0 },
878 { PROC_CLASS_PIC16E , "__18LF4450" , { "pic18lf4450" , "p18lf4450" , "18lf4450" }, 0xA22E, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf4450.inc" , "18lf4450_g.lkr" , 1 },
879 { PROC_CLASS_PIC16E , "__18LF4455" , { "pic18lf4455" , "p18lf4455" , "18lf4455" }, 0xA22F, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4455.inc" , "18lf4455_g.lkr" , 1 },
880 { PROC_CLASS_PIC16E , "__18LF4458" , { "pic18lf4458" , "p18lf4458" , "18lf4458" }, 0xA230, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4458.inc" , "18lf4458_g.lkr" , 1 },
881 { PROC_CLASS_PIC16E , "__18LF4480" , { "pic18lf4480" , "p18lf4480" , "18lf4480" }, 0xA231, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4480.inc" , "18lf4480_g.lkr" , 1 },
882 { PROC_CLASS_PIC16E , "__18LF4510" , { "pic18lf4510" , "p18lf4510" , "18lf4510" }, 0xA234, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x007FFF, 0x008000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf4510.inc" , "18lf4510_g.lkr" , 1 },
883 { PROC_CLASS_PIC16E , "__18LF4515" , { "pic18lf4515" , "p18lf4515" , "18lf4515" }, 0xA235, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00BFFF, 0x00C000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf4515.inc" , "18lf4515_g.lkr" , 1 },
884 { PROC_CLASS_PIC16E , "__18LF4520" , { "pic18lf4520" , "p18lf4520" , "18lf4520" }, 0xA237, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4520.inc" , "18lf4520_g.lkr" , 1 },
885 { PROC_CLASS_PIC16E , "__18LF4523" , { "pic18lf4523" , "p18lf4523" , "18lf4523" }, 0xA238, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4523.inc" , "18lf4523_g.lkr" , 1 },
886 { PROC_CLASS_PIC16E , "__18LF4525" , { "pic18lf4525" , "p18lf4525" , "18lf4525" }, 0xA239, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf4525.inc" , "18lf4525_g.lkr" , 1 },
887 { PROC_CLASS_PIC16E , "__18LF4539" , { "pic18lf4539" , "p18lf4539" , "18lf4539" }, 0xA23A, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x006000, { 0x006000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4539.inc" , "18lf4539_g.lkr" , 0 },
888 { PROC_CLASS_PIC16E , "__18LF4550" , { "pic18lf4550" , "p18lf4550" , "18lf4550" }, 0xA23B, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4550.inc" , "18lf4550_g.lkr" , 1 },
889 { PROC_CLASS_PIC16E , "__18LF4553" , { "pic18lf4553" , "p18lf4553" , "18lf4553" }, 0xA23C, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4553.inc" , "18lf4553_g.lkr" , 1 },
890 { PROC_CLASS_PIC16E , "__18LF4580" , { "pic18lf4580" , "p18lf4580" , "18lf4580" }, 0xA23D, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "p18lf4580.inc" , "18lf4580_g.lkr" , 1 },
891 { PROC_CLASS_PIC16E , "__18LF4585" , { "pic18lf4585" , "p18lf4585" , "18lf4585" }, 0xA23E, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf4585.inc" , "18lf4585_g.lkr" , 1 },
892 { PROC_CLASS_PIC16E , "__18LF4610" , { "pic18lf4610" , "p18lf4610" , "18lf4610" }, 0xA240, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x00FFFF, 0x010000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf4610.inc" , "18lf4610_g.lkr" , 1 },
893 { PROC_CLASS_PIC16E , "__18LF4620" , { "pic18lf4620" , "p18lf4620" , "18lf4620" }, 0xA242, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf4620.inc" , "18lf4620_g.lkr" , 1 },
894 { PROC_CLASS_PIC16E , "__18LF4680" , { "pic18lf4680" , "p18lf4680" , "18lf4680" }, 0xA243, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf4680.inc" , "18lf4680_g.lkr" , 1 },
895 { PROC_CLASS_PIC16E , "__18LF4682" , { "pic18lf4682" , "p18lf4682" , "18lf4682" }, 0xA244, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x014000, { 0x014000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf4682.inc" , "18lf4682_g.lkr" , 1 },
896 { PROC_CLASS_PIC16E , "__18LF4685" , { "pic18lf4685" , "p18lf4685" , "18lf4685" }, 0xA245, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf4685.inc" , "18lf4685_g.lkr" , 1 },
897 { PROC_CLASS_PIC16E , "__18LF6310" , { "pic18lf6310" , "p18lf6310" , "18lf6310" }, 0xA246, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf6310.inc" , "18lf6310_g.lkr" , 1 },
898 { PROC_CLASS_PIC16E , "__18LF6390" , { "pic18lf6390" , "p18lf6390" , "18lf6390" }, 0xA247, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf6390.inc" , "18lf6390_g.lkr" , 1 },
899 { PROC_CLASS_PIC16E , "__18LF6393" , { "pic18lf6393" , "p18lf6393" , "18lf6393" }, 0xA248, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf6393.inc" , "18lf6393_g.lkr" , 1 },
900 { PROC_CLASS_PIC16E , "__18LF6410" , { "pic18lf6410" , "p18lf6410" , "18lf6410" }, 0xA249, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf6410.inc" , "18lf6410_g.lkr" , 1 },
901 { PROC_CLASS_PIC16E , "__18LF6490" , { "pic18lf6490" , "p18lf6490" , "18lf6490" }, 0xA24A, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf6490.inc" , "18lf6490_g.lkr" , 1 },
902 { PROC_CLASS_PIC16E , "__18LF6493" , { "pic18lf6493" , "p18lf6493" , "18lf6493" }, 0xA24B, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf6493.inc" , "18lf6493_g.lkr" , 1 },
903 { PROC_CLASS_PIC16E , "__18LF6520" , { "pic18lf6520" , "p18lf6520" , "18lf6520" }, 0xA24C, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6520.inc" , "18lf6520_g.lkr" , 0 },
904 { PROC_CLASS_PIC16E , "__18LF6525" , { "pic18lf6525" , "p18lf6525" , "18lf6525" }, 0xA24D, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6525.inc" , "18lf6525_g.lkr" , 0 },
905 { PROC_CLASS_PIC16E , "__18LF6527" , { "pic18lf6527" , "p18lf6527" , "18lf6527" }, 0xA24E, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6527.inc" , "18lf6527_g.lkr" , 1 },
906 { PROC_CLASS_PIC16E , "__18LF6585" , { "pic18lf6585" , "p18lf6585" , "18lf6585" }, 0xA24F, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6585.inc" , "18lf6585_g.lkr" , 0 },
907 { PROC_CLASS_PIC16E , "__18LF6620" , { "pic18lf6620" , "p18lf6620" , "18lf6620" }, 0xA250, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6620.inc" , "18lf6620_g.lkr" , 0 },
908 { PROC_CLASS_PIC16E , "__18LF6621" , { "pic18lf6621" , "p18lf6621" , "18lf6621" }, 0xA252, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6621.inc" , "18lf6621_g.lkr" , 0 },
909 { PROC_CLASS_PIC16E , "__18LF6622" , { "pic18lf6622" , "p18lf6622" , "18lf6622" }, 0xA253, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6622.inc" , "18lf6622_g.lkr" , 1 },
910 { PROC_CLASS_PIC16E , "__18LF6627" , { "pic18lf6627" , "p18lf6627" , "18lf6627" }, 0xA254, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6627.inc" , "18lf6627_g.lkr" , 1 },
911 { PROC_CLASS_PIC16E , "__18LF6628" , { "pic18lf6628" , "p18lf6628" , "18lf6628" }, 0xA255, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6628.inc" , "18lf6628_g.lkr" , 1 },
912 { PROC_CLASS_PIC16E , "__18LF6680" , { "pic18lf6680" , "p18lf6680" , "18lf6680" }, 0xA256, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6680.inc" , "18lf6680_g.lkr" , 0 },
913 { PROC_CLASS_PIC16E , "__18LF6720" , { "pic18lf6720" , "p18lf6720" , "18lf6720" }, 0xA257, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6720.inc" , "18lf6720_g.lkr" , 0 },
914 { PROC_CLASS_PIC16E , "__18LF6722" , { "pic18lf6722" , "p18lf6722" , "18lf6722" }, 0xA258, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6722.inc" , "18lf6722_g.lkr" , 1 },
915 { PROC_CLASS_PIC16E , "__18LF6723" , { "pic18lf6723" , "p18lf6723" , "18lf6723" }, 0xA259, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf6723.inc" , "18lf6723_g.lkr" , 1 },
916 { PROC_CLASS_PIC16E , "__18LF8310" , { "pic18lf8310" , "p18lf8310" , "18lf8310" }, 0xA25A, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf8310.inc" , "18lf8310_g.lkr" , 1 },
917 { PROC_CLASS_PIC16E , "__18LF8390" , { "pic18lf8390" , "p18lf8390" , "18lf8390" }, 0xA25B, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf8390.inc" , "18lf8390_g.lkr" , 1 },
918 { PROC_CLASS_PIC16E , "__18LF8393" , { "pic18lf8393" , "p18lf8393" , "18lf8393" }, 0xA25C, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf8393.inc" , "18lf8393_g.lkr" , 1 },
919 { PROC_CLASS_PIC16E , "__18LF8410" , { "pic18lf8410" , "p18lf8410" , "18lf8410" }, 0xA25D, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf8410.inc" , "18lf8410_g.lkr" , 1 },
920 { PROC_CLASS_PIC16E , "__18LF8490" , { "pic18lf8490" , "p18lf8490" , "18lf8490" }, 0xA25E, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf8490.inc" , "18lf8490_g.lkr" , 1 },
921 { PROC_CLASS_PIC16E , "__18LF8493" , { "pic18lf8493" , "p18lf8493" , "18lf8493" }, 0xA25F, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0x003FFF, 0x004000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "p18lf8493.inc" , "18lf8493_g.lkr" , 1 },
922 { PROC_CLASS_PIC16E , "__18LF8520" , { "pic18lf8520" , "p18lf8520" , "18lf8520" }, 0xA260, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x008000, { 0x008000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8520.inc" , "18lf8520_g.lkr" , 0 },
923 { PROC_CLASS_PIC16E , "__18LF8525" , { "pic18lf8525" , "p18lf8525" , "18lf8525" }, 0xA261, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8525.inc" , "18lf8525_g.lkr" , 0 },
924 { PROC_CLASS_PIC16E , "__18LF8527" , { "pic18lf8527" , "p18lf8527" , "18lf8527" }, 0xA262, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8527.inc" , "18lf8527_g.lkr" , 1 },
925 { PROC_CLASS_PIC16E , "__18LF8585" , { "pic18lf8585" , "p18lf8585" , "18lf8585" }, 0xA263, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x00C000, { 0x00C000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8585.inc" , "18lf8585_g.lkr" , 0 },
926 { PROC_CLASS_PIC16E , "__18LF8620" , { "pic18lf8620" , "p18lf8620" , "18lf8620" }, 0xA264, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8620.inc" , "18lf8620_g.lkr" , 0 },
927 { PROC_CLASS_PIC16E , "__18LF8621" , { "pic18lf8621" , "p18lf8621" , "18lf8621" }, 0xA265, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8621.inc" , "18lf8621_g.lkr" , 0 },
928 { PROC_CLASS_PIC16E , "__18LF8622" , { "pic18lf8622" , "p18lf8622" , "18lf8622" }, 0xA266, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8622.inc" , "18lf8622_g.lkr" , 1 },
929 { PROC_CLASS_PIC16E , "__18LF8627" , { "pic18lf8627" , "p18lf8627" , "18lf8627" }, 0xA267, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8627.inc" , "18lf8627_g.lkr" , 1 },
930 { PROC_CLASS_PIC16E , "__18LF8628" , { "pic18lf8628" , "p18lf8628" , "18lf8628" }, 0xA268, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x018000, { 0x018000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8628.inc" , "18lf8628_g.lkr" , 1 },
931 { PROC_CLASS_PIC16E , "__18LF8680" , { "pic18lf8680" , "p18lf8680" , "18lf8680" }, 0xA269, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x010000, { 0x010000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8680.inc" , "18lf8680_g.lkr" , 0 },
932 { PROC_CLASS_PIC16E , "__18LF8720" , { "pic18lf8720" , "p18lf8720" , "18lf8720" }, 0xA26A, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8720.inc" , "18lf8720_g.lkr" , 0 },
933 { PROC_CLASS_PIC16E , "__18LF8722" , { "pic18lf8722" , "p18lf8722" , "18lf8722" }, 0xA26B, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8722.inc" , "18lf8722_g.lkr" , 1 },
934 { PROC_CLASS_PIC16E , "__18LF8723" , { "pic18lf8723" , "p18lf8723" , "18lf8723" }, 0xA26C, 0, 16, 0x0F00, { 0x00, 0x5F }, -1, { -1, -1 }, 0x0FFF, 0xF003FF, 0x020000, { 0x020000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF003FF }, 0x0000, "p18lf8723.inc" , "18lf8723_g.lkr" , 1 },
935 { PROC_CLASS_PIC14 , "__14000" , { "pic14000" , "p14000" , "14000" }, 0x4000, 2, 2, 0x0080, { -1, -1 }, -1, { -1, -1 }, 0x00FF, 0x000FBF, 0x000FC0, { -1, -1 }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { -1, -1 }, 0x3F80, "p14000.inc" , "14000_g.lkr" , 0 },
936 { PROC_CLASS_EEPROM8 , "__EEPROM8" , { "eeprom8" , "eeprom8" , "eeprom8" }, 0x1FFF, 0, 0, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, 0x0000FF, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
937 { PROC_CLASS_EEPROM16 , "__EEPROM16" , { "eeprom16" , "eeprom16" , "eeprom16" }, 0x1FFF, 0, 0, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, 0x00007F, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
938 { PROC_CLASS_GENERIC , "__GEN" , { "generic" , "gen" , "unknown" }, 0x0000, 0, 0, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, -1, -1, { -1, -1 }, { 0x002000, 0x002003 }, { -1, -1 }, { -1, -1 }, 0x3F80, NULL , NULL , 0 },
939 { PROC_CLASS_PIC12 , "__HCS1365" , { "hcs1365" , "hcs1365" , "hcs1365" }, 0xF365, 2, 4, 0x0060, { -1, -1 }, -1, { -1, -1 }, 0x007F, 0x0003FF, -1, { -1, -1 }, { 0x000400, 0x000403 }, { 0x0007FF, 0x0007FF }, { -1, -1 }, 0x0FF0, NULL , "hcs1365_g.lkr" , 0 },
940 { PROC_CLASS_PIC12 , "__HCS1370" , { "hcs1370" , "hcs1370" , "hcs1370" }, 0xF370, 2, 4, 0x0060, { -1, -1 }, -1, { -1, -1 }, 0x007F, 0x0003FF, -1, { -1, -1 }, { 0x000400, 0x000403 }, { 0x0007FF, 0x0007FF }, { -1, -1 }, 0x0FF0, NULL , "hcs1370_g.lkr" , 0 },
941 { PROC_CLASS_PIC12 , "__MCV08A" , { "mcv08a" , "mcv08a" , "mcv08a" }, 0xA510, 2, 2, 0x0020, { 0x0A, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, NULL , "mcv08a_g.lkr" , 0 },
942 { PROC_CLASS_PIC12 , "__MCV14A" , { "mcv14a" , "mcv14a" , "mcv14a" }, 0xC526, 2, 4, 0x0060, { 0x0D, 0x0F }, -1, { -1, -1 }, 0x007F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000440, 0x000443 }, { 0x000FFF, 0x000FFF }, { 0x000400, 0x00043F }, 0x0FF0, NULL , "mcv14a_g.lkr" , 0 },
943 { PROC_CLASS_PIC12 , "__MCV18A" , { "mcv18a" , "mcv18a" , "mcv18a" }, 0xCF54, 1, 1, 0x0000, { -1, -1 }, -1, { -1, -1 }, 0x001F, 0x0001FF, 0x000200, { -1, -1 }, { 0x000200, 0x000203 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, NULL , "mcv18a_g.lkr" , 0 },
944 { PROC_CLASS_PIC12 , "__MCV28A" , { "mcv28a" , "mcv28a" , "mcv28a" }, 0xCF57, 4, 4, 0x0060, { 0x08, 0x0F }, 0x00F, { -1, -1 }, 0x007F, 0x0007FF, 0x000800, { -1, -1 }, { 0x000800, 0x000803 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, NULL , "mcv28a_g.lkr" , 0 },
945 { PROC_CLASS_PIC16E , "__PS500" , { "ps500" , "ps500" , "ps500" }, 0x0500, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0xF000FF, 0x004000, { 0x004000, 0xEFFFFF }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { 0xF00000, 0xF000FF }, 0x0000, "ps500.inc" , "ps500_g.lkr" , 0 },
946 { PROC_CLASS_PIC16E , "__PS810" , { "ps810" , "ps810" , "ps810" }, 0x0810, 0, 16, 0x0F00, { 0x00, 0x7F }, -1, { -1, -1 }, 0x0FFF, 0x001FFF, 0x002000, { -1, -1 }, { 0x200000, 0x200007 }, { 0x300000, 0x30000D }, { -1, -1 }, 0x0000, "ps810.inc" , "ps810_g.lkr" , 0 },
947 { PROC_CLASS_PIC12 , "__RF509AF" , { "rf509af" , "rf509af" , "rf509af" }, 0x6509, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "rf509af.inc" , "rf509af_g.lkr" , 0 },
948 { PROC_CLASS_PIC12 , "__RF509AG" , { "rf509ag" , "rf509ag" , "rf509ag" }, 0x7509, 2, 2, 0x0020, { 0x07, 0x0F }, 0x00F, { -1, -1 }, 0x003F, 0x0003FF, 0x000400, { -1, -1 }, { 0x000400, 0x000403 }, { 0x000FFF, 0x000FFF }, { -1, -1 }, 0x0FF0, "rf509ag.inc" , "rf509ag_g.lkr" , 0 },
949 { PROC_CLASS_PIC14 , "__RF675F" , { "rf675f" , "rf675f" , "rf675f" }, 0x3675, 1, 2, 0x0080, { 0x20, 0x5F }, -1, { -1, -1 }, 0x00DF, 0x00217F, 0x000400, { 0x0003FF, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "rf675f.inc" , "rf675f_g.lkr" , 0 },
950 { PROC_CLASS_PIC14 , "__RF675H" , { "rf675h" , "rf675h" , "rf675h" }, 0x4675, 1, 2, 0x0080, { 0x20, 0x5F }, -1, { -1, -1 }, 0x00DF, 0x00217F, 0x000400, { 0x0003FF, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "rf675h.inc" , "rf675h_g.lkr" , 0 },
951 { PROC_CLASS_PIC14 , "__RF675K" , { "rf675k" , "rf675k" , "rf675k" }, 0x5675, 1, 2, 0x0080, { 0x20, 0x5F }, -1, { -1, -1 }, 0x00DF, 0x00217F, 0x000400, { 0x0003FF, 0x0020FF }, { 0x002000, 0x002003 }, { 0x002007, 0x002007 }, { 0x002100, 0x00217F }, 0x3F80, "rf675k.inc" , "rf675k_g.lkr" , 0 },
952 { PROC_CLASS_SX , "__SX18" , { "sx18ac" , "sx18" , "sx18" }, 0x0018, 4, 4, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, 0x0007FF, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
953 { PROC_CLASS_SX , "__SX20" , { "sx20ac" , "sx20" , "sx20" }, 0x0020, 4, 4, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, 0x0007FF, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
954 { PROC_CLASS_SX , "__SX28" , { "sx28ac" , "sx28" , "sx28" }, 0x0028, 4, 4, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, 0x0007FF, -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
955 { PROC_CLASS_SX , "__SX48" , { "sx48bd" , "sx48" , "sx48" }, 0x0048, 8, 8, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, 0x000FFF, -1, { -1, -1 }, { 0x001000, 0x00100F }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
956 { PROC_CLASS_SX , "__SX52" , { "sx52bd" , "sx52" , "sx52" }, 0x0052, 8, 8, 0x0000, { -1, -1 }, -1, { -1, -1 }, -1, 0x000FFF, -1, { -1, -1 }, { 0x001000, 0x00100F }, { -1, -1 }, { -1, -1 }, 0x0000, NULL , NULL , 0 },
957 };
958
959 #define NUM_PICS ARRAY_SIZE(pics)
960
961 /*------------------------------------------------------------------------------------------------*/
962
963 /*
964 * Display a list of the processor names.
965 */
966 void
gp_dump_processor_list(gp_boolean List_all,proc_class_t Class0,proc_class_t Class1,proc_class_t Class2)967 gp_dump_processor_list(gp_boolean List_all, proc_class_t Class0, proc_class_t Class1, proc_class_t Class2)
968 {
969 #define COLUMNS 6
970 #define SPACE_BETWEEN 2 /* number of chars between columns */
971 #define FAVORITE 1 /* there are 3 names to choose from */
972
973 int i;
974 int length;
975 int column_width;
976 int columns;
977 int num;
978 const char *name;
979 gp_boolean newline;
980 #ifdef TIOCGWINSZ
981 struct winsize ws;
982 #endif
983
984 column_width = 0;
985 columns = COLUMNS;
986 newline = false;
987
988 for (i = 0; i < NUM_PICS; i++) {
989 if (!List_all && (pics[i].class != Class0) && (pics[i].class != Class1) && (pics[i].class != Class2)) {
990 continue;
991 }
992
993 length = strlen(pics[i].names[FAVORITE]);
994
995 if (length > column_width) {
996 column_width = length;
997 }
998 }
999
1000 column_width += SPACE_BETWEEN;
1001
1002 #ifdef TIOCGWINSZ
1003 /* Adapt to available screen width. */
1004 if ((isatty(STDOUT_FILENO) > 0) && (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) == 0)) {
1005 columns = ws.ws_col / column_width;
1006 }
1007 else
1008 #endif
1009 {
1010 /* This will in particular be executed when a pipeline
1011 * is set up by a shell command.
1012 */
1013 const char *width = getenv("COLUMNS");
1014 int w = (width != NULL) ? atoi(width) : 80;
1015
1016 /* Check that the line width is reasonable. */
1017 if ((w <= 0) || (w > 240)) {
1018 w = 80;
1019 }
1020
1021 columns = w / column_width;
1022 }
1023
1024 num = 0;
1025 for (i = 0; i < NUM_PICS; i++) {
1026 if (List_all || (pics[i].class == Class0) || (pics[i].class == Class1) || (pics[i].class == Class2)) {
1027 num++;
1028 name = pics[i].names[FAVORITE];
1029 newline = ((num % columns) == 0) ? true : false;
1030
1031 if (i >= (NUM_PICS - 1)) {
1032 printf("%s", name);
1033 }
1034 else if (newline) {
1035 printf("%s\n", name);
1036 }
1037 else {
1038 printf("%-*s", column_width, name);
1039 }
1040 }
1041 }
1042
1043 if (!newline || (num == NUM_PICS)) {
1044 putchar('\n');
1045 }
1046 }
1047
1048 /*------------------------------------------------------------------------------------------------*/
1049
1050 void
gp_processor_invoke_custom_lister(proc_class_t Class0,proc_class_t Class1,proc_class_t Class2,void (* Custom_lister)(pic_processor_t))1051 gp_processor_invoke_custom_lister(proc_class_t Class0, proc_class_t Class1, proc_class_t Class2,
1052 void (*Custom_lister)(pic_processor_t))
1053 {
1054 int i;
1055 pic_processor_t proc;
1056
1057 for (i = 0; i < NUM_PICS; i++) {
1058 proc = &pics[i];
1059
1060 if ((Class0 != PROC_CLASS_UNKNOWN) || (Class1 != PROC_CLASS_UNKNOWN) || (Class2 != PROC_CLASS_UNKNOWN)) {
1061 if ((proc->class == Class0) || (proc->class == Class1) || (proc->class == Class2)) {
1062 (*Custom_lister)(proc);
1063 }
1064 }
1065 else {
1066 (*Custom_lister)(proc);
1067 }
1068 }
1069 }
1070
1071 /*------------------------------------------------------------------------------------------------*/
1072
1073 pic_processor_t
gp_find_processor(const char * Name)1074 gp_find_processor(const char *Name)
1075 {
1076 int i;
1077 int j;
1078
1079 for (i = 0; i < NUM_PICS; i++) {
1080 for (j = 0; (j < MAX_NAMES) && (pics[i].names[j] != NULL); j++) {
1081 if (strcasecmp(Name, pics[i].names[j]) == 0) {
1082 return &pics[i];
1083 }
1084 }
1085 }
1086
1087 return NULL;
1088 }
1089
1090 /*------------------------------------------------------------------------------------------------*/
1091
1092 proc_class_t
gp_processor_class(pic_processor_t Processor)1093 gp_processor_class(pic_processor_t Processor)
1094 {
1095 return ((Processor != NULL) ? Processor->class : PROC_CLASS_UNKNOWN);
1096 }
1097
1098 /*------------------------------------------------------------------------------------------------*/
1099
1100 const char *
gp_processor_class_to_str(proc_class_t Class)1101 gp_processor_class_to_str(proc_class_t Class)
1102 {
1103 if (Class == PROC_CLASS_EEPROM8) {
1104 return "EEPROM8";
1105 }
1106 else if (Class == PROC_CLASS_EEPROM16) {
1107 return "EEPROM16";
1108 }
1109 else if (Class == PROC_CLASS_GENERIC) {
1110 return "GENERIC";
1111 }
1112 else if (Class == PROC_CLASS_PIC12) {
1113 return "PIC12";
1114 }
1115 else if (Class == PROC_CLASS_PIC12E) {
1116 return "PIC12E";
1117 }
1118 else if (Class == PROC_CLASS_PIC12I) {
1119 return "PIC12I";
1120 }
1121 else if (Class == PROC_CLASS_SX) {
1122 return "SX";
1123 }
1124 else if (Class == PROC_CLASS_PIC14) {
1125 return "PIC14";
1126 }
1127 else if (Class == PROC_CLASS_PIC14E) {
1128 return "PIC14E";
1129 }
1130 else if (Class == PROC_CLASS_PIC14EX) {
1131 return "PIC14EX";
1132 }
1133 else if (Class == PROC_CLASS_PIC16) {
1134 return "PIC16";
1135 }
1136 else if (Class == PROC_CLASS_PIC16E) {
1137 return "PIC16E";
1138 }
1139 else {
1140 return "UNKNOWN";
1141 }
1142 }
1143
1144 /*------------------------------------------------------------------------------------------------*/
1145
1146 /* 18xx bsr boundary location */
1147
1148 unsigned int
gp_processor_bsr_boundary(pic_processor_t Processor)1149 gp_processor_bsr_boundary(pic_processor_t Processor)
1150 {
1151 if ((Processor != NULL) && (Processor->class == PROC_CLASS_PIC16E)) {
1152 return (Processor->common_ram_addrs[1] + 1);
1153 }
1154
1155 return 0;
1156 }
1157
1158 /*------------------------------------------------------------------------------------------------*/
1159
1160 uint32_t
gp_processor_coff_type(pic_processor_t Processor)1161 gp_processor_coff_type(pic_processor_t Processor)
1162 {
1163 return ((Processor != NULL) ? Processor->coff_type : 0);
1164 }
1165
1166 /*------------------------------------------------------------------------------------------------*/
1167
1168 unsigned int
gp_processor_num_pages(pic_processor_t Processor)1169 gp_processor_num_pages(pic_processor_t Processor)
1170 {
1171 return ((Processor != NULL) ? Processor->num_pages : 0);
1172 }
1173
1174 /*------------------------------------------------------------------------------------------------*/
1175
1176 unsigned int
gp_processor_num_banks(pic_processor_t Processor)1177 gp_processor_num_banks(pic_processor_t Processor)
1178 {
1179 if (Processor != NULL) {
1180 return Processor->num_banks;
1181 }
1182
1183 return 0;
1184 }
1185
1186 /*------------------------------------------------------------------------------------------------*/
1187
1188 pic_processor_t
gp_processor_coff_proc(uint32_t Coff_type)1189 gp_processor_coff_proc(uint32_t Coff_type)
1190 {
1191 int i;
1192
1193 for (i = 0; i < NUM_PICS; i++) {
1194 if (pics[i].coff_type == Coff_type) {
1195 return &pics[i];
1196 }
1197 }
1198
1199 return NULL;
1200 }
1201
1202 /*------------------------------------------------------------------------------------------------*/
1203
1204 const char *
gp_processor_name(pic_processor_t Processor,unsigned int Choice)1205 gp_processor_name(pic_processor_t Processor, unsigned int Choice)
1206 {
1207 assert(!(Choice > (MAX_NAMES - 1)));
1208
1209 return ((Processor != NULL) ? Processor->names[Choice] : NULL);
1210 }
1211
1212 /*------------------------------------------------------------------------------------------------*/
1213
1214 const char *
gp_processor_coff_name(uint32_t Coff_type,unsigned int Choice)1215 gp_processor_coff_name(uint32_t Coff_type, unsigned int Choice)
1216 {
1217 unsigned int i;
1218
1219 if (Coff_type == 0) {
1220 return NULL;
1221 }
1222
1223 assert(!(Choice > (MAX_NAMES - 1)));
1224
1225 for (i = 0; i < NUM_PICS; i++) {
1226 if (pics[i].coff_type == Coff_type) {
1227 return pics[i].names[Choice];
1228 }
1229 }
1230
1231 return NULL;
1232 }
1233
1234 /*------------------------------------------------------------------------------------------------*/
1235
1236 const char *
gp_processor_header(pic_processor_t Processor)1237 gp_processor_header(pic_processor_t Processor)
1238 {
1239 return ((Processor != NULL) ? Processor->header : NULL);
1240 }
1241
1242 /*------------------------------------------------------------------------------------------------*/
1243
1244 const char *
gp_processor_script(pic_processor_t Processor)1245 gp_processor_script(pic_processor_t Processor)
1246 {
1247 return ((Processor != NULL) ? Processor->script : NULL);
1248 }
1249
1250 /*------------------------------------------------------------------------------------------------*/
1251
1252 unsigned int
gp_processor_id_location(pic_processor_t Processor)1253 gp_processor_id_location(pic_processor_t Processor)
1254 {
1255 return ((Processor->class->id_location != NULL) ? Processor->class->id_location(Processor) : 0);
1256 }
1257
1258 /*------------------------------------------------------------------------------------------------*/
1259
1260 int
gp_byte_from_insn(unsigned int Shift,int Insn_address)1261 gp_byte_from_insn(unsigned int Shift, int Insn_address)
1262 {
1263 return (Insn_address << Shift);
1264 }
1265
1266 /*------------------------------------------------------------------------------------------------*/
1267
1268 int
gp_insn_from_byte(unsigned int Shift,int Byte_address)1269 gp_insn_from_byte(unsigned int Shift, int Byte_address)
1270 {
1271 return (Byte_address >> Shift);
1272 }
1273
1274 /*------------------------------------------------------------------------------------------------*/
1275
1276 int
gp_processor_reg_offs(pic_processor_t Processor,int Address)1277 gp_processor_reg_offs(pic_processor_t Processor, int Address)
1278 {
1279 if ((Processor == NULL) || (Address < 0)) {
1280 return -1;
1281 }
1282
1283 return (Address & Processor->class->bank_mask);
1284 }
1285
1286 /*------------------------------------------------------------------------------------------------*/
1287
1288 int
gp_processor_bank_addr(pic_processor_t Processor,int Address)1289 gp_processor_bank_addr(pic_processor_t Processor, int Address)
1290 {
1291 if ((Processor == NULL) || (Address < 0)) {
1292 return -1;
1293 }
1294
1295 return (Address & Processor->bank_bits);
1296 }
1297
1298 /*------------------------------------------------------------------------------------------------*/
1299
1300 int
gp_processor_bank_num(pic_processor_t Processor,int Address)1301 gp_processor_bank_num(pic_processor_t Processor, int Address)
1302 {
1303 if ((Processor == NULL) || (Address < 0)) {
1304 return -1;
1305 }
1306
1307 return ((Address & Processor->bank_bits) >> Processor->class->bank_bits_shift);
1308 }
1309
1310 /*------------------------------------------------------------------------------------------------*/
1311
1312 int
gp_processor_addr_from_bank_num(pic_processor_t Processor,int Number)1313 gp_processor_addr_from_bank_num(pic_processor_t Processor, int Number)
1314 {
1315 if ((Processor == NULL) || (Number < 0)) {
1316 return -1;
1317 }
1318
1319 return ((Number << Processor->class->bank_bits_shift) & Processor->bank_bits);
1320 }
1321
1322 /*------------------------------------------------------------------------------------------------*/
1323
1324 const int *
gp_processor_common_ram_exist(pic_processor_t Processor)1325 gp_processor_common_ram_exist(pic_processor_t Processor)
1326 {
1327 if (Processor == NULL) {
1328 return NULL;
1329 }
1330
1331 if ((Processor->common_ram_addrs[0] >= 0) &&
1332 (Processor->common_ram_addrs[0] <= Processor->common_ram_addrs[1])) {
1333 return Processor->common_ram_addrs;
1334 }
1335
1336 return NULL;
1337 }
1338
1339 /*------------------------------------------------------------------------------------------------*/
1340
1341 int
gp_processor_is_common_ram_addr(pic_processor_t Processor,int Address)1342 gp_processor_is_common_ram_addr(pic_processor_t Processor, int Address)
1343 {
1344 const int *cram_addrs;
1345 proc_class_t class;
1346
1347 if ((Processor == NULL) || (Address < 0)) {
1348 return -1;
1349 }
1350
1351 class = Processor->class;
1352
1353 if ((class != PROC_CLASS_GENERIC) &&
1354 (class != PROC_CLASS_PIC12) &&
1355 (class != PROC_CLASS_PIC12E) &&
1356 (class != PROC_CLASS_PIC12I) &&
1357 (class != PROC_CLASS_SX) &&
1358 (class != PROC_CLASS_PIC14) &&
1359 (class != PROC_CLASS_PIC14E) &&
1360 (class != PROC_CLASS_PIC14EX) &&
1361 (class != PROC_CLASS_PIC16) &&
1362 (class != PROC_CLASS_PIC16E)) {
1363 return -1;
1364 }
1365
1366 if ((Processor->common_ram_max > 0) && (Address > Processor->common_ram_max)) {
1367 return -1;
1368 }
1369
1370 if (class != PROC_CLASS_PIC16E) {
1371 /* The Common RAM - except the PIC16E family - exists in the all RAM banks. */
1372 Address &= class->bank_mask;
1373 }
1374
1375 if ((cram_addrs = gp_processor_common_ram_exist(Processor)) != NULL) {
1376 if ((Address >= cram_addrs[0]) && (Address <= cram_addrs[1])) {
1377 return (Address - cram_addrs[0]);
1378 }
1379 }
1380
1381 return -1;
1382 }
1383
1384 /*------------------------------------------------------------------------------------------------*/
1385
1386 gp_boolean
gp_processor_is_p16e_access_low(pic_processor_t Processor,int Address)1387 gp_processor_is_p16e_access_low(pic_processor_t Processor, int Address)
1388 {
1389 const int *cram_addrs;
1390
1391 if ((Processor->class != PROC_CLASS_PIC16E) || (Address < 0)) {
1392 return false;
1393 }
1394
1395 if ((cram_addrs = gp_processor_common_ram_exist(Processor)) != NULL) {
1396 return (((Address >= cram_addrs[0]) && (Address <= cram_addrs[1])) ? true : false);
1397 }
1398
1399 return false;
1400 }
1401
1402 /*------------------------------------------------------------------------------------------------*/
1403
1404 gp_boolean
gp_processor_is_p16e_access_high(pic_processor_t Processor,int Address,gp_boolean Mpasm_compatible)1405 gp_processor_is_p16e_access_high(pic_processor_t Processor, int Address, gp_boolean Mpasm_compatible)
1406 {
1407 const int *cram_addrs;
1408 unsigned int bank_size;
1409
1410 if ((Processor->class != PROC_CLASS_PIC16E) || ((!Mpasm_compatible) && (Address < 0))) {
1411 return false;
1412 }
1413
1414 if ((cram_addrs = gp_processor_common_ram_exist(Processor)) != NULL) {
1415 bank_size = Processor->class->bank_size;
1416 if (Mpasm_compatible) {
1417 /* The mpasmx not investigate the upper limit. */
1418 return ((Address > ((bank_size * 15) + cram_addrs[1])) ? true : false);
1419 }
1420 else {
1421 return (((Address > ((bank_size * 15) + cram_addrs[1])) && (Address < (bank_size * 16))) ? true : false);
1422 }
1423 }
1424
1425 return false;
1426 }
1427
1428 /*------------------------------------------------------------------------------------------------*/
1429
1430 gp_boolean
gp_processor_is_p16e_access(pic_processor_t Processor,int Address,gp_boolean Mpasm_compatible)1431 gp_processor_is_p16e_access(pic_processor_t Processor, int Address, gp_boolean Mpasm_compatible)
1432 {
1433 return (gp_processor_is_p16e_access_low(Processor, Address) |
1434 gp_processor_is_p16e_access_high(Processor, Address, Mpasm_compatible));
1435 }
1436
1437 /*------------------------------------------------------------------------------------------------*/
1438
1439 const int *
gp_processor_linear_ram_exist(pic_processor_t Processor)1440 gp_processor_linear_ram_exist(pic_processor_t Processor)
1441 {
1442 if (Processor == NULL) {
1443 return NULL;
1444 }
1445
1446 if ((Processor->linear_ram_addrs[0] > 0) &&
1447 (Processor->linear_ram_addrs[1] >= Processor->linear_ram_addrs[0])) {
1448 return Processor->linear_ram_addrs;
1449 }
1450
1451 return NULL;
1452 }
1453
1454 /*------------------------------------------------------------------------------------------------*/
1455
1456 int
gp_processor_is_linear_ram_addr(pic_processor_t Processor,int Address)1457 gp_processor_is_linear_ram_addr(pic_processor_t Processor, int Address)
1458 {
1459 const int *lram_addrs;
1460
1461 if ((Processor == NULL) ||
1462 ((Processor->class != PROC_CLASS_PIC14E) && (Processor->class != PROC_CLASS_PIC14EX))) {
1463 return -1;
1464 }
1465
1466 if (Address < 0) {
1467 return -1;
1468 }
1469
1470 if ((lram_addrs = gp_processor_linear_ram_exist(Processor)) != NULL) {
1471 if ((Address >= lram_addrs[0]) && (Address <= lram_addrs[1])) {
1472 return (Address - lram_addrs[0]);
1473 }
1474 }
1475
1476 return -1;
1477 }
1478
1479 /*------------------------------------------------------------------------------------------------*/
1480
1481 const int *
gp_processor_idlocs_exist(pic_processor_t Processor)1482 gp_processor_idlocs_exist(pic_processor_t Processor)
1483 {
1484 if (Processor == NULL) {
1485 return NULL;
1486 }
1487
1488 if ((Processor->idlocs_addrs[0] > 0) &&
1489 (Processor->idlocs_addrs[1] >= Processor->idlocs_addrs[0])) {
1490 return Processor->idlocs_addrs;
1491 }
1492
1493 return NULL;
1494 }
1495
1496 /*------------------------------------------------------------------------------------------------*/
1497
1498 int
gp_processor_is_idlocs_org(pic_processor_t Processor,int Org)1499 gp_processor_is_idlocs_org(pic_processor_t Processor, int Org)
1500 {
1501 const int *id_addrs;
1502
1503 if ((Processor == NULL) || (Org < 0)) {
1504 return -1;
1505 }
1506
1507 if ((id_addrs = gp_processor_idlocs_exist(Processor)) != NULL) {
1508 if ((Org >= id_addrs[0]) && (Org <= id_addrs[1])) {
1509 return (Org - id_addrs[0]);
1510 }
1511 }
1512
1513 return -1;
1514 }
1515
1516 /*------------------------------------------------------------------------------------------------*/
1517
1518 int
gp_processor_is_idlocs_byte_addr(pic_processor_t Processor,int Byte_address)1519 gp_processor_is_idlocs_byte_addr(pic_processor_t Processor, int Byte_address)
1520 {
1521 const int *idlocs;
1522 int start;
1523 int end;
1524
1525 if (Byte_address < 0) {
1526 return -1;
1527 }
1528
1529 if ((idlocs = gp_processor_idlocs_exist(Processor)) != NULL) {
1530 /* There is a need an address conversion. */
1531 start = gp_byte_from_insn(Processor->class->org_to_byte_shift, idlocs[0]);
1532 end = idlocs[1] - idlocs[0] + start;
1533
1534 if ((Byte_address >= start) && (Byte_address <= end)) {
1535 return (Byte_address - start);
1536 }
1537 }
1538
1539 return -1;
1540 }
1541
1542 /*------------------------------------------------------------------------------------------------*/
1543
1544 const int *
gp_processor_config_exist(pic_processor_t Processor)1545 gp_processor_config_exist(pic_processor_t Processor)
1546 {
1547 if (Processor == NULL) {
1548 return NULL;
1549 }
1550
1551 if ((Processor->config_addrs[0] > 0) &&
1552 (Processor->config_addrs[1] >= Processor->config_addrs[0])) {
1553 return Processor->config_addrs;
1554 }
1555
1556 return NULL;
1557 }
1558
1559 /*------------------------------------------------------------------------------------------------*/
1560
1561 int
gp_processor_is_config_org(pic_processor_t Processor,int Org)1562 gp_processor_is_config_org(pic_processor_t Processor, int Org)
1563 {
1564 const int *config;
1565
1566 if ((Processor == NULL) || (Org < 0)) {
1567 return -1;
1568 }
1569
1570 if ((config = gp_processor_config_exist(Processor)) != NULL) {
1571 if ((Org >= config[0]) && (Org <= config[1])) {
1572 return (Org - config[0]);
1573 }
1574 }
1575
1576 return -1;
1577 }
1578
1579 /*------------------------------------------------------------------------------------------------*/
1580
1581 int
gp_processor_is_config_byte_addr(pic_processor_t Processor,int Byte_address)1582 gp_processor_is_config_byte_addr(pic_processor_t Processor, int Byte_address)
1583 {
1584 const int *config;
1585 int start;
1586 int end;
1587
1588 if (Byte_address < 0) {
1589 return -1;
1590 }
1591
1592 if ((config = gp_processor_config_exist(Processor)) != NULL) {
1593 /* There is a need an address conversion. */
1594 start = gp_byte_from_insn(Processor->class->org_to_byte_shift, config[0]);
1595 end = config[1] - config[0] + start;
1596
1597 if ((Byte_address >= start) && (Byte_address <= end)) {
1598 return (Byte_address - start);
1599 }
1600 }
1601
1602 return -1;
1603 }
1604
1605 /*------------------------------------------------------------------------------------------------*/
1606
1607 const int *
gp_processor_eeprom_exist(pic_processor_t Processor)1608 gp_processor_eeprom_exist(pic_processor_t Processor)
1609 {
1610 if (Processor == NULL) {
1611 return NULL;
1612 }
1613
1614 if ((Processor->eeprom_addrs[0] > 0) &&
1615 (Processor->eeprom_addrs[1] >= Processor->eeprom_addrs[0])) {
1616 return Processor->eeprom_addrs;
1617 }
1618
1619 return NULL;
1620 }
1621
1622 /*------------------------------------------------------------------------------------------------*/
1623
1624 int
gp_processor_is_eeprom_org(pic_processor_t Processor,int Org)1625 gp_processor_is_eeprom_org(pic_processor_t Processor, int Org)
1626 {
1627 const int *eeprom;
1628
1629 if ((Processor == NULL) || (Org < 0)) {
1630 return -1;
1631 }
1632
1633 if ((eeprom = gp_processor_eeprom_exist(Processor)) != NULL) {
1634 if ((Org >= eeprom[0]) && (Org <= eeprom[1])) {
1635 return (Org - eeprom[0]);
1636 }
1637 }
1638
1639 return -1;
1640 }
1641
1642 /*------------------------------------------------------------------------------------------------*/
1643
1644 int
gp_processor_is_eeprom_byte_addr(pic_processor_t Processor,int Byte_address)1645 gp_processor_is_eeprom_byte_addr(pic_processor_t Processor, int Byte_address)
1646 {
1647 const int *eeprom;
1648 int start;
1649 int end;
1650
1651 if (Byte_address < 0) {
1652 return -1;
1653 }
1654
1655 if ((eeprom = gp_processor_eeprom_exist(Processor)) != NULL) {
1656 /* There is a need an address conversion. */
1657 start = gp_byte_from_insn(Processor->class->org_to_byte_shift, eeprom[0]);
1658 end = eeprom[1] - eeprom[0] + start;
1659
1660 if ((Byte_address >= start) && (Byte_address <= end)) {
1661 return (Byte_address - start);
1662 }
1663 }
1664
1665 return -1;
1666 }
1667
1668 /*------------------------------------------------------------------------------------------------*/
1669
1670 unsigned int
gp_processor_rom_width(proc_class_t Class)1671 gp_processor_rom_width(proc_class_t Class)
1672 {
1673 assert(Class->rom_width > 0);
1674 return Class->rom_width;
1675 }
1676
1677 /*------------------------------------------------------------------------------------------------*/
1678
1679 /* Set the page bits, return the number of instructions required. */
1680
1681 unsigned int
gp_processor_set_page(proc_class_t Class,unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg)1682 gp_processor_set_page(proc_class_t Class, unsigned int Num_pages, unsigned int Page, MemBlock_t *M,
1683 unsigned int Byte_address, gp_boolean Use_wreg)
1684 {
1685 return Class->set_page(Num_pages, Page, M, Byte_address, Use_wreg);
1686 }
1687
1688 /*------------------------------------------------------------------------------------------------*/
1689
1690 /* Mask the page bits, if exists. */
1691
1692 unsigned int
gp_processor_page_addr(proc_class_t Class,unsigned int Address)1693 gp_processor_page_addr(proc_class_t Class, unsigned int Address)
1694 {
1695 return Class->page_addr(Address);
1696 }
1697
1698 /*------------------------------------------------------------------------------------------------*/
1699
1700 unsigned int
gp_processor_addr_from_page_bits(proc_class_t Class,unsigned int Bits)1701 gp_processor_addr_from_page_bits(proc_class_t Class, unsigned int Bits)
1702 {
1703 return Class->addr_from_page_bits(Bits);
1704 }
1705
1706 /*------------------------------------------------------------------------------------------------*/
1707
1708 /* Set the bank bits, return the number of instructions required. */
1709
1710 unsigned int
gp_processor_set_bank(proc_class_t Class,unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)1711 gp_processor_set_bank(proc_class_t Class, unsigned int Num_banks, unsigned int Bank, MemBlock_t *M,
1712 unsigned int Byte_address, gp_boolean Mpasm_compatible)
1713 {
1714 return Class->set_bank(Num_banks, Bank, M, Byte_address, Mpasm_compatible);
1715 }
1716
1717 /*------------------------------------------------------------------------------------------------*/
1718
1719 unsigned int
gp_processor_set_ibank(proc_class_t Class,unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address)1720 gp_processor_set_ibank(proc_class_t Class, unsigned int Num_banks, unsigned int Bank, MemBlock_t *M,
1721 unsigned int Byte_address)
1722 {
1723 return Class->set_ibank(Num_banks, Bank, M, Byte_address);
1724 }
1725
1726 /*------------------------------------------------------------------------------------------------*/
1727
1728 /* determine the value for retlw */
1729
1730 unsigned int
gp_processor_retlw(proc_class_t Class)1731 gp_processor_retlw(proc_class_t Class)
1732 {
1733 assert(Class->retlw > 0);
1734 return Class->retlw;
1735 }
1736
1737 /*------------------------------------------------------------------------------------------------*/
1738
1739 int
gp_processor_byte_from_insn_c(proc_class_t Class,int Insn_address)1740 gp_processor_byte_from_insn_c(proc_class_t Class, int Insn_address)
1741 {
1742 /* FIXME: In some places we use this value before we know what the
1743 Processor is. Rather than fix those now, I'll just return some
1744 value. */
1745 if (Class == NULL) {
1746 return Insn_address;
1747 }
1748
1749 return gp_byte_from_insn(Class->org_to_byte_shift, Insn_address);
1750 }
1751
1752 /*------------------------------------------------------------------------------------------------*/
1753
1754 int
gp_processor_byte_from_insn_p(pic_processor_t Processor,int Insn_address)1755 gp_processor_byte_from_insn_p(pic_processor_t Processor, int Insn_address)
1756 {
1757 if (Processor == NULL) {
1758 return Insn_address;
1759 }
1760
1761 return gp_processor_byte_from_insn_c(Processor->class, Insn_address);
1762 }
1763
1764 /*------------------------------------------------------------------------------------------------*/
1765
1766 int
gp_processor_insn_from_byte_c(proc_class_t Class,int Byte_address)1767 gp_processor_insn_from_byte_c(proc_class_t Class, int Byte_address)
1768 {
1769 /* FIXME: In some places we use this value before we know what the
1770 Processor is. Rather than fix those now, I'll just return some
1771 value. */
1772 if (Class == NULL) {
1773 return Byte_address;
1774 }
1775
1776 return gp_insn_from_byte(Class->org_to_byte_shift, Byte_address);
1777 }
1778
1779 /*------------------------------------------------------------------------------------------------*/
1780
1781 int
gp_processor_insn_from_byte_p(pic_processor_t Processor,int Byte_address)1782 gp_processor_insn_from_byte_p(pic_processor_t Processor, int Byte_address)
1783 {
1784 if (Processor == NULL) {
1785 return Byte_address;
1786 }
1787
1788 return gp_processor_insn_from_byte_c(Processor->class, Byte_address);
1789 }
1790
1791 /*------------------------------------------------------------------------------------------------*/
1792
1793 /* determine which page of program memory the byte address is located */
1794
1795 unsigned int
gp_processor_check_page(proc_class_t Class,unsigned int Insn_address)1796 gp_processor_check_page(proc_class_t Class, unsigned int Insn_address)
1797 {
1798 return Class->check_page(Insn_address);
1799 }
1800
1801 /*------------------------------------------------------------------------------------------------*/
1802
1803 /* determine which bank of data memory the address is located */
1804
1805 int
gp_processor_bank_from_addr(proc_class_t Class,int Address)1806 gp_processor_bank_from_addr(proc_class_t Class, int Address)
1807 {
1808 return Class->bank_from_addr(Address);
1809 }
1810
1811 /*------------------------------------------------------------------------------------------------*/
1812
1813 /* determine which bank of data memory the address is located */
1814
1815 int
gp_processor_check_ibank(proc_class_t Class,int Address)1816 gp_processor_check_ibank(proc_class_t Class, int Address)
1817 {
1818 return Class->check_ibank(Address);
1819 }
1820
1821 /*------------------------------------------------------------------------------------------------*/
1822
1823 /* When unsupported on the class. */
1824
1825 static int
_xbank_from_addr_unsupported(int Address)1826 _xbank_from_addr_unsupported(int Address)
1827 {
1828 (void)Address;
1829 assert(0);
1830 return 0;
1831 }
1832
1833 /*------------------------------------------------------------------------------------------------*/
1834
1835 static unsigned int
_set_bank_unsupported(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Address,gp_boolean Mpasm_compatible)1836 _set_bank_unsupported(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Address,
1837 gp_boolean Mpasm_compatible)
1838 {
1839 (void)Num_banks;
1840 (void)Bank;
1841 (void)M;
1842 (void)Address;
1843 (void)Mpasm_compatible;
1844 assert(0);
1845 return 0;
1846 }
1847
1848 /*------------------------------------------------------------------------------------------------*/
1849
1850 static unsigned int
_set_ibank_unsupported(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Address)1851 _set_ibank_unsupported(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Address)
1852 {
1853 (void)Num_banks;
1854 (void)Bank;
1855 (void)M;
1856 (void)Address;
1857 assert(0);
1858 return 0;
1859 }
1860
1861 /*------------------------------------------------------------------------------------------------*/
1862
1863 static unsigned int
_banksel_byte_length_unsupported(unsigned int Num_banks,gp_boolean Mpasm_compatible)1864 _banksel_byte_length_unsupported(unsigned int Num_banks, gp_boolean Mpasm_compatible)
1865 {
1866 (void)Num_banks;
1867 (void)Mpasm_compatible;
1868 assert(0);
1869 return 0;
1870 }
1871
1872 /*------------------------------------------------------------------------------------------------*/
1873
1874 static unsigned int
_check_page_unsupported(unsigned int Insn_address)1875 _check_page_unsupported(unsigned int Insn_address)
1876 {
1877 (void)Insn_address;
1878 assert(0);
1879 return 0;
1880 }
1881
1882 /*------------------------------------------------------------------------------------------------*/
1883
1884 static unsigned int
_set_page_unsupported(unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg)1885 _set_page_unsupported(unsigned int Num_pages, unsigned int Page, MemBlock_t *M, unsigned int Byte_address,
1886 gp_boolean Use_wreg)
1887 {
1888 (void)Num_pages;
1889 (void)Page;
1890 (void)M;
1891 (void)Byte_address;
1892 (void)Use_wreg;
1893 assert(0);
1894 return 0;
1895 }
1896
1897 /*------------------------------------------------------------------------------------------------*/
1898
1899 static unsigned int
_pagesel_byte_length_unsupported(unsigned int Num_pages,gp_boolean Use_wreg)1900 _pagesel_byte_length_unsupported(unsigned int Num_pages, gp_boolean Use_wreg)
1901 {
1902 (void)Num_pages;
1903 (void)Use_wreg;
1904 assert(0);
1905 return 0;
1906 }
1907
1908 /*------------------------------------------------------------------------------------------------*/
1909
1910 static unsigned int
_page_addr_unsupported(unsigned int Address)1911 _page_addr_unsupported(unsigned int Address)
1912 {
1913 (void)Address;
1914 assert(0);
1915 return 0;
1916 }
1917
1918 /*------------------------------------------------------------------------------------------------*/
1919
1920 static unsigned int
_addr_from_page_bits_unsupported(unsigned int Bits)1921 _addr_from_page_bits_unsupported(unsigned int Bits)
1922 {
1923 (void)Bits;
1924 assert(0);
1925 return 0;
1926 }
1927
1928 /*------------------------------------------------------------------------------------------------*/
1929
1930 static unsigned int
_reloc_unsupported(unsigned int Address)1931 _reloc_unsupported(unsigned int Address)
1932 {
1933 (void)Address;
1934 assert(0);
1935 return 0;
1936 }
1937
1938 /*------------------------------------------------------------------------------------------------*/
1939
1940 static unsigned int
_reloc_bra_unsupported(const gp_section_t * Section,unsigned int Value,unsigned int Byte_address)1941 _reloc_bra_unsupported(const gp_section_t *Section, unsigned int Value, unsigned int Byte_address)
1942 {
1943 (void)Section;
1944 (void)Value;
1945 (void)Byte_address;
1946 assert(0);
1947 return 0;
1948 }
1949
1950 /*------------------------------------------------------------------------------------------------*/
1951
1952 static unsigned int
_reloc_high_unsupported(gp_boolean Is_code,unsigned int Value)1953 _reloc_high_unsupported(gp_boolean Is_code, unsigned int Value)
1954 {
1955 (void)Is_code;
1956 (void)Value;
1957 assert(0);
1958 return 0;
1959 }
1960
1961 /*------------------------------------------------------------------------------------------------*/
1962
1963 /* Common to most */
1964
1965 static const insn_t *
_find_insn_generic(proc_class_t Class,unsigned int Opcode)1966 _find_insn_generic(proc_class_t Class, unsigned int Opcode)
1967 {
1968 const insn_t *base;
1969 int count;
1970 int i;
1971
1972 base = Class->instructions;
1973
1974 if (base == NULL) {
1975 return NULL;
1976 }
1977
1978 count = *(Class->num_instructions);
1979 for (i = 0; i < count; i++) {
1980 if ((base[i].mask & Opcode) == base[i].opcode) {
1981 return &base[i];
1982 }
1983 }
1984
1985 return NULL;
1986 }
1987
1988 /*------------------------------------------------------------------------------------------------*/
1989
1990 static unsigned int
_reloc_high_generic(gp_boolean Is_code,unsigned int Value)1991 _reloc_high_generic(gp_boolean Is_code, unsigned int Value)
1992 {
1993 (void)Is_code;
1994 return ((Value >> 8) & 0xff);
1995 }
1996
1997 /*------------------------------------------------------------------------------------------------*/
1998
1999 /* Common to PIC12 and PIC14 */
2000
2001 static unsigned int
_set_page_pic12_14(unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg,unsigned int Bcf_insn,unsigned int Bsf_insn,unsigned int Movlw_insn,unsigned int Movwf_insn,unsigned int Location,unsigned int Page0,unsigned int Page1)2002 _set_page_pic12_14(unsigned int Num_pages, unsigned int Page, MemBlock_t *M, unsigned int Byte_address,
2003 gp_boolean Use_wreg, unsigned int Bcf_insn, unsigned int Bsf_insn, unsigned int Movlw_insn,
2004 unsigned int Movwf_insn, unsigned int Location, unsigned int Page0, unsigned int Page1)
2005 {
2006 uint16_t data;
2007 unsigned int insn_byte_len;
2008 char buf[BUFSIZ];
2009
2010 assert(Num_pages <= 4);
2011
2012 if (Num_pages == 1) {
2013 return 0;
2014 }
2015
2016 snprintf(buf, sizeof(buf), "page_%u", Page);
2017
2018 if (Use_wreg) {
2019 data = Movlw_insn | Page;
2020 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2021 insn_byte_len = 2;
2022 data = Movwf_insn | Location;
2023 gp_mem_i_put_le(M, Byte_address + insn_byte_len, data, buf, NULL);
2024 insn_byte_len += 2;
2025 }
2026 else {
2027 /* page low bit */
2028 data = ((Page & 1) ? Bsf_insn : Bcf_insn) | Page0 | Location;
2029 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2030 insn_byte_len = 2;
2031
2032 if (Num_pages > 2) {
2033 /* page high bit */
2034 data = ((Page & 2) ? Bsf_insn : Bcf_insn) | Page1 | Location;
2035 gp_mem_i_put_le(M, Byte_address + insn_byte_len, data, buf, NULL);
2036 insn_byte_len += 2;
2037 }
2038 }
2039
2040 return insn_byte_len;
2041 }
2042
2043 /*------------------------------------------------------------------------------------------------*/
2044
2045 static unsigned int
_pagesel_byte_length_pic12_14(unsigned int Num_pages,gp_boolean Use_wreg)2046 _pagesel_byte_length_pic12_14(unsigned int Num_pages, gp_boolean Use_wreg)
2047 {
2048 if (Num_pages == 1) {
2049 return 0;
2050 }
2051
2052 if (Use_wreg) {
2053 return 4;
2054 }
2055 else {
2056 return ((Num_pages > 2) ? 4 : 2);
2057 }
2058 }
2059
2060 /*------------------------------------------------------------------------------------------------*/
2061
2062 static unsigned int
_set_bank_pic12_14(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,unsigned int Bcf_insn,unsigned int Bsf_insn,unsigned int Location,unsigned int Bank0,unsigned int Bank1,unsigned int Bank2,gp_boolean Mpasm_compatible)2063 _set_bank_pic12_14(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2064 unsigned int Bcf_insn, unsigned int Bsf_insn, unsigned int Location,
2065 unsigned int Bank0, unsigned int Bank1, unsigned int Bank2, gp_boolean Mpasm_compatible)
2066 {
2067 uint16_t data;
2068 unsigned int insn_byte_len;
2069 char buf[BUFSIZ];
2070
2071 /* 16F59 */
2072 assert(Num_banks <= 8);
2073
2074 if (Num_banks == 1) {
2075 return 0;
2076 }
2077
2078 snprintf(buf, sizeof(buf), "bank_%u", Bank);
2079
2080 /* bank low bit */
2081 data = ((Bank & 1) ? Bsf_insn : Bcf_insn) | Bank0 | Location;
2082 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2083 insn_byte_len = 2;
2084
2085 if ((Num_banks > 2) || Mpasm_compatible) {
2086 /* bank high bit */
2087 data = ((Bank & 2) ? Bsf_insn : Bcf_insn) | Bank1 | Location;
2088 gp_mem_i_put_le(M, Byte_address + insn_byte_len, data, buf, NULL);
2089 insn_byte_len += 2;
2090 }
2091
2092 if (Num_banks > 4) {
2093 /* bank upper bit */
2094 data = ((Bank & 4) ? Bsf_insn : Bcf_insn) | Bank2 | Location;
2095 gp_mem_i_put_le(M, Byte_address + insn_byte_len, data, buf, NULL);
2096 insn_byte_len += 2;
2097 }
2098
2099 return insn_byte_len;
2100 }
2101
2102 /*------------------------------------------------------------------------------------------------*/
2103
2104 static unsigned int
_banksel_byte_length_pic12_14(unsigned int Num_banks,gp_boolean Mpasm_compatible)2105 _banksel_byte_length_pic12_14(unsigned int Num_banks, gp_boolean Mpasm_compatible)
2106 {
2107 int insn_byte_len;
2108
2109 if (Num_banks == 1) {
2110 return 0;
2111 }
2112
2113 insn_byte_len = 2;
2114
2115 if ((Num_banks > 2) || (Mpasm_compatible)) {
2116 insn_byte_len += 2;
2117 }
2118
2119 if (Num_banks > 4) {
2120 insn_byte_len += 2;
2121 }
2122
2123 return insn_byte_len;
2124 }
2125
2126 /*------------------------------------------------------------------------------------------------*/
2127
2128 /* PIC12 */
2129
2130 static unsigned int
_id_location_pic12(pic_processor_t Processor)2131 _id_location_pic12(pic_processor_t Processor)
2132 {
2133 if ((Processor->idlocs_addrs[0] > 0) && (Processor->idlocs_addrs[1] > 0)) {
2134 /* We carry org in the struct px, but return byte address. */
2135 return gp_byte_from_insn(Processor->class->org_to_byte_shift, Processor->idlocs_addrs[0]);
2136 }
2137 return 0;
2138 }
2139
2140 /*------------------------------------------------------------------------------------------------*/
2141
2142 static int
_bank_from_addr_pic12(int Address)2143 _bank_from_addr_pic12(int Address)
2144 {
2145 if (Address < 0) {
2146 return -1;
2147 }
2148
2149 return ((Address >> PIC12_BANK_SHIFT) & PIC12_BMSK_BANK);
2150 }
2151
2152 /*------------------------------------------------------------------------------------------------*/
2153
2154 static unsigned int
_set_bank_pic12(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)2155 _set_bank_pic12(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2156 gp_boolean Mpasm_compatible)
2157 {
2158 return _set_bank_pic12_14(Num_banks, Bank, M, Byte_address,
2159 PIC12_INSN_BCF, PIC12_INSN_BSF,
2160 PIC12_REG_FSR,
2161 PIC12_BIT_FSR_RP0 << PIC12_INSN_BxF_BITSHIFT,
2162 PIC12_BIT_FSR_RP1 << PIC12_INSN_BxF_BITSHIFT,
2163 PIC12_BIT_FSR_RP2 << PIC12_INSN_BxF_BITSHIFT,
2164 Mpasm_compatible);
2165 }
2166
2167 /*------------------------------------------------------------------------------------------------*/
2168
2169 static unsigned int
_check_page_pic12(unsigned int Insn_address)2170 _check_page_pic12(unsigned int Insn_address)
2171 {
2172 return ((Insn_address & PIC12_PAGE_BITS) >> PIC12_PAGE_SHIFT);
2173 }
2174
2175 /*------------------------------------------------------------------------------------------------*/
2176
2177 static unsigned int
_page_addr_pic12(unsigned int Insn_address)2178 _page_addr_pic12(unsigned int Insn_address)
2179 {
2180 return (Insn_address & PIC12_PAGE_BITS);
2181 }
2182
2183 /*------------------------------------------------------------------------------------------------*/
2184
2185 static unsigned int
_addr_from_page_bits_pic12(unsigned int Bits)2186 _addr_from_page_bits_pic12(unsigned int Bits)
2187 {
2188 return _page_addr_pic12(Bits << PIC12_PAGE_SHIFT);
2189 }
2190
2191 /*------------------------------------------------------------------------------------------------*/
2192
2193 static unsigned int
_set_page_pic12(unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg)2194 _set_page_pic12(unsigned int Num_pages, unsigned int Page, MemBlock_t *M, unsigned int Byte_address,
2195 gp_boolean Use_wreg)
2196 {
2197 return _set_page_pic12_14(Num_pages, Page, M, Byte_address, Use_wreg,
2198 PIC12_INSN_BCF, PIC12_INSN_BSF,
2199 PIC12_INSN_MOVLW, PIC12_INSN_MOVWF,
2200 PIC12_REG_STATUS,
2201 PIC12_BIT_STATUS_PA0 << PIC12_INSN_BxF_BITSHIFT,
2202 PIC12_BIT_STATUS_PA1 << PIC12_INSN_BxF_BITSHIFT);
2203 }
2204
2205 /*------------------------------------------------------------------------------------------------*/
2206
2207 static unsigned int
_reloc_call_pic12(unsigned int Insn_address)2208 _reloc_call_pic12(unsigned int Insn_address)
2209 {
2210 return (Insn_address & PIC12_BMSK_CALL);
2211 }
2212
2213 /*------------------------------------------------------------------------------------------------*/
2214
2215 static unsigned int
_reloc_goto_pic12(unsigned int Insn_address)2216 _reloc_goto_pic12(unsigned int Insn_address)
2217 {
2218 return (Insn_address & PIC12_BMSK_GOTO);
2219 }
2220
2221 /*------------------------------------------------------------------------------------------------*/
2222
2223 static unsigned int
_reloc_f_pic12(unsigned int Address)2224 _reloc_f_pic12(unsigned int Address)
2225 {
2226 return (Address & PIC12_BMSK_FILE);
2227 }
2228
2229 /*------------------------------------------------------------------------------------------------*/
2230
2231 static unsigned int
_reloc_tris_pic12(unsigned int Address)2232 _reloc_tris_pic12(unsigned int Address)
2233 {
2234 /* TODO This is not accurate, for example PIC12F510/16F506 only has
2235 three bits and allowed values of 6 and 7. MPASM 5.34 has
2236 Error[126] : Argument out of range (0000 not between 0005 and 0009)
2237 */
2238
2239 /* Seen in the data sheets that everywhere three bits there are in the PIC12 family. */
2240 return (Address & PIC12_BMSK_TRIS);
2241 }
2242
2243 /*------------------------------------------------------------------------------------------------*/
2244
2245 /* PIC12E */
2246
2247 static int
_bank_from_addr_pic12e(int Address)2248 _bank_from_addr_pic12e(int Address)
2249 {
2250 if (Address < 0) {
2251 return -1;
2252 }
2253
2254 return ((Address >> PIC12_BANK_SHIFT) & PIC12E_BMSK_BANK);
2255 }
2256
2257 /*------------------------------------------------------------------------------------------------*/
2258
2259 static unsigned int
_set_bank_pic12e(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)2260 _set_bank_pic12e(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2261 gp_boolean Mpasm_compatible)
2262 {
2263 uint16_t data;
2264 char buf[BUFSIZ];
2265
2266 (void)Mpasm_compatible;
2267
2268 Bank &= PIC12E_BMSK_BANK;
2269 data = PIC12E_INSN_MOVLB | Bank;
2270 snprintf(buf, sizeof(buf), "bank_%u", Bank);
2271
2272 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2273 return 2;
2274 }
2275
2276 /*------------------------------------------------------------------------------------------------*/
2277
2278 static unsigned int
_banksel_byte_length_pic12e(unsigned int Num_banks,gp_boolean Mpasm_compatible)2279 _banksel_byte_length_pic12e(unsigned int Num_banks, gp_boolean Mpasm_compatible)
2280 {
2281 (void)Num_banks;
2282 (void)Mpasm_compatible;
2283 return 2;
2284 }
2285
2286 /*------------------------------------------------------------------------------------------------*/
2287
2288 static unsigned int
_reloc_tris_pic12e(unsigned int address)2289 _reloc_tris_pic12e(unsigned int address)
2290 {
2291 return (address & PIC12_BMSK_TRIS);
2292 }
2293
2294 /*------------------------------------------------------------------------------------------------*/
2295
2296 static const insn_t *
_find_insn_pic12e(proc_class_t Class,unsigned int Opcode)2297 _find_insn_pic12e(proc_class_t Class, unsigned int Opcode)
2298 {
2299 int i;
2300
2301 (void)Class;
2302
2303 /* First explore the enhanced instruction set. */
2304 for (i = 0; i < num_op_16c5xx_enh; i++) {
2305 if ((op_16c5xx_enh[i].mask & Opcode) == op_16c5xx_enh[i].opcode) {
2306 return &op_16c5xx_enh[i];
2307 }
2308 }
2309
2310 for (i = 0; i < num_op_12c5xx; i++) {
2311 if ((op_12c5xx[i].mask & Opcode) == op_12c5xx[i].opcode) {
2312 return &op_12c5xx[i];
2313 }
2314 }
2315
2316 return NULL;
2317 }
2318
2319 /*------------------------------------------------------------------------------------------------*/
2320
2321 /* SX */
2322
2323 static unsigned int
_check_page_sx(unsigned int Insn_address)2324 _check_page_sx(unsigned int Insn_address)
2325 {
2326 return ((Insn_address & PIC12_PAGE_BITS) >> PIC12_PAGE_SHIFT);
2327 }
2328
2329 /*------------------------------------------------------------------------------------------------*/
2330
2331 static unsigned int
_page_addr_sx(unsigned int Insn_address)2332 _page_addr_sx(unsigned int Insn_address)
2333 {
2334 return (Insn_address & PIC12_PAGE_BITS);
2335 }
2336
2337 /*------------------------------------------------------------------------------------------------*/
2338
2339 static unsigned int
_addr_from_page_bits_sx(unsigned int Bits)2340 _addr_from_page_bits_sx(unsigned int Bits)
2341 {
2342 return _page_addr_sx(Bits << PIC12_PAGE_SHIFT);
2343 }
2344
2345 /*------------------------------------------------------------------------------------------------*/
2346
2347 static unsigned int
_set_page_sx(unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg)2348 _set_page_sx(unsigned int Num_pages, unsigned int Page, MemBlock_t *M, unsigned int Byte_address,
2349 gp_boolean Use_wreg)
2350 {
2351 uint16_t data;
2352 char buf[BUFSIZ];
2353
2354 if (Num_pages == 1) {
2355 return 0;
2356 }
2357
2358 Page &= MASK_SX_PAGE;
2359 snprintf(buf, sizeof(buf), "page_%u", Page);
2360
2361 data = SX_INSN_PAGE | Page;
2362 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2363 return 2;
2364 }
2365
2366 /*------------------------------------------------------------------------------------------------*/
2367
2368 /* PIC14 */
2369
2370 static unsigned int
_id_location_pic14(pic_processor_t Processor)2371 _id_location_pic14(pic_processor_t Processor)
2372 {
2373 if ((Processor->idlocs_addrs[0] > 0) && (Processor->idlocs_addrs[1] > 0)) {
2374 /* We carry org in the struct px, but return byte address. */
2375 return gp_byte_from_insn(Processor->class->org_to_byte_shift, Processor->idlocs_addrs[0]);
2376 }
2377 return 0;
2378 }
2379
2380 /*------------------------------------------------------------------------------------------------*/
2381
2382 static int
_bank_from_addr_pic14(int Address)2383 _bank_from_addr_pic14(int Address)
2384 {
2385 if (Address < 0) {
2386 return -1;
2387 }
2388
2389 return ((Address >> PIC14_BANK_SHIFT) & PIC14_BMSK_BANK);
2390 }
2391
2392 /*------------------------------------------------------------------------------------------------*/
2393
2394 static unsigned int
_set_bank_pic14(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)2395 _set_bank_pic14(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2396 gp_boolean Mpasm_compatible)
2397 {
2398 return _set_bank_pic12_14(Num_banks, Bank, M, Byte_address,
2399 PIC14_INSN_BCF, PIC14_INSN_BSF,
2400 PIC14_REG_STATUS,
2401 PIC14_BIT_STATUS_RP0 << PIC14_INSN_BxF_BITSHIFT,
2402 PIC14_BIT_STATUS_RP1 << PIC14_INSN_BxF_BITSHIFT,
2403 -1,
2404 Mpasm_compatible);
2405 }
2406
2407 /*------------------------------------------------------------------------------------------------*/
2408
2409 static int
_check_ibank_pic14(int Address)2410 _check_ibank_pic14(int Address)
2411 {
2412 if (Address < 0) {
2413 return -1;
2414 }
2415
2416 return ((Address >> 8) & 0x0f);
2417 }
2418
2419 /*------------------------------------------------------------------------------------------------*/
2420
2421 static unsigned int
_set_ibank_pic14(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address)2422 _set_ibank_pic14(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address)
2423 {
2424 /* bcf STATUS,7 or bsf STATUS,7 (STATUS: 3) */
2425 /* bcf: 01 00bb bfff ffff
2426 * bsf: 01 01bb bfff ffff */
2427 gp_mem_i_put_le(M, Byte_address, (Bank == 0) ? 0x1383 : 0x1783, (Bank == 0) ? "ibank0" : "ibank1", NULL);
2428 return 2;
2429 }
2430
2431 /*------------------------------------------------------------------------------------------------*/
2432
2433 static unsigned int
_check_page_pic14(unsigned int insn_address)2434 _check_page_pic14(unsigned int insn_address)
2435 {
2436 return ((insn_address & PIC14_PAGE_BITS) >> PIC14_PAGE_SHIFT);
2437 }
2438
2439 /*------------------------------------------------------------------------------------------------*/
2440
2441 static unsigned int
_page_addr_pic14(unsigned int Insn_address)2442 _page_addr_pic14(unsigned int Insn_address)
2443 {
2444 return (Insn_address & PIC14_PAGE_BITS);
2445 }
2446
2447 /*------------------------------------------------------------------------------------------------*/
2448
2449 static unsigned int
_addr_from_page_bits_pic14(unsigned int Bits)2450 _addr_from_page_bits_pic14(unsigned int Bits)
2451 {
2452 return _page_addr_pic14(Bits << PIC14_PAGE_SHIFT);
2453 }
2454
2455 /*------------------------------------------------------------------------------------------------*/
2456
2457 static unsigned int
_set_page_pic14(unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg)2458 _set_page_pic14(unsigned int Num_pages, unsigned int Page, MemBlock_t *M, unsigned int Byte_address,
2459 gp_boolean Use_wreg)
2460 {
2461 return _set_page_pic12_14(Num_pages, Page, M, Byte_address, Use_wreg,
2462 PIC14_INSN_BCF, PIC14_INSN_BSF,
2463 PIC14_INSN_MOVLW, PIC14_INSN_MOVWF,
2464 PIC14_REG_PCLATH,
2465 PIC14_BIT_PCLATH_3 << PIC14_INSN_BxF_BITSHIFT,
2466 PIC14_BIT_PCLATH_4 << PIC14_INSN_BxF_BITSHIFT);
2467 }
2468
2469 /*------------------------------------------------------------------------------------------------*/
2470
2471 static unsigned int
_reloc_call_pic14(unsigned int Insn_address)2472 _reloc_call_pic14(unsigned int Insn_address)
2473 {
2474 return (Insn_address & PIC14_BMSK_BRANCH);
2475 }
2476
2477 /*------------------------------------------------------------------------------------------------*/
2478
2479 static unsigned int
_reloc_goto_pic14(unsigned int Insn_address)2480 _reloc_goto_pic14(unsigned int Insn_address)
2481 {
2482 return (Insn_address & PIC14_BMSK_BRANCH);
2483 }
2484
2485 /*------------------------------------------------------------------------------------------------*/
2486
2487 static unsigned int
_reloc_f_pic14(unsigned int Address)2488 _reloc_f_pic14(unsigned int Address)
2489 {
2490 return (Address & PIC14_BMSK_FILE);
2491 }
2492
2493 /*------------------------------------------------------------------------------------------------*/
2494
2495 static unsigned int
_reloc_tris_pic14(unsigned int Address)2496 _reloc_tris_pic14(unsigned int Address)
2497 {
2498 /* According to the data sheets, the TRIS instruction does not exist in the PIC14 family. */
2499 return (Address & PIC14_BMSK_TRIS);
2500 }
2501
2502 /*------------------------------------------------------------------------------------------------*/
2503
2504 static void
_patch_strict_pic14(void)2505 _patch_strict_pic14(void)
2506 {
2507 unsigned int i;
2508 unsigned int j;
2509
2510 for (i = 0, j = 0; (i < num_op_16cxx) && (j < num_op_16cxx_strict_mask); ++i) {
2511 if (strcasecmp(op_16cxx[i].name, op_16cxx_strict_mask[j].name) == 0) {
2512 op_16cxx[i].mask = op_16cxx_strict_mask[j].mask;
2513 ++j;
2514 }
2515 }
2516 }
2517
2518 /*------------------------------------------------------------------------------------------------*/
2519
2520 /* PIC14E */
2521
2522 static int
_bank_from_addr_pic14e(int Address)2523 _bank_from_addr_pic14e(int Address)
2524 {
2525 if (Address < 0) {
2526 return -1;
2527 }
2528
2529 return ((Address >> PIC14_BANK_SHIFT) & PIC14E_BMSK_BANK);
2530 }
2531
2532 /*------------------------------------------------------------------------------------------------*/
2533
2534 static unsigned int
_set_bank_pic14e(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)2535 _set_bank_pic14e(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2536 gp_boolean Mpasm_compatible)
2537 {
2538 uint16_t data;
2539 char buf[BUFSIZ];
2540
2541 (void)Mpasm_compatible;
2542
2543 Bank &= PIC14E_BMSK_BANK;
2544 data = PIC14E_INSN_MOVLB | Bank;
2545 snprintf(buf, sizeof(buf), "bank_%u", Bank);
2546
2547 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2548 return 2;
2549 }
2550
2551 /*------------------------------------------------------------------------------------------------*/
2552
2553 static unsigned int
_banksel_byte_length_pic14e(unsigned int Num_banks,gp_boolean Mpasm_compatible)2554 _banksel_byte_length_pic14e(unsigned int Num_banks, gp_boolean Mpasm_compatible)
2555 {
2556 (void)Num_banks;
2557 (void)Mpasm_compatible;
2558 return 2;
2559 }
2560
2561 /*------------------------------------------------------------------------------------------------*/
2562
2563 static int
_check_ibank_pic14e(int Address)2564 _check_ibank_pic14e(int Address)
2565 {
2566 if (Address < 0) {
2567 return -1;
2568 }
2569
2570 return ((Address >> 8) & 0x0f);
2571 }
2572
2573 /*------------------------------------------------------------------------------------------------*/
2574
2575 static unsigned int
_set_ibank_pic14e(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address)2576 _set_ibank_pic14e(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address)
2577 {
2578 /* bcf: 01 00bb bfff ffff
2579 * bsf: 01 01bb bfff ffff
2580 * PIC14E
2581 * FSR0H: 0000bbbb
2582 * FSR0L: blllllll
2583 * PIC14EX
2584 * FSR0H: 000bbbbb
2585 * FSR0L: blllllll
2586 */
2587 unsigned int mask;
2588 unsigned int bit;
2589 char buf[BUFSIZ];
2590
2591 snprintf(buf, sizeof(buf), "bank_%u", Bank);
2592
2593 Num_banks >>= 1; /* FSR0L bit 7. */
2594 for (bit = 0, mask = 0x01; mask < Num_banks; ++bit, mask <<= 1, Byte_address += 2)
2595 gp_mem_i_put_le(M,
2596 Byte_address,
2597 ((Bank & mask) ? PIC14_INSN_BSF : PIC14_INSN_BCF) |
2598 (bit << PIC14_INSN_BxF_BITSHIFT) |
2599 PIC14E_REG_FSR0H,
2600 buf, NULL);
2601
2602 return (bit * 2);
2603 }
2604
2605 /*------------------------------------------------------------------------------------------------*/
2606
2607 static unsigned int
_check_page_pic14e(unsigned int Insn_address)2608 _check_page_pic14e(unsigned int Insn_address)
2609 {
2610 return ((Insn_address >> 8) & PIC14E_BMSK_PAGE512);
2611 }
2612
2613 /*------------------------------------------------------------------------------------------------*/
2614
2615 static unsigned int
_page_addr_pic14e(unsigned int Insn_address)2616 _page_addr_pic14e(unsigned int Insn_address)
2617 {
2618 return (Insn_address & PIC14E_PAGE_BITS);
2619 }
2620
2621 /*------------------------------------------------------------------------------------------------*/
2622
2623 static unsigned int
_addr_from_page_bits_pic14e(unsigned int Bits)2624 _addr_from_page_bits_pic14e(unsigned int Bits)
2625 {
2626 return _page_addr_pic14e(Bits << 8);
2627 }
2628
2629 /*------------------------------------------------------------------------------------------------*/
2630
2631 static unsigned int
_set_page_pic14e(unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg)2632 _set_page_pic14e(unsigned int Num_pages, unsigned int Page, MemBlock_t *M, unsigned int Byte_address,
2633 gp_boolean Use_wreg)
2634 {
2635 uint16_t data;
2636 unsigned int insn_byte_len;
2637 char buf[BUFSIZ];
2638
2639 if (Num_pages == 1) {
2640 return 0;
2641 }
2642
2643 /* Page is in bits 6:0 of PCLATH. */
2644 Page &= PIC14E_BMSK_PAGE512;
2645 snprintf(buf, sizeof(buf), "page_%u", Page);
2646
2647 if (Use_wreg) {
2648 data = PIC14_INSN_MOVLW | Page;
2649 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2650 insn_byte_len = 2;
2651 data = PIC14_INSN_MOVWF | PIC14_REG_PCLATH;
2652 gp_mem_i_put_le(M, Byte_address + insn_byte_len, data, buf, NULL);
2653 insn_byte_len += 2;
2654 }
2655 else {
2656 data = PIC14E_INSN_MOVLP | Page;
2657 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2658 insn_byte_len = 2;
2659 }
2660
2661 return insn_byte_len;
2662 }
2663
2664 /*------------------------------------------------------------------------------------------------*/
2665
2666 static unsigned int
_pagesel_byte_length_pic14e(unsigned int Num_pages,gp_boolean Use_wreg)2667 _pagesel_byte_length_pic14e(unsigned int Num_pages, gp_boolean Use_wreg)
2668 {
2669 if (Num_pages == 1) {
2670 return 0;
2671 }
2672
2673 return ((Use_wreg) ? 4 : 2);
2674 }
2675
2676 /*------------------------------------------------------------------------------------------------*/
2677
2678 static unsigned int
_reloc_movlb_pic14e(unsigned int Address)2679 _reloc_movlb_pic14e(unsigned int Address)
2680 {
2681 return ((Address >> PIC14_BANK_SHIFT) & 0xff);
2682 }
2683
2684 /*------------------------------------------------------------------------------------------------*/
2685
2686 static unsigned int
_reloc_bra_pic14e(const gp_section_t * Section,unsigned int Value,unsigned int Byte_address)2687 _reloc_bra_pic14e(const gp_section_t *Section, unsigned int Value, unsigned int Byte_address)
2688 {
2689 int offset;
2690
2691 offset = Value - (Byte_address / 2) - 1;
2692
2693 if ((offset > 0xff) || (offset < -0x100)) {
2694 gp_warning("Relative branch out of range in at %#x of section \"%s\".", Byte_address << 1, Section->name);
2695 }
2696
2697 return (offset & PIC14E_BMSK_RBRA9);
2698 }
2699
2700 /*------------------------------------------------------------------------------------------------*/
2701
2702 static unsigned int
_reloc_high_pic14e(gp_boolean Is_code,unsigned int Value)2703 _reloc_high_pic14e(gp_boolean Is_code, unsigned int Value)
2704 {
2705 /* set 7th bit if in is_code */
2706 return (((Value >> 8) & 0xff) | (Is_code ? PIC14E_FSRxH_FLASH_SEL : 0));
2707 }
2708
2709 /*------------------------------------------------------------------------------------------------*/
2710
2711 static const insn_t *
_find_insn_pic14e(proc_class_t Class,unsigned int Opcode)2712 _find_insn_pic14e(proc_class_t Class, unsigned int Opcode)
2713 {
2714 int i;
2715
2716 (void)Class;
2717
2718 /* might be from the enhanced instruction set */
2719 for (i = 0; i < num_op_16cxx_enh; i++) {
2720 if ((op_16cxx_enh[i].mask & Opcode) == op_16cxx_enh[i].opcode) {
2721 return &op_16cxx_enh[i];
2722 }
2723 }
2724 for (i = 0; i < num_op_16cxx; i++) {
2725 if ((op_16cxx[i].mask & Opcode) == op_16cxx[i].opcode) {
2726 return &op_16cxx[i];
2727 }
2728 }
2729 return NULL;
2730 }
2731
2732 /*------------------------------------------------------------------------------------------------*/
2733
2734 /* PIC14EX */
2735
2736 static int
_bank_from_addr_pic14ex(int Address)2737 _bank_from_addr_pic14ex(int Address)
2738 {
2739 if (Address < 0) {
2740 return -1;
2741 }
2742
2743 return ((Address >> PIC14_BANK_SHIFT) & PIC14EX_BMSK_BANK);
2744 }
2745
2746 /*------------------------------------------------------------------------------------------------*/
2747
2748 static unsigned int
_set_bank_pic14ex(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)2749 _set_bank_pic14ex(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2750 gp_boolean Mpasm_compatible)
2751 {
2752 uint16_t data;
2753 char buf[BUFSIZ];
2754
2755 (void)Mpasm_compatible;
2756
2757 Bank &= PIC14EX_BMSK_BANK;
2758 data = PIC14EX_INSN_MOVLB | Bank;
2759 snprintf(buf, sizeof(buf), "bank_%u", Bank);
2760
2761 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2762 return 2;
2763 }
2764
2765 /*------------------------------------------------------------------------------------------------*/
2766
2767 static const insn_t *
_find_insn_pic14ex(proc_class_t Class,unsigned int Opcode)2768 _find_insn_pic14ex(proc_class_t Class, unsigned int Opcode)
2769 {
2770 int i;
2771
2772 (void)Class;
2773
2774 /* might be from the enhanced instruction set */
2775 for (i = 0; i < num_op_16cxx_enhx; i++) {
2776 if ((op_16cxx_enhx[i].mask & Opcode) == op_16cxx_enhx[i].opcode) {
2777 return &op_16cxx_enhx[i];
2778 }
2779 }
2780 for (i = 0; i < num_op_16cxx; i++) {
2781 if ((op_16cxx[i].mask & Opcode) == op_16cxx[i].opcode) {
2782 return &op_16cxx[i];
2783 }
2784 }
2785 return NULL;
2786 }
2787
2788 /*------------------------------------------------------------------------------------------------*/
2789
2790 /* PIC16 */
2791
2792 static int
_bank_from_addr_pic16(int Address)2793 _bank_from_addr_pic16(int Address)
2794 {
2795 if (Address < 0) {
2796 return -1;
2797 }
2798
2799 if ((Address & 0xff) < 0x20) {
2800 return (Address >> PIC16_BANK_SHIFT) & PIC16_BMSK_BANK;
2801 }
2802 else {
2803 /* 0x200 turns MOVLB to MOVLR for setting GPR RAM bank in set_bank. */
2804 return (0x200 + ((Address >> PIC16_BANK_SHIFT) & PIC16_BMSK_BANK));
2805 }
2806 }
2807
2808 /*------------------------------------------------------------------------------------------------*/
2809
2810 static unsigned int
_set_bank_pic16(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)2811 _set_bank_pic16(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2812 gp_boolean Mpasm_compatible)
2813 {
2814 char buf[BUFSIZ];
2815
2816 (void)Mpasm_compatible;
2817
2818 Bank &= 0x200 | PIC16_BMSK_BANK;
2819 snprintf(buf, sizeof(buf), "bank_%u", Bank & PIC16_BMSK_BANK);
2820
2821 gp_mem_i_put_le(M, Byte_address, PIC16_INSN_MOVLB | Bank, buf, NULL);
2822 return 2;
2823 }
2824
2825 /*------------------------------------------------------------------------------------------------*/
2826
2827 static unsigned int
_set_ibank_pic16(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address)2828 _set_ibank_pic16(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address)
2829 {
2830 return _set_bank_pic16(Num_banks, Bank, M, Byte_address, false);
2831 }
2832
2833 /*------------------------------------------------------------------------------------------------*/
2834
2835 static unsigned int
_banksel_byte_length_pic16(unsigned int Num_banks,gp_boolean Mpasm_compatible)2836 _banksel_byte_length_pic16(unsigned int Num_banks, gp_boolean Mpasm_compatible)
2837 {
2838 (void)Num_banks;
2839 (void)Mpasm_compatible;
2840 return 2;
2841 }
2842
2843 /*------------------------------------------------------------------------------------------------*/
2844
2845 static unsigned int
_check_page_pic16(unsigned int Insn_address)2846 _check_page_pic16(unsigned int Insn_address)
2847 {
2848 return ((Insn_address >> 8) & PIC16_BMSK_PAGE);
2849 }
2850
2851 /*------------------------------------------------------------------------------------------------*/
2852
2853 static unsigned int
_page_addr_pic16(unsigned int Insn_address)2854 _page_addr_pic16(unsigned int Insn_address)
2855 {
2856 return (Insn_address & (PIC16_BMSK_PAGE << 8));
2857 }
2858
2859 /*------------------------------------------------------------------------------------------------*/
2860
2861 static unsigned int
_addr_from_page_bits_pic16(unsigned int Bits)2862 _addr_from_page_bits_pic16(unsigned int Bits)
2863 {
2864 return _page_addr_pic16(Bits << 8);
2865 }
2866
2867 /*------------------------------------------------------------------------------------------------*/
2868
2869 static unsigned int
_set_page_pic16(unsigned int Num_pages,unsigned int Page,MemBlock_t * M,unsigned int Byte_address,gp_boolean Use_wreg)2870 _set_page_pic16(unsigned int Num_pages, unsigned int Page, MemBlock_t *M, unsigned int Byte_address,
2871 gp_boolean Use_wreg)
2872 {
2873 uint16_t data;
2874 char buf[BUFSIZ];
2875
2876 Page &= PIC16_BMSK_PAGE;
2877 snprintf(buf, sizeof(buf), "page_%u", Page);
2878
2879 data = PIC16_INSN_MOVLW | Page;
2880 gp_mem_i_put_le(M, Byte_address, data, buf, NULL);
2881 data = PIC16_INSN_MOVWF | PIC16_REG_PCLATH;
2882 gp_mem_i_put_le(M, Byte_address + 2, data, buf, NULL);
2883 return 4;
2884 }
2885
2886 /*------------------------------------------------------------------------------------------------*/
2887
2888 static unsigned int
_pagesel_byte_length_pic16(unsigned int Num_pages,gp_boolean Use_wreg)2889 _pagesel_byte_length_pic16(unsigned int Num_pages, gp_boolean Use_wreg)
2890 {
2891 (void)Num_pages;
2892 (void)Use_wreg;
2893 return 4;
2894 }
2895
2896 /*------------------------------------------------------------------------------------------------*/
2897
2898 static unsigned int
_reloc_call_pic16(unsigned int Insn_address)2899 _reloc_call_pic16(unsigned int Insn_address)
2900 {
2901 return (Insn_address & PIC16_BMSK_BRANCH);
2902 }
2903
2904 /*------------------------------------------------------------------------------------------------*/
2905
2906 static unsigned int
_reloc_goto_pic16(unsigned int Insn_address)2907 _reloc_goto_pic16(unsigned int Insn_address)
2908 {
2909 return (Insn_address & PIC16_BMSK_BRANCH);
2910 }
2911
2912 /*------------------------------------------------------------------------------------------------*/
2913
2914 static unsigned int
_reloc_f_pic16(unsigned int Address)2915 _reloc_f_pic16(unsigned int Address)
2916 {
2917 return (Address & PIC16_BMSK_FILE);
2918 }
2919
2920 /*------------------------------------------------------------------------------------------------*/
2921
2922 /* PIC16E */
2923
2924 static unsigned int
_id_location_pic16e(pic_processor_t Processor)2925 _id_location_pic16e(pic_processor_t Processor)
2926 {
2927 if ((Processor->idlocs_addrs[0] > 0) && (Processor->idlocs_addrs[1] > 0)) {
2928 return Processor->idlocs_addrs[0];
2929 }
2930 return 0;
2931 }
2932
2933 /*------------------------------------------------------------------------------------------------*/
2934
2935 static unsigned int
_set_bank_pic16e(unsigned int Num_banks,unsigned int Bank,MemBlock_t * M,unsigned int Byte_address,gp_boolean Mpasm_compatible)2936 _set_bank_pic16e(unsigned int Num_banks, unsigned int Bank, MemBlock_t *M, unsigned int Byte_address,
2937 gp_boolean Mpasm_compatible)
2938 {
2939 char buf[BUFSIZ];
2940
2941 (void)Mpasm_compatible;
2942
2943 Bank &= ~PIC16E_MASK_MOVLB;
2944 snprintf(buf, sizeof(buf), "bank_%u", Bank);
2945
2946 gp_mem_i_put_le(M, Byte_address, PIC16E_INSN_MOVLB | Bank, buf, NULL);
2947 return 2;
2948 }
2949
2950 /*------------------------------------------------------------------------------------------------*/
2951
2952 static unsigned int
_reloc_call_pic16e(unsigned int Insn_address)2953 _reloc_call_pic16e(unsigned int Insn_address)
2954 {
2955 return ((Insn_address >> 1) & PIC16E_BMSK_BRANCH_LOWER);
2956 }
2957
2958 /*------------------------------------------------------------------------------------------------*/
2959
2960 static unsigned int
_reloc_goto_pic16e(unsigned int insn_address)2961 _reloc_goto_pic16e(unsigned int insn_address)
2962 {
2963 return ((insn_address >> 1) & PIC16E_BMSK_BRANCH_LOWER);
2964 }
2965
2966 /*------------------------------------------------------------------------------------------------*/
2967
2968 static unsigned int
_reloc_movlb_pic16e(unsigned int Address)2969 _reloc_movlb_pic16e(unsigned int Address)
2970 {
2971 /* The upper byte of the symbol is used for the BSR. This is inconsistent
2972 with the datasheet and the assembler, but is done to maintain
2973 compatibility with mplink. */
2974 /* return ((Address >> PIC16_BANK_SHIFT) & 0xff); */
2975 return ((Address >> PIC16_BANK_SHIFT) & PIC16E_BMSK_MOVLB);
2976 }
2977
2978 /*------------------------------------------------------------------------------------------------*/
2979
2980 static unsigned int
_reloc_bra_pic16e(const gp_section_t * Section,unsigned int Value,unsigned int Byte_address)2981 _reloc_bra_pic16e(const gp_section_t *Section, unsigned int Value, unsigned int Byte_address)
2982 {
2983 int offset;
2984
2985 if (Value & 1) {
2986 gp_warning("Destination address must be word aligned at %#x of section \"%s\".",
2987 Byte_address, Section->name);
2988 }
2989
2990 offset = ((int)(Value - Byte_address - 2)) >> 1;
2991
2992 if ((offset > 0x3ff) || (offset < -0x400)) {
2993 gp_warning("Relative branch out of range in at %#x of section \"%s\".",
2994 Byte_address, Section->name);
2995 }
2996
2997 return (offset & PIC16E_BMSK_RBRA11);
2998 }
2999
3000 /*------------------------------------------------------------------------------------------------*/
3001
3002 static const insn_t *
_find_insn_pic16e(proc_class_t Class,unsigned int Opcode)3003 _find_insn_pic16e(proc_class_t Class, unsigned int Opcode)
3004 {
3005 int i;
3006
3007 (void)Class;
3008
3009 if (gp_decode_mnemonics) {
3010 for (i = 0; i < num_op_18cxx_sp; i++) {
3011 if ((op_18cxx_sp[i].mask & Opcode) == op_18cxx_sp[i].opcode) {
3012 return &op_18cxx_sp[i];
3013 }
3014 }
3015 }
3016
3017 for (i = 0; i < num_op_18cxx; i++) {
3018 if ((op_18cxx[i].mask & Opcode) == op_18cxx[i].opcode) {
3019 return &op_18cxx[i];
3020 }
3021 }
3022
3023 if (gp_decode_extended) {
3024 /* might be from the extended instruction set */
3025 for (i = 0; i < num_op_18cxx_ext; i++) {
3026 if ((op_18cxx_ext[i].mask & Opcode) == op_18cxx_ext[i].opcode) {
3027 return &op_18cxx_ext[i];
3028 }
3029 }
3030 }
3031
3032 return NULL;
3033 }
3034
3035 /*------------------------------------------------------------------------------------------------*/
3036
3037 static int
_core_sfr_cmp(const void * P0,const void * P1)3038 _core_sfr_cmp(const void *P0, const void *P1)
3039 {
3040 const core_sfr_t *sfr0 = (const core_sfr_t *)P0;
3041 const core_sfr_t *sfr1 = (const core_sfr_t *)P1;
3042 unsigned int address0 = sfr0->address;
3043 unsigned int address1 = sfr1->address;
3044
3045 if (address0 < address1) {
3046 return -1;
3047 }
3048
3049 if (address0 > address1) {
3050 return 1;
3051 }
3052
3053 return 0;
3054 }
3055
3056 /*------------------------------------------------------------------------------------------------*/
3057
3058 const core_sfr_t *
gp_processor_find_sfr(proc_class_t Class,unsigned int Address)3059 gp_processor_find_sfr(proc_class_t Class, unsigned int Address)
3060 {
3061 core_sfr_t sfr;
3062
3063 if ((Class == NULL) || (Class->core_sfr_table == NULL) || (Class->core_sfr_number == 0)) {
3064 return NULL;
3065 }
3066
3067 sfr.address = Address;
3068 return (core_sfr_t *)bsearch(&sfr, Class->core_sfr_table, Class->core_sfr_number,
3069 sizeof(core_sfr_t), _core_sfr_cmp);
3070 }
3071
3072 /*------------------------------------------------------------------------------------------------*/
3073
3074 const char *
gp_processor_find_sfr_name(proc_class_t Class,unsigned int Address)3075 gp_processor_find_sfr_name(proc_class_t Class, unsigned int Address)
3076 {
3077 const core_sfr_t *ret;
3078
3079 ret = gp_processor_find_sfr(Class, Address);
3080 return ((ret != NULL) ? ret->name : NULL);
3081 }
3082
3083 /*------------------------------------------------------------------------------------------------*/
3084
3085 static int
_vector_cmp(const void * P0,const void * P1)3086 _vector_cmp(const void *P0, const void *P1)
3087 {
3088 const vector_t *v0 = (const vector_t *)P0;
3089 const vector_t *v1 = (const vector_t *)P1;
3090 unsigned int address0 = v0->address;
3091 unsigned int address1 = v1->address;
3092
3093 if (address0 < address1) {
3094 return -1;
3095 }
3096 else if (address0 > address1) {
3097 return 1;
3098 }
3099 else {
3100 return 0;
3101 }
3102 }
3103
3104 /*------------------------------------------------------------------------------------------------*/
3105
3106 const vector_t *
gp_processor_find_vector(proc_class_t Class,unsigned int Address)3107 gp_processor_find_vector(proc_class_t Class, unsigned int Address)
3108 {
3109 vector_t vec;
3110
3111 if ((Class == NULL) || (Class->vector_table == NULL) || (Class->vector_number == 0)) {
3112 return NULL;
3113 }
3114
3115 vec.address = Address;
3116 return (vector_t *)bsearch(&vec, Class->vector_table, Class->vector_number,
3117 sizeof(vector_t), _vector_cmp);
3118 }
3119
3120 /*------------------------------------------------------------------------------------------------*/
3121
3122 static const core_sfr_t _core_sfr_table_pic12[] = {
3123 { 0x000, "INDF" },
3124 { 0x002, "PCL" },
3125 { 0x003, "STATUS" },
3126 { 0x004, "FSR" }
3127 };
3128
3129 static const vector_t _vector_table_pic12[] = {
3130 { 0x000, "vector_reset" }
3131 };
3132
3133 static const core_sfr_t _core_sfr_table_sx[] = {
3134 { 0x000, "INDF" },
3135 { 0x001, "RTCC" },
3136 { 0x002, "PC" },
3137 { 0x003, "STATUS" },
3138 { 0x004, "FSR" },
3139 { 0x005, "RA" },
3140 { 0x006, "RB" },
3141 { 0x007, "RC" }
3142 };
3143
3144 static const vector_t _vector_table_sx[] = {
3145 { 0x000, "vector_int" }
3146 };
3147
3148 static const vector_t _vector_table_pic12i[] = {
3149 { 0x000, "vector_reset" },
3150 { 0x004, "vector_int" }
3151 };
3152
3153 static const core_sfr_t _core_sfr_table_pic14[] = {
3154 { 0x000, "INDF" },
3155 { 0x002, "PCL" },
3156 { 0x003, "STATUS" },
3157 { 0x004, "FSR" },
3158 { 0x00A, "PCLATH" },
3159 { 0x00B, "INTCON" }
3160 };
3161
3162 static const vector_t _vector_table_pic14[] = {
3163 { 0x000, "vector_reset" },
3164 { 0x004, "vector_int" }
3165 };
3166
3167 static const core_sfr_t _core_sfr_table_pic14e[] = {
3168 { 0x000, "INDF0" },
3169 { 0x001, "INDF1" },
3170 { 0x002, "PCL" },
3171 { 0x003, "STATUS" },
3172 { 0x004, "FSR0L" },
3173 { 0x005, "FSR0H" },
3174 { 0x006, "FSR1L" },
3175 { 0x007, "FSR1H" },
3176 { 0x008, "BSR" },
3177 { 0x009, "WREG" },
3178 { 0x00A, "PCLATH" },
3179 { 0x00B, "INTCON" }
3180 };
3181
3182 static const core_sfr_t _core_sfr_table_pic16[] = {
3183 { 0x000, "INDF0" },
3184 { 0x001, "FSR0" },
3185 { 0x002, "PCL" },
3186 { 0x003, "PCLATH" },
3187 { 0x004, "ALUSTA" },
3188 { 0x005, "T0STA" },
3189 { 0x006, "CPUSTA" },
3190 { 0x007, "INTSTA" },
3191 { 0x008, "INDF1" },
3192 { 0x009, "FSR1" },
3193 { 0x00A, "WREG" },
3194 { 0x00B, "TMR0L" },
3195 { 0x00C, "TMR0H" },
3196 { 0x00D, "TBLPTRL" },
3197 { 0x00E, "TBLPTRH" },
3198 { 0x00F, "BSR" }
3199 };
3200
3201 static const vector_t _vector_table_pic16[] = {
3202 { 0x0000, "vector_reset" },
3203 { 0x0008, "vector_int_ext" },
3204 { 0x0010, "vector_int_tmr0" },
3205 { 0x0018, "vector_int_t0cki" },
3206 { 0x0020, "vector_int_peri" }
3207 };
3208
3209 static const core_sfr_t _core_sfr_table_pic16e[] = {
3210 { 0xF80, "PORTA" },
3211 { 0xF81, "PORTB" },
3212
3213 { 0xF89, "LATA" },
3214 { 0xF8A, "LATB" },
3215
3216 { 0xF92, "TRISA" },
3217 { 0xF93, "TRISB" },
3218
3219 { 0xF9D, "PIE1" },
3220 { 0xF9E, "PIR1" },
3221 { 0xF9F, "IPR1" },
3222 { 0xFA0, "PIE2" },
3223 { 0xFA1, "PIR2" },
3224 { 0xFA2, "IPR2" },
3225
3226 { 0xFCD, "T1CON" },
3227 { 0xFCE, "TMR1" },
3228 { 0xFCF, "TMR1H" },
3229 { 0xFD0, "RCON" },
3230
3231 { 0xFD3, "OSCCON" },
3232
3233 { 0xFD5, "T0CON" },
3234 { 0xFD6, "TMR0L" },
3235 { 0xFD7, "TMR0H" },
3236 { 0xFD8, "STATUS" },
3237 { 0xFD9, "FSR2L" },
3238 { 0xFDA, "FSR2H" },
3239 { 0xFDB, "PLUSW2" },
3240 { 0xFDC, "PREINC2" },
3241 { 0xFDD, "POSTDEC2" },
3242 { 0xFDE, "POSTINC2" },
3243 { 0xFDF, "INDF2" },
3244 { 0xFE0, "BSR" },
3245 { 0xFE1, "FSR1L" },
3246 { 0xFE2, "FSR1H" },
3247 { 0xFE3, "PLUSW1" },
3248 { 0xFE4, "PREINC1" },
3249 { 0xFE5, "POSTDEC1" },
3250 { 0xFE6, "POSTINC1" },
3251 { 0xFE7, "INDF1" },
3252 { 0xFE8, "WREG" },
3253 { 0xFE9, "FSR0L" },
3254 { 0xFEA, "FSR0H" },
3255 { 0xFEB, "PLUSW0" },
3256 { 0xFEC, "PREINC0" },
3257 { 0xFED, "POSTDEC0" },
3258 { 0xFEE, "POSTINC0" },
3259 { 0xFEF, "INDF0" },
3260 { 0xFF0, "INTCON3" },
3261 { 0xFF1, "INTCON2" },
3262 { 0xFF2, "INTCON" },
3263 { 0xFF3, "PRODL" },
3264 { 0xFF4, "PRODH" },
3265 { 0xFF5, "TABLAT" },
3266 { 0xFF6, "TBLPTRL" },
3267 { 0xFF7, "TBLPTRH" },
3268 { 0xFF8, "TBLPTRU" },
3269 { 0xFF9, "PC" },
3270 { 0xFFA, "PCLATH" },
3271 { 0xFFB, "PCLATU" },
3272 { 0xFFC, "STKPTR" },
3273 { 0xFFD, "TOS" },
3274 { 0xFFE, "TOSH" },
3275 { 0xFFF, "TOSU" }
3276 };
3277
3278 static const vector_t _vector_table_pic16e[] = {
3279 { 0x0000, "vector_reset" },
3280 { 0x0008, "vector_int_high" },
3281 { 0x0018, "vector_int_low" }
3282 };
3283
3284 /*------------------------------------------------------------------------------------------------*/
3285
3286 const struct proc_class proc_class_eeprom8 = {
3287 -1, /* retlw */
3288 8, /* rom_width */
3289 0, /* page_size */
3290 0, /* bank_size */
3291 0, /* bank_bits_shift */
3292 0, /* addr_bits_in_bank */
3293 0, /* org_to_byte_shift */
3294 0, /* pc_mask */
3295 0, /* page_mask */
3296 0, /* bank_mask */
3297 (1 << 8) - 1, /* core_mask */
3298 0, /* config_mask */
3299 6, /* addr_digits */
3300 2, /* word_digits */
3301 0, /* config_digits */
3302 NULL, /* core_sfr_table */
3303 0, /* core_sfr_number */
3304 NULL, /* vector_table */
3305 0, /* vector_number */
3306 0, /* id_location */
3307 _xbank_from_addr_unsupported, /* bank_from_addr */
3308 _set_bank_unsupported, /* set_bank */
3309 _banksel_byte_length_unsupported, /* banksel_byte_length */
3310 _xbank_from_addr_unsupported, /* check_ibank */
3311 _set_ibank_unsupported, /* set_ibank */
3312 _check_page_unsupported, /* check_page */
3313 _set_page_unsupported, /* set_page */
3314 _pagesel_byte_length_unsupported, /* pagesel_byte_length */
3315 _page_addr_unsupported, /* page_addr */
3316 _addr_from_page_bits_unsupported, /* addr_from_page_bits */
3317 _reloc_unsupported, /* reloc_call */
3318 _reloc_unsupported, /* reloc_goto */
3319 _reloc_unsupported, /* reloc_f */
3320 _reloc_unsupported, /* reloc_tris */
3321 _reloc_unsupported, /* reloc_movlb */
3322 _reloc_bra_unsupported, /* reloc_bra */
3323 _reloc_high_unsupported, /* reloc_high */
3324 NULL, /* instructions */
3325 NULL, /* num_instructions */
3326 NULL, /* find_insn */
3327 gp_mem_i_get_le, /* i_memory_get */
3328 gp_mem_i_put_le, /* i_memory_put */
3329 NULL, /* patch_strict */
3330 };
3331
3332 const struct proc_class proc_class_eeprom16 = {
3333 -1, /* retlw */
3334 16, /* rom_width */
3335 0, /* page_size */
3336 0, /* bank_size */
3337 0, /* bank_bits_shift */
3338 0, /* addr_bits_in_bank */
3339 0, /* org_to_byte_shift */
3340 0, /* pc_mask */
3341 0, /* page_mask */
3342 0, /* bank_mask */
3343 (1 << 16) - 1, /* core_mask */
3344 0, /* config_mask */
3345 6, /* addr_digits */
3346 4, /* word_digits */
3347 0, /* config_digits */
3348 NULL, /* core_sfr_table */
3349 0, /* core_sfr_number */
3350 NULL, /* vector_table */
3351 0, /* vector_number */
3352 0, /* id_location */
3353 _xbank_from_addr_unsupported, /* bank_from_addr */
3354 _set_bank_unsupported, /* set_bank */
3355 _banksel_byte_length_unsupported, /* banksel_byte_length */
3356 _xbank_from_addr_unsupported, /* check_ibank */
3357 _set_ibank_unsupported, /* set_ibank */
3358 _check_page_unsupported, /* check_page */
3359 _set_page_unsupported, /* set_page */
3360 _pagesel_byte_length_unsupported, /* pagesel_byte_length */
3361 _page_addr_unsupported, /* page_addr */
3362 _addr_from_page_bits_unsupported, /* addr_from_page_bits */
3363 _reloc_unsupported, /* reloc_call */
3364 _reloc_unsupported, /* reloc_goto */
3365 _reloc_unsupported, /* reloc_f */
3366 _reloc_unsupported, /* reloc_tris */
3367 _reloc_unsupported, /* reloc_movlb */
3368 _reloc_bra_unsupported, /* reloc_bra */
3369 _reloc_high_unsupported, /* reloc_high */
3370 NULL, /* instructions */
3371 NULL, /* num_instructions */
3372 NULL, /* find_insn */
3373 gp_mem_i_get_be, /* i_memory_get */
3374 gp_mem_i_put_be, /* i_memory_put */
3375 NULL, /* patch_strict */
3376 };
3377
3378 const struct proc_class proc_class_generic = {
3379 -1, /* retlw */
3380 12, /* rom_width */
3381 PIC12_PAGE_SIZE, /* page_size */
3382 PIC12_BANK_SIZE, /* bank_size */
3383 PIC12_BANK_SHIFT, /* bank_bits_shift */
3384 PIC12_RAM_ADDR_BITS, /* addr_bits_in_bank */
3385 1, /* org_to_byte_shift */
3386 PIC12_PC_MASK, /* pc_mask */
3387 PIC12_PAGE_MASK, /* page_mask */
3388 PIC12_BANK_MASK, /* bank_mask */
3389 PIC12_CORE_MASK, /* core_mask */
3390 (1 << 12) - 1, /* config_mask */
3391 3, /* addr_digits */
3392 3, /* word_digits */
3393 0, /* config_digits */
3394 _core_sfr_table_pic12, /* core_sfr_table */
3395 TABLE_SIZE(_core_sfr_table_pic12), /* core_sfr_number */
3396 _vector_table_pic12, /* vector_table */
3397 TABLE_SIZE(_vector_table_pic12), /* vector_number */
3398 _id_location_pic12, /* id_location */
3399 _bank_from_addr_pic12, /* bank_from_addr */
3400 _set_bank_pic12, /* set_bank */
3401 _banksel_byte_length_pic12_14, /* banksel_byte_length */
3402 _xbank_from_addr_unsupported, /* check_ibank */
3403 _set_ibank_unsupported, /* set_ibank */
3404 _check_page_pic12, /* check_page */
3405 _set_page_pic12, /* set_page */
3406 _pagesel_byte_length_pic12_14, /* pagesel_byte_length */
3407 _page_addr_pic12, /* page_addr */
3408 _addr_from_page_bits_pic12, /* addr_from_page_bits */
3409 _reloc_unsupported, /* reloc_call */
3410 _reloc_unsupported, /* reloc_goto */
3411 _reloc_unsupported, /* reloc_f */
3412 _reloc_unsupported, /* reloc_tris */
3413 _reloc_unsupported, /* reloc_movlb */
3414 _reloc_bra_unsupported, /* reloc_bra */
3415 _reloc_high_unsupported, /* reloc_high */
3416 NULL, /* instructions */
3417 NULL, /* num_instructions */
3418 NULL, /* find_insn */
3419 gp_mem_i_get_le, /* i_memory_get */
3420 gp_mem_i_put_le, /* i_memory_put */
3421 NULL, /* patch_strict */
3422 };
3423
3424 const struct proc_class proc_class_pic12 = {
3425 PIC12_INSN_RETLW, /* retlw */
3426 12, /* rom_width */
3427 PIC12_PAGE_SIZE, /* page_size */
3428 PIC12_BANK_SIZE, /* bank_size */
3429 PIC12_BANK_SHIFT, /* bank_bits_shift */
3430 PIC12_RAM_ADDR_BITS, /* addr_bits_in_bank */
3431 1, /* org_to_byte_shift */
3432 PIC12_PC_MASK, /* pc_mask */
3433 PIC12_PAGE_MASK, /* page_mask */
3434 PIC12_BANK_MASK, /* bank_mask */
3435 PIC12_CORE_MASK, /* core_mask */
3436 (1 << 12) - 1, /* config_mask */
3437 3, /* addr_digits */
3438 3, /* word_digits */
3439 3, /* config_digits */
3440 _core_sfr_table_pic12, /* core_sfr_table */
3441 TABLE_SIZE(_core_sfr_table_pic12), /* core_sfr_number */
3442 _vector_table_pic12, /* vector_table */
3443 TABLE_SIZE(_vector_table_pic12), /* vector_number */
3444 _id_location_pic12, /* id_location */
3445 _bank_from_addr_pic12, /* bank_from_addr */
3446 _set_bank_pic12, /* set_bank */
3447 _banksel_byte_length_pic12_14, /* banksel_byte_length */
3448 _xbank_from_addr_unsupported, /* check_ibank */
3449 _set_ibank_unsupported, /* set_ibank */
3450 _check_page_pic12, /* check_page */
3451 _set_page_pic12, /* set_page */
3452 _pagesel_byte_length_pic12_14, /* pagesel_byte_length */
3453 _page_addr_pic12, /* page_addr */
3454 _addr_from_page_bits_pic12, /* addr_from_page_bits */
3455 _reloc_call_pic12, /* reloc_call */
3456 _reloc_goto_pic12, /* reloc_goto */
3457 _reloc_f_pic12, /* reloc_f */
3458 _reloc_tris_pic12, /* reloc_tris */
3459 _reloc_unsupported, /* reloc_movlb */
3460 _reloc_bra_unsupported, /* reloc_bra */
3461 _reloc_high_generic, /* reloc_high */
3462 op_12c5xx, /* instructions */
3463 &num_op_12c5xx, /* num_instructions */
3464 _find_insn_generic, /* find_insn */
3465 gp_mem_i_get_le, /* i_memory_get */
3466 gp_mem_i_put_le, /* i_memory_put */
3467 NULL, /* patch_strict */
3468 };
3469
3470 const struct proc_class proc_class_pic12e = {
3471 PIC12_INSN_RETLW, /* retlw */
3472 12, /* rom_width */
3473 PIC12_PAGE_SIZE, /* page_size */
3474 PIC12_BANK_SIZE, /* bank_size */
3475 PIC12_BANK_SHIFT, /* bank_bits_shift */
3476 PIC12_RAM_ADDR_BITS, /* addr_bits_in_bank */
3477 1, /* org_to_byte_shift */
3478 PIC12_PC_MASK, /* pc_mask */
3479 PIC12_PAGE_MASK, /* page_mask */
3480 PIC12_BANK_MASK, /* bank_mask */
3481 PIC12_CORE_MASK, /* core_mask */
3482 (1 << 12) - 1, /* config_mask */
3483 3, /* addr_digits */
3484 3, /* word_digits */
3485 3, /* config_digits */
3486 _core_sfr_table_pic12, /* core_sfr_table */
3487 TABLE_SIZE(_core_sfr_table_pic12), /* core_sfr_number */
3488 _vector_table_pic12, /* vector_table */
3489 TABLE_SIZE(_vector_table_pic12), /* vector_number */
3490 _id_location_pic12, /* id_location */
3491 _bank_from_addr_pic12e, /* bank_from_addr */
3492 _set_bank_pic12e, /* set_bank */
3493 _banksel_byte_length_pic12e, /* banksel_byte_length */
3494 _xbank_from_addr_unsupported, /* check_ibank */
3495 _set_ibank_unsupported, /* set_ibank */
3496 _check_page_pic12, /* check_page */
3497 _set_page_pic12, /* set_page */
3498 _pagesel_byte_length_pic12_14, /* pagesel_byte_length */
3499 _page_addr_pic12, /* page_addr */
3500 _addr_from_page_bits_pic12, /* addr_from_page_bits */
3501 _reloc_call_pic12, /* reloc_call */
3502 _reloc_goto_pic12, /* reloc_goto */
3503 _reloc_f_pic12, /* reloc_f */
3504 _reloc_tris_pic12e, /* reloc_tris */
3505 _reloc_unsupported, /* reloc_movlb */
3506 _reloc_bra_unsupported, /* reloc_bra */
3507 _reloc_high_generic, /* reloc_high */
3508 op_12c5xx, /* instructions */
3509 &num_op_12c5xx, /* num_instructions */
3510 _find_insn_pic12e, /* find_insn */
3511 gp_mem_i_get_le, /* i_memory_get */
3512 gp_mem_i_put_le, /* i_memory_put */
3513 NULL, /* patch_strict */
3514 };
3515
3516 const struct proc_class proc_class_pic12i = {
3517 PIC12_INSN_RETLW, /* retlw */
3518 12, /* rom_width */
3519 PIC12_PAGE_SIZE, /* page_size */
3520 PIC12_BANK_SIZE, /* bank_size */
3521 PIC12_BANK_SHIFT, /* bank_bits_shift */
3522 PIC12_RAM_ADDR_BITS, /* addr_bits_in_bank */
3523 1, /* org_to_byte_shift */
3524 PIC12_PC_MASK, /* pc_mask */
3525 PIC12_PAGE_MASK, /* page_mask */
3526 PIC12_BANK_MASK, /* bank_mask */
3527 PIC12_CORE_MASK, /* core_mask */
3528 (1 << 12) - 1, /* config_mask */
3529 3, /* addr_digits */
3530 3, /* word_digits */
3531 3, /* config_digits */
3532 _core_sfr_table_pic12, /* core_sfr_table */
3533 TABLE_SIZE(_core_sfr_table_pic12), /* core_sfr_number */
3534 _vector_table_pic12i, /* vector_table */
3535 TABLE_SIZE(_vector_table_pic12i), /* vector_number */
3536 _id_location_pic12, /* id_location */
3537 _bank_from_addr_pic12e, /* bank_from_addr */
3538 _set_bank_pic12e, /* set_bank */
3539 _banksel_byte_length_pic12e, /* banksel_byte_length */
3540 _xbank_from_addr_unsupported, /* check_ibank */
3541 _set_ibank_unsupported, /* set_ibank */
3542 _check_page_pic12, /* check_page */
3543 _set_page_pic12, /* set_page */
3544 _pagesel_byte_length_pic12_14, /* pagesel_byte_length */
3545 _page_addr_pic12, /* page_addr */
3546 _addr_from_page_bits_pic12, /* addr_from_page_bits */
3547 _reloc_call_pic12, /* reloc_call */
3548 _reloc_goto_pic12, /* reloc_goto */
3549 _reloc_f_pic12, /* reloc_f */
3550 _reloc_tris_pic12e, /* reloc_tris */
3551 _reloc_unsupported, /* reloc_movlb */
3552 _reloc_bra_unsupported, /* reloc_bra */
3553 _reloc_high_generic, /* reloc_high */
3554 op_12c5xx, /* instructions */
3555 &num_op_12c5xx, /* num_instructions */
3556 _find_insn_pic12e, /* find_insn */
3557 gp_mem_i_get_le, /* i_memory_get */
3558 gp_mem_i_put_le, /* i_memory_put */
3559 NULL, /* patch_strict */
3560 };
3561
3562 const struct proc_class proc_class_sx = {
3563 PIC12_INSN_RETLW, /* retlw */
3564 12, /* rom_width */
3565 PIC12_PAGE_SIZE, /* page_size */
3566 PIC12_BANK_SIZE, /* bank_size */
3567 PIC12_BANK_SHIFT, /* bank_bits_shift */
3568 PIC12_RAM_ADDR_BITS, /* addr_bits_in_bank */
3569 1, /* org_to_byte_shift */
3570 SX_PC_MASK, /* pc_mask */
3571 PIC12_PAGE_MASK, /* page_mask */
3572 PIC12_BANK_MASK, /* bank_mask */
3573 PIC12_CORE_MASK, /* core_mask */
3574 (1 << 12) - 1, /* config_mask */
3575 3, /* addr_digits */
3576 3, /* word_digits */
3577 3, /* config_digits */
3578 _core_sfr_table_sx, /* core_sfr_table */
3579 TABLE_SIZE(_core_sfr_table_sx), /* core_sfr_number */
3580 _vector_table_sx, /* vector_table */
3581 TABLE_SIZE(_vector_table_sx), /* vector_number */
3582 _id_location_pic12, /* id_location */
3583 _bank_from_addr_pic12, /* bank_from_addr */
3584 _set_bank_pic12, /* set_bank */
3585 _banksel_byte_length_pic12_14, /* banksel_byte_length */
3586 _xbank_from_addr_unsupported, /* check_ibank */
3587 _set_ibank_unsupported, /* set_ibank */
3588 _check_page_sx, /* check_page */
3589 _set_page_sx, /* set_page */
3590 _pagesel_byte_length_pic12_14, /* pagesel_byte_length */
3591 _page_addr_sx, /* page_addr */
3592 _addr_from_page_bits_sx, /* addr_from_page_bits */
3593 _reloc_call_pic12, /* reloc_call */
3594 _reloc_goto_pic12, /* reloc_goto */
3595 _reloc_f_pic12, /* reloc_f */
3596 _reloc_tris_pic12, /* reloc_tris */
3597 _reloc_unsupported, /* reloc_movlb */
3598 _reloc_bra_unsupported, /* reloc_bra */
3599 _reloc_high_generic, /* reloc_high */
3600 op_sx, /* instructions */
3601 &num_op_sx, /* num_instructions */
3602 _find_insn_generic, /* find_insn */
3603 gp_mem_i_get_le, /* i_memory_get */
3604 gp_mem_i_put_le, /* i_memory_put */
3605 NULL, /* patch_strict */
3606 };
3607
3608 const struct proc_class proc_class_pic14 = {
3609 PIC14_INSN_RETLW, /* retlw */
3610 14, /* rom_width */
3611 PIC14_PAGE_SIZE, /* page_size */
3612 PIC14_BANK_SIZE, /* bank_size */
3613 PIC14_BANK_SHIFT, /* bank_bits_shift */
3614 PIC14_RAM_ADDR_BITS, /* addr_bits_in_bank */
3615 1, /* org_to_byte_shift */
3616 PIC14_PC_MASK, /* pc_mask */
3617 PIC14_PAGE_MASK, /* page_mask */
3618 PIC14_BANK_MASK, /* bank_mask */
3619 PIC14_CORE_MASK, /* core_mask */
3620 (1 << 14) - 1, /* config_mask */
3621 4, /* addr_digits */
3622 4, /* word_digits */
3623 4, /* config_digits */
3624 _core_sfr_table_pic14, /* core_sfr_table */
3625 TABLE_SIZE(_core_sfr_table_pic14), /* core_sfr_number */
3626 _vector_table_pic14, /* vector_table */
3627 TABLE_SIZE(_vector_table_pic14), /* vector_number */
3628 _id_location_pic14, /* id_location */
3629 _bank_from_addr_pic14, /* bank_from_addr */
3630 _set_bank_pic14, /* set_bank */
3631 _banksel_byte_length_pic12_14, /* banksel_byte_length */
3632 _check_ibank_pic14, /* check_ibank */
3633 _set_ibank_pic14, /* set_ibank */
3634 _check_page_pic14, /* check_page */
3635 _set_page_pic14, /* set_page */
3636 _pagesel_byte_length_pic12_14, /* pagesel_byte_length */
3637 _page_addr_pic14, /* page_addr */
3638 _addr_from_page_bits_pic14, /* addr_from_page_bits */
3639 _reloc_call_pic14, /* reloc_call */
3640 _reloc_goto_pic14, /* reloc_goto */
3641 _reloc_f_pic14, /* reloc_f */
3642 _reloc_tris_pic14, /* reloc_tris */
3643 _reloc_unsupported, /* reloc_movlb */
3644 _reloc_bra_unsupported, /* reloc_bra */
3645 _reloc_high_generic, /* reloc_high */
3646 op_16cxx, /* instructions */
3647 &num_op_16cxx, /* num_instructions */
3648 _find_insn_generic, /* find_insn */
3649 gp_mem_i_get_le, /* i_memory_get */
3650 gp_mem_i_put_le, /* i_memory_put */
3651 _patch_strict_pic14, /* patch_strict */
3652 };
3653
3654 const struct proc_class proc_class_pic14e = {
3655 PIC14_INSN_RETLW, /* retlw */
3656 14, /* rom_width */
3657 PIC14_PAGE_SIZE, /* page_size */
3658 PIC14_BANK_SIZE, /* bank_size */
3659 PIC14_BANK_SHIFT, /* bank_bits_shift */
3660 PIC14_RAM_ADDR_BITS, /* addr_bits_in_bank */
3661 1, /* org_to_byte_shift */
3662 PIC14E_PC_MASK, /* pc_mask */
3663 PIC14_PAGE_MASK, /* page_mask */
3664 PIC14_BANK_MASK, /* bank_mask */
3665 PIC14_CORE_MASK, /* core_mask */
3666 (1 << 16) - 1, /* config_mask */
3667 4, /* addr_digits */
3668 4, /* word_digits */
3669 4, /* config_digits */
3670 _core_sfr_table_pic14e, /* core_sfr_table */
3671 TABLE_SIZE(_core_sfr_table_pic14e), /* core_sfr_number */
3672 _vector_table_pic14, /* vector_table */
3673 TABLE_SIZE(_vector_table_pic14), /* vector_number */
3674 _id_location_pic14, /* id_location */
3675 _bank_from_addr_pic14e, /* bank_from_addr */
3676 _set_bank_pic14e, /* set_bank */
3677 _banksel_byte_length_pic14e, /* banksel_byte_length */
3678 _check_ibank_pic14e, /* check_ibank */
3679 _set_ibank_pic14e, /* set_ibank */
3680 _check_page_pic14e, /* check_page */
3681 _set_page_pic14e, /* set_page */
3682 _pagesel_byte_length_pic14e, /* pagesel_byte_length */
3683 _page_addr_pic14e, /* page_addr */
3684 _addr_from_page_bits_pic14e, /* addr_from_page_bits */
3685 _reloc_call_pic14, /* reloc_call */
3686 _reloc_goto_pic14, /* reloc_goto */
3687 _reloc_f_pic14, /* reloc_f */
3688 _reloc_tris_pic14, /* reloc_tris */
3689 _reloc_movlb_pic14e, /* reloc_movlb */
3690 _reloc_bra_pic14e, /* reloc_bra */
3691 _reloc_high_pic14e, /* reloc_high */
3692 op_16cxx, /* instructions */
3693 &num_op_16cxx, /* num_instructions */
3694 _find_insn_pic14e, /* find_insn */
3695 gp_mem_i_get_le, /* i_memory_get */
3696 gp_mem_i_put_le, /* i_memory_put */
3697 _patch_strict_pic14, /* patch_strict */
3698 };
3699
3700 const struct proc_class proc_class_pic14ex = {
3701 PIC14_INSN_RETLW, /* retlw */
3702 14, /* rom_width */
3703 PIC14_PAGE_SIZE, /* page_size */
3704 PIC14_BANK_SIZE, /* bank_size */
3705 PIC14_BANK_SHIFT, /* bank_bits_shift */
3706 PIC14_RAM_ADDR_BITS, /* addr_bits_in_bank */
3707 1, /* org_to_byte_shift */
3708 PIC14E_PC_MASK, /* pc_mask */
3709 PIC14_PAGE_MASK, /* page_mask */
3710 PIC14_BANK_MASK, /* bank_mask */
3711 PIC14_CORE_MASK, /* core_mask */
3712 (1 << 16) - 1, /* config_mask */
3713 4, /* addr_digits */
3714 4, /* word_digits */
3715 4, /* config_digits */
3716 _core_sfr_table_pic14e, /* core_sfr_table */
3717 TABLE_SIZE(_core_sfr_table_pic14e), /* core_sfr_number */
3718 _vector_table_pic14, /* vector_table */
3719 TABLE_SIZE(_vector_table_pic14), /* vector_number */
3720 _id_location_pic14, /* id_location */
3721 _bank_from_addr_pic14ex, /* bank_from_addr */
3722 _set_bank_pic14ex, /* set_bank */
3723 _banksel_byte_length_pic14e, /* banksel_byte_length */
3724 _check_ibank_pic14e, /* check_ibank */
3725 _set_ibank_pic14e, /* set_ibank */
3726 _check_page_pic14e, /* check_page */
3727 _set_page_pic14e, /* set_page */
3728 _pagesel_byte_length_pic14e, /* pagesel_byte_length */
3729 _page_addr_pic14e, /* page_addr */
3730 _addr_from_page_bits_pic14e, /* addr_from_page_bits */
3731 _reloc_call_pic14, /* reloc_call */
3732 _reloc_goto_pic14, /* reloc_goto */
3733 _reloc_f_pic14, /* reloc_f */
3734 _reloc_tris_pic14, /* reloc_tris */
3735 _reloc_movlb_pic14e, /* reloc_movlb */
3736 _reloc_bra_pic14e, /* reloc_bra */
3737 _reloc_high_pic14e, /* reloc_high */
3738 op_16cxx, /* instructions */
3739 &num_op_16cxx, /* num_instructions */
3740 _find_insn_pic14ex, /* find_insn */
3741 gp_mem_i_get_le, /* i_memory_get */
3742 gp_mem_i_put_le, /* i_memory_put */
3743 _patch_strict_pic14, /* patch_strict */
3744 };
3745
3746 const struct proc_class proc_class_pic16 = {
3747 PIC16_INSN_RETLW, /* retlw */
3748 16, /* rom_width */
3749 0, /* page_size */
3750 PIC16_BANK_SIZE, /* bank_size */
3751 PIC16_BANK_SHIFT, /* bank_bits_shift */
3752 PIC16_RAM_ADDR_BITS, /* addr_bits_in_bank */
3753 1, /* org_to_byte_shift */
3754 0, /* pc_mask */
3755 PIC16_PAGE_MASK, /* page_mask */
3756 PIC16_BANK_MASK, /* bank_mask */
3757 PIC16_CORE_MASK, /* core_mask */
3758 (1 << 8) - 1, /* config_mask */
3759 6, /* addr_digits */
3760 4, /* word_digits */
3761 2, /* config_digits */
3762 _core_sfr_table_pic16, /* core_sfr_table */
3763 TABLE_SIZE(_core_sfr_table_pic16), /* core_sfr_number */
3764 _vector_table_pic16, /* vector_table */
3765 TABLE_SIZE(_vector_table_pic16), /* vector_number */
3766 NULL, /* id_location */
3767 _bank_from_addr_pic16, /* bank_from_addr */
3768 _set_bank_pic16, /* set_bank */
3769 _banksel_byte_length_pic16, /* banksel_byte_length */
3770 _bank_from_addr_pic16, /* check_ibank: same as bank_from_addr */
3771 _set_ibank_pic16, /* set_ibank */
3772 _check_page_pic16, /* check_page */
3773 _set_page_pic16, /* set_page */
3774 _pagesel_byte_length_pic16, /* pagesel_byte_length */
3775 _page_addr_pic16, /* page_addr */
3776 _addr_from_page_bits_pic16, /* addr_from_page_bits */
3777 _reloc_call_pic16, /* reloc_call */
3778 _reloc_goto_pic16, /* reloc_goto */
3779 _reloc_f_pic16, /* reloc_f */
3780 _reloc_unsupported, /* reloc_tris */
3781 _reloc_unsupported, /* reloc_movlb */
3782 _reloc_bra_unsupported, /* reloc_bra */
3783 _reloc_high_generic, /* reloc_high */
3784 op_17cxx, /* instructions */
3785 &num_op_17cxx, /* num_instructions */
3786 _find_insn_generic, /* find_insn */
3787 gp_mem_i_get_le, /* i_memory_get */
3788 gp_mem_i_put_le, /* i_memory_put */
3789 NULL, /* patch_strict */
3790 };
3791
3792 const struct proc_class proc_class_pic16e = {
3793 PIC16E_INSN_RETLW, /* retlw */
3794 8, /* rom_width */
3795 0, /* page_size */
3796 PIC16_BANK_SIZE, /* bank_size */
3797 PIC16_BANK_SHIFT, /* bank_bits_shift */
3798 PIC16_RAM_ADDR_BITS, /* addr_bits_in_bank */
3799 0, /* org_to_byte_shift */
3800 0, /* pc_mask */
3801 0, /* page_mask */
3802 PIC16_BANK_MASK, /* bank_mask */
3803 PIC16_CORE_MASK, /* core_mask */
3804 (1 << 8) - 1, /* config_mask */
3805 6, /* addr_digits */
3806 4, /* word_digits */
3807 2, /* config_digits */
3808 _core_sfr_table_pic16e, /* core_sfr_table */
3809 TABLE_SIZE(_core_sfr_table_pic16e), /* core_sfr_number */
3810 _vector_table_pic16e, /* vector_table */
3811 TABLE_SIZE(_vector_table_pic16e), /* vector_number */
3812 _id_location_pic16e, /* id_location */
3813 _bank_from_addr_pic16, /* bank_from_addr: Same as for pic16 */
3814 _set_bank_pic16e, /* set_bank */
3815 _banksel_byte_length_pic16, /* banksel_byte_length */
3816 _xbank_from_addr_unsupported, /* check_ibank */
3817 _set_ibank_unsupported, /* set_ibank */
3818 _check_page_unsupported, /* check_page */
3819 _set_page_unsupported, /* set_page */
3820 _pagesel_byte_length_unsupported, /* pagesel_byte_length */
3821 _page_addr_unsupported, /* page_addr */
3822 _addr_from_page_bits_unsupported, /* addr_from_page_bits */
3823 _reloc_call_pic16e, /* reloc_call */
3824 _reloc_goto_pic16e, /* reloc_goto */
3825 _reloc_f_pic16, /* reloc_f: same as for pic16 */
3826 _reloc_unsupported, /* reloc_tris */
3827 _reloc_movlb_pic16e, /* reloc_movlb */
3828 _reloc_bra_pic16e, /* reloc_bra */
3829 _reloc_high_generic, /* reloc_high */
3830 op_18cxx, /* instructions */
3831 &num_op_18cxx, /* num_instructions */
3832 _find_insn_pic16e, /* find_insn */
3833 gp_mem_i_get_le, /* i_memory_get */
3834 gp_mem_i_put_le, /* i_memory_put */
3835 NULL, /* patch_strict */
3836 };
3837