summaryrefslogtreecommitdiff
path: root/device/include/pic14
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
committerXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
commit268a53de823a6750d6256ee1fb1e7707b4b45740 (patch)
tree42c1799a9a82b2f7d9790ee9fe181d72a7274751 /device/include/pic14
downloadsdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'device/include/pic14')
-rw-r--r--device/include/pic14/math.h108
-rw-r--r--device/include/pic14/p16f_common.inc35
-rw-r--r--device/include/pic14/pic14_malloc.h69
-rw-r--r--device/include/pic14/pic14devices.txt2595
-rw-r--r--device/include/pic14/pic16fam.h1235
-rw-r--r--device/include/pic14/pic16regs.h1030
-rw-r--r--device/include/pic14/sdcc-lib.h35
-rw-r--r--device/include/pic14/setjmp.h87
-rw-r--r--device/include/pic14/stdarg.h80
-rw-r--r--device/include/pic14/stdio.h142
-rw-r--r--device/include/pic14/stdlib.h188
-rw-r--r--device/include/pic14/time.h94
12 files changed, 5698 insertions, 0 deletions
diff --git a/device/include/pic14/math.h b/device/include/pic14/math.h
new file mode 100644
index 0000000..e020c70
--- /dev/null
+++ b/device/include/pic14/math.h
@@ -0,0 +1,108 @@
+/*-------------------------------------------------------------------------
+ math.h: Floating point math function declarations
+
+ Copyright (C) 2001, Jesus Calvino-Fraga, jesusc@ieee.org
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+/* Version 1.0 - Initial release */
+
+#ifndef _INC_MATH
+#define _INC_MATH
+
+#define HUGE_VALF 3.402823466e+38
+
+#define PI 3.1415926536
+#define TWO_PI 6.2831853071
+#define HALF_PI 1.5707963268
+#define QUART_PI 0.7853981634
+#define iPI 0.3183098862
+#define iTWO_PI 0.1591549431
+#define TWO_O_PI 0.6366197724
+
+/* EPS=B**(-t/2), where B is the radix of the floating-point representation
+ and there are t base-B digits in the significand. Therefore, for floats
+ EPS=2**(-12). Also define EPS2=EPS*EPS. */
+#define EPS 244.14062E-6
+#define EPS2 59.6046E-9
+
+union float_long
+{
+ float f;
+ long l;
+};
+
+#if defined(__SDCC_MATH_LIB) && defined(__SDCC_mcs51) && !defined(__SDCC_USE_XSTACK) && !defined(__SDCC_STACK_AUTO) && !defined(_SDCC_NO_ASM_LIB_FUNCS)
+/* Compile the mcs51 assembly version only when all these
+ conditions are met. Since not all the functions are
+ reentrant, do not compile with --stack-auto is used. */
+#define MATH_ASM_MCS51
+#endif
+
+
+/* Functions on the z80 & gbz80 are always reentrant and so the "reentrant" */
+/* keyword is not defined. */
+#if defined(__SDCC_z80) || defined(__SDCC_z180) || defined(__SDCC_r2k) || defined(__SDCC_r3ka) || defined(__SDCC_tlcs90) || defined(__SDCC_gbz80) || defined(__SDCC_ez80_z80) || defined(__SDCC_stm8) || defined(__SDCC_pic14)
+#define _FLOAT_FUNC_REENTRANT
+#else
+#define _FLOAT_FUNC_REENTRANT __reentrant
+#endif
+
+/**********************************************
+ * Prototypes for float ANSI C math functions *
+ **********************************************/
+
+/* Trigonometric functions */
+float sinf(float x) _FLOAT_FUNC_REENTRANT;
+float cosf(float x) _FLOAT_FUNC_REENTRANT;
+float tanf(float x) _FLOAT_FUNC_REENTRANT;
+float cotf(float x) _FLOAT_FUNC_REENTRANT;
+float asinf(float x) _FLOAT_FUNC_REENTRANT;
+float acosf(float x) _FLOAT_FUNC_REENTRANT;
+float atanf(float x) _FLOAT_FUNC_REENTRANT;
+float atan2f(float x, float y);
+
+/* Hyperbolic functions */
+float sinhf(float x) _FLOAT_FUNC_REENTRANT;
+float coshf(float x) _FLOAT_FUNC_REENTRANT;
+float tanhf(float x) _FLOAT_FUNC_REENTRANT;
+
+/* Exponential, logarithmic and power functions */
+float expf(float x) _FLOAT_FUNC_REENTRANT;
+float logf(float x) _FLOAT_FUNC_REENTRANT;
+float log10f(float x) _FLOAT_FUNC_REENTRANT;
+float powf(float x, float y);
+float sqrtf(float a) _FLOAT_FUNC_REENTRANT;
+
+/* Nearest integer, absolute value, and remainder functions */
+float fabsf(float x) _FLOAT_FUNC_REENTRANT;
+float frexpf(float x, int *pw2);
+float ldexpf(float x, int pw2);
+float ceilf(float x) _FLOAT_FUNC_REENTRANT;
+float floorf(float x) _FLOAT_FUNC_REENTRANT;
+float modff(float x, float * y);
+
+int isnan(float f);
+int isinf(float f);
+#endif /* _INC_MATH */
diff --git a/device/include/pic14/p16f_common.inc b/device/include/pic14/p16f_common.inc
new file mode 100644
index 0000000..ce7e574
--- /dev/null
+++ b/device/include/pic14/p16f_common.inc
@@ -0,0 +1,35 @@
+;--------------------------------------------------------------------------
+; p16f_common.inc - definitions common to all 14 bit PIC devices
+;
+; Copyright (C) 2005, Vangelis Rokas <vrokas AT otenet.gr>
+;
+; This library is free software; you can redistribute it and/or modify it
+; under the terms of the GNU General Public License as published by the
+; Free Software Foundation; either version 2, or (at your option) any
+; later version.
+;
+; This library is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with this library; see the file COPYING. If not, write to the
+; Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+; MA 02110-1301, USA.
+;
+; As a special exception, if you link this library with other files,
+; some of which are compiled with SDCC, to produce an executable,
+; this library does not by itself cause the resulting executable to
+; be covered by the GNU General Public License. This exception does
+; not however invalidate any other reasons why the executable file
+; might be covered by the GNU General Public License.
+;--------------------------------------------------------------------------
+
+ extern STK00
+ extern STK01
+ extern STK02
+ extern STK03
+ extern STK04
+ extern STK05
+
diff --git a/device/include/pic14/pic14_malloc.h b/device/include/pic14/pic14_malloc.h
new file mode 100644
index 0000000..711e0f9
--- /dev/null
+++ b/device/include/pic14/pic14_malloc.h
@@ -0,0 +1,69 @@
+/*-------------------------------------------------------------------------
+ malloc.h - dynamic memory allocation header
+
+ Copyright (C) 2004, Vangelis Rokas <vrokas AT otenet.gr>
+
+ Modifications for PIC14 by
+ Copyright (C) 2019 Gonzalo Pérez de Olaguer Córdoba <salo@gpoc.es>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+/*
+ * WARNING: This file is only for internal use of the PIC14 C library.
+ */
+
+#ifndef __PIC14_MALLOC_H__
+#define __PIC14_MALLOC_H__
+
+#include <stdlib.h>
+
+#define MAX_BLOCK_SIZE 80 /* limited to one bank */
+#define MAX_HEAP_SIZE 80 /* limited to one bank */
+
+#define ALLOC_FLAG 0x80
+
+/* memory block header, max size 127 bytes, 126 usable */
+typedef union {
+ unsigned char datum;
+ struct {
+ unsigned count: 7; /* 0: last block, else block size including this header */
+ unsigned alloc: 1; /* 0: free, 1: allocated */
+ } bits;
+} _malloc_rec;
+
+#define PTR2REC(p) ((_malloc_rec __data *)((unsigned int)(p) - 1))
+#define REC2PTR(r) ((void __data *)((unsigned int)(r) + 1))
+#define NEXTREC(r) ((_malloc_rec __data *)((unsigned int)(r) + (r)->bits.count))
+
+/* this is an external pointer to HEAP. It should be defined in
+ * the user's program, or it can be a symbol created by linker */
+extern _malloc_rec __data *_malloc_heap;
+
+/* initialize heap, should be called before any call to malloc/realloc/calloc */
+void _initHeap (void __data *ptr, size_t size);
+
+/* (re)allocate the specified block with the specified size */
+void __data *_allocateHeap (void __data *ptr, size_t size);
+
+#endif /* __PIC14_MALLOC_H__ */
diff --git a/device/include/pic14/pic14devices.txt b/device/include/pic14/pic14devices.txt
new file mode 100644
index 0000000..a365eb4
--- /dev/null
+++ b/device/include/pic14/pic14devices.txt
@@ -0,0 +1,2595 @@
+#--------------------------------------------------------------------------
+# pic14devices.txt - 14 bit 16Fxxx / 16Cxxx / 12Fxxx series device file
+# for SDCC
+#
+# Copyright (C) 2006, Zik Saleeba <zik at zikzak.net>
+#
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this library; see the file COPYING. If not, write to the
+# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#--------------------------------------------------------------------------
+
+#
+# dev = device name
+# program = program memory in 14 bit words
+# data = data memory in bytes
+# eeprom = eeprom storage
+# enhanced = 0 | 1
+# 0: regular device (default)
+# 1: indicate that this is an enhanced core (automatic context saving on IRQ)
+# io = io lines
+# maxram = maximum memmap address for unique general purpose registers
+# bankmsk = mask for memmap bank selecting. 0x80 for two banks usable,
+# 0x180 for four.
+# config = white-space separated list of config word addresses
+# regmap = registers duplicated in multiple banks. First value is a bank bitmask,
+# following values are register addresses
+# memmap <start> <end> <alias>
+# <start> - <end> mirrored in all banks set in <alias>
+# <alias> is a bitmask of bank bits (0x80, 0x100, 0x180)
+# Make sure to always provide at least one non-full (<alias> = <bankmsk>)
+# record or SDCC will assume that all usable memory is shared across all
+# banks!
+#
+#
+
+#
+# 10F series devices with 14 bit core
+#
+
+processor 10f320, 10lf320
+ program 256
+ data 64
+ eeprom 0
+ io 4
+ maxram 0x7f
+ config 0x2007
+
+
+processor 10f322, 10lf322
+ program 512
+ data 64
+ eeprom 0
+ io 4
+ maxram 0x7f
+ config 0x2007
+
+#
+# 16F series
+#
+processor 16f72
+ program 2K
+ data 128
+ eeprom 0
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x06 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x003f 0x100
+ memmap 0x0040 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x100
+
+processor 16f73
+ program 4K
+ data 192
+ eeprom 0
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x007f 0x100
+ memmap 0x00a0 0x00ff 0x100
+
+processor 16f74, 16lf74
+ program 4K
+ data 192
+ eeprom 0
+ io 33
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x007f 0x100
+ memmap 0x00a0 0x00ff 0x100
+
+processor 16f76, 16lf76
+ program 8K
+ data 368
+ eeprom 0
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x01a0 0x01ef 0x000
+
+processor 16f77, 16lf77
+ program 8K
+ data 368
+ eeprom 0
+ io 33
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x01a0 0x01ef 0x000
+
+processor 16f84, 16lf84, 16f84a, 16lf84a
+ program 1K
+ data 68
+ eeprom 64
+ io 13
+ maxram 0xcf
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x000C 0x004f 0x080
+
+processor 16f87, 16lf87, 16f88, 16lf88
+ program 4K
+ data 368
+ eeprom 256
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f610, 16hv610
+ program 1K
+ data 64
+ eeprom 0
+ io 11
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x080 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0040 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+
+processor 16f616, 16hv616
+ program 2K
+ data 128
+ eeprom 0
+ io 11
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x080 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f627, 16lf627, 16f627a, 16lf627a
+ program 1K
+ data 224
+ eeprom 128
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x014f 0x000
+
+processor 16f628, 16lf628, 16f628a, 16lf628a
+ program 2K
+ data 224
+ eeprom 128
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x014f 0x000
+
+processor 16f648, 16f648a, 16lf648a
+ program 4K
+ data 256
+ eeprom 256
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f630, 16f676
+ program 1K
+ data 64
+ eeprom 128
+ io 12
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x005f 0x080
+
+processor 16f631
+ program 1K
+ data 64
+ eeprom 128
+ io 18
+ maxram 0xff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85 0x07 0x87
+ memmap 0x0040 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+
+processor 16f636, 16f639
+ program 2K
+ data 128
+ eeprom 256
+ io 12
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85 0x07 0x87
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f677
+ program 2K
+ data 128
+ eeprom 256
+ io 18
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85 0x07 0x87
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f684
+ program 2K
+ data 128
+ eeprom 256
+ io 12
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f685, 16f689, 16f690
+ program 4K
+ data 256
+ eeprom 256
+ io 18
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85 0x06 0x86 0x07 0x87
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f687
+ program 2K
+ data 128
+ eeprom 256
+ io 18
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85 0x06 0x86 0x07 0x87
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f688
+ program 4K
+ data 256
+ eeprom 256
+ io 12
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85 0x07 0x87
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f716
+ program 2K
+ data 128
+ eeprom 0
+ io 13
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f707,16lf707
+ program 8K
+ data 363
+ eeprom 0
+ io 36
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0115 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f720,16lf720
+ program 2K
+ data 128
+ eeprom 0
+ io 18
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+
+processor 16f721,16lf721
+ program 4K
+ data 256
+ eeprom 0
+ io 18
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+
+processor 16f722,16lf722,16f722a,16lf722a
+ program 2K
+ data 128
+ eeprom 0
+ io 25
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f723,16lf723,16f723a,16lf723a
+ program 4K
+ data 192
+ eeprom 0
+ io 25
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x012f 0x000
+
+processor 16f724,16lf724
+ program 4K
+ data 192
+ eeprom 0
+ io 36
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x012f 0x000
+
+processor 16f726,16lf726
+ program 8K
+ data 368
+ eeprom 0
+ io 25
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f727,16lf727
+ program 8K
+ data 368
+ eeprom 0
+ io 36
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f737
+ program 4K
+ data 368
+ eeprom 0
+ io 25
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f747, 16lf747
+ program 4K
+ data 368
+ eeprom 0
+ io 36
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f767, 16lf767
+ program 8K
+ data 368
+ eeprom 0
+ io 25
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f777, 16lf777
+ program 8K
+ data 368
+ eeprom 0
+ io 36
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f753, 16hv753
+ program 2K
+ data 128
+ eeprom 0
+ io 12
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f785, 16hv785
+ program 2K
+ data 128
+ eeprom 256
+ io 18
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85 0x06 0x86 0x07 0x87 0x8c
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f870, 16lf870, 16f872, 16lf872
+ program 2K
+ data 128
+ eeprom 64
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x100
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x100
+
+processor 16f871, 16lf871
+ program 2K
+ data 128
+ eeprom 64
+ io 33
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x100
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x100
+
+processor 16f873, 16lf873, 16f873a, 16lf873a
+ program 4K
+ data 192
+ eeprom 128
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x007f 0x100
+ memmap 0x00a0 0x00ff 0x100
+
+processor 16f874, 16lf874, 16f874a, 16lf874a
+ program 4K
+ data 192
+ eeprom 128
+ io 33
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x007f 0x100
+ memmap 0x00a0 0x00ff 0x100
+
+processor 16f876, 16lf876, 16f876a, 16lf876a
+ program 8K
+ data 368
+ eeprom 256
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f877, 16lf877, 16f877a, 16lf877a
+ program 8K
+ data 368
+ eeprom 256
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f882
+ program 2K
+ data 128
+ eeprom 128
+ io 24
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f883
+ program 4K
+ data 256
+ eeprom 256
+ io 24
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f884
+ program 4K
+ data 256
+ eeprom 256
+ io 35
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f886
+ program 8K
+ data 368
+ eeprom 256
+ io 24
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f887
+ program 8K
+ data 368
+ eeprom 256
+ io 35
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007 0x2008
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f818, 16lf818
+ program 1K
+ data 128
+ eeprom 128
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x003f 0x100
+ memmap 0x0040 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16f819, 16lf819
+ program 2K
+ data 256
+ eeprom 256
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f913
+ program 4K
+ data 256
+ eeprom 256
+ io 24
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f914
+ program 4K
+ data 256
+ eeprom 256
+ io 35
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16f916
+ program 8K
+ data 352
+ eeprom 256
+ io 24
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f917
+ program 8K
+ data 352
+ eeprom 256
+ io 35
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+
+processor 16f946
+ program 8K
+ data 336
+ eeprom 256
+ io 53
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x01a0 0x01ef 0x000
+
+
+#
+# 16c series
+#
+processor 16c62, 16c72
+ program 2K
+ data 128
+ eeprom 0
+ io 22
+ maxram 0xbf
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c63a, 16c73b
+ program 4K
+ data 192
+ eeprom 0
+ io 22
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00ff 0x000
+
+processor 16c65b, 16c74b
+ program 4K
+ data 192
+ eeprom 0
+ io 33
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00ff 0x000
+
+processor 16cr73
+ program 4K
+ data 192
+ eeprom 0
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00ff 0x000
+
+processor 16cr74
+ program 4K
+ data 192
+ eeprom 0
+ io 33
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00ff 0x000
+
+processor 16cr76
+ program 8K
+ data 368
+ eeprom 0
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x180 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+ memmap 0x0070 0x007f 0x180
+
+processor 16cr77
+ program 8K
+ data 368
+ eeprom 0
+ io 33
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x180 0x01 0x81
+ memmap 0x0020 0x006f 0x000
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0110 0x016f 0x000
+ memmap 0x0190 0x01ef 0x000
+ memmap 0x0070 0x007f 0x180
+
+processor 16c432
+ program 2K
+ data 128
+ eeprom 0
+ io 12
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c433
+ program 2K
+ data 128
+ eeprom 0
+ io 6
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c554
+ program 512
+ data 80
+ eeprom 0
+ io 21
+ maxram 0x6f
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+
+processor 16c557, 16c558
+ program 2K
+ data 128
+ eeprom 0
+ io 21
+ maxram 0xbf
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c620
+ program 512
+ data 80
+ eeprom 0
+ io 13
+ maxram 0x9f
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+
+processor 16c620a, 16cr620a
+ program 512
+ data 96
+ eeprom 0
+ io 13
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+
+processor 16c621
+ program 1K
+ data 80
+ eeprom 0
+ io 13
+ maxram 0x9f
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+
+processor 16c621a
+ program 1K
+ data 96
+ eeprom 0
+ io 13
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+
+processor 16c622
+ program 2K
+ data 128
+ eeprom 0
+ io 13
+ maxram 0xbf
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c622a
+ program 2K
+ data 128
+ eeprom 0
+ io 13
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+
+processor 16c710
+ program 512
+ data 36
+ eeprom 0
+ io 13
+ maxram 0xaf
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x09 0x0a 0x0b
+ memmap 0x000c 0x002f 0x080
+
+processor 16c71
+ program 1K
+ data 36
+ eeprom 0
+ io 13
+ maxram 0xaf
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x09 0x0a 0x0b
+ memmap 0x000c 0x002f 0x080
+
+processor 16c711
+ program 1K
+ data 68
+ eeprom 0
+ io 13
+ maxram 0xcf
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x09 0x0a 0x0b
+ memmap 0x000c 0x004f 0x080
+
+processor 16c715
+ program 2K
+ data 128
+ eeprom 0
+ io 13
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x007f 0x000
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c717, 16c770
+ program 2K
+ data 256
+ eeprom 0
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16c771
+ program 4K
+ data 256
+ eeprom 0
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16c745
+ program 8K
+ data 320
+ eeprom 0
+ io 22
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x01a0 0x01df 0x000
+
+processor 16c765
+ program 8K
+ data 320
+ eeprom 0
+ io 33
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x01a0 0x01df 0x000
+
+processor 16c773
+ program 4K
+ data 256
+ eeprom 0
+ io 21
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16c774
+ program 4K
+ data 256
+ eeprom 0
+ io 32
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00ef 0x000
+ memmap 0x0120 0x016f 0x000
+
+processor 16c781
+ program 1K
+ data 128
+ eeprom 0
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c782
+ program 2K
+ data 128
+ eeprom 0
+ io 16
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c925
+ program 4K
+ data 176
+ eeprom 0
+ io 52
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+
+processor 16c926
+ program 8K
+ data 336
+ eeprom 0
+ io 52
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x06 0x86
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+ memmap 0x00a0 0x00bf 0x000
+ memmap 0x0120 0x016f 0x000
+ memmap 0x01a0 0x01bf 0x000
+
+#
+# 12F series devices with 14 bit core
+#
+processor 12f609, 12f615, 12hv609, 12hv615
+ program 1K
+ data 64
+ eeprom 0
+ io 5
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0040 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+
+processor 12f617
+ program 2K
+ data 128
+ eeprom 0
+ io 5
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+processor 12f629, 12f675
+ program 1K
+ data 64
+ eeprom 128
+ io 6
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x005f 0x080
+
+processor 12f635
+ program 1K
+ data 64
+ eeprom 128
+ io 6
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ regmap 0x100 0x01 0x81 0x05 0x85
+ memmap 0x0040 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+
+processor 12f683
+ program 2K
+ data 128
+ eeprom 256
+ io 6
+ maxram 0xff
+ bankmsk 0x80
+ config 0x2007
+ regmap 0x80 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0020 0x006f 0x000
+ memmap 0x0070 0x007f 0x080
+ memmap 0x00a0 0x00bf 0x000
+
+processor 12f752
+ program 1K
+ data 64
+ eeprom 0
+ io 6
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0040 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+
+processor 12hv752
+ program 1K
+ data 64
+ eeprom 0
+ io 6
+ maxram 0x1ff
+ bankmsk 0x180
+ config 0x2007
+ regmap 0x180 0x00 0x02 0x03 0x04 0x0a 0x0b
+ memmap 0x0040 0x006f 0x000
+ memmap 0x0070 0x007f 0x180
+
+#
+# Enhanced instruction set 14-bit devices
+#
+
+processor 16f1454, 16lf1454
+ program 8K
+ data 1024
+ eeprom 0
+ io 11
+ enhanced 1
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1455, 16lf1455
+ program 8K
+ data 1024
+ eeprom 0
+ io 11
+ enhanced 1
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1458, 16lf1458
+ program 4K
+ data 512
+ eeprom 0
+ io 18
+ enhanced 1
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1459, 16lf1459
+ program 8K
+ data 1024
+ eeprom 0
+ io 17
+ enhanced 1
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 12f1501, 12lf1501
+ program 1K
+ data 64
+ eeprom 0
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x4f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 12f1571 12lf1571
+ program 1K
+ data 128
+ eeprom 0
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 12f1572 12lf1572
+ program 2K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 12f1612 12lf1612
+ program 2K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1503, 16lf1503
+ program 2K
+ data 128
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1507, 16lf1507
+ program 2K
+ data 128
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1508, 16lf1508
+ program 4K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1509, 16lf1509
+ program 8K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1512, 16lf1512
+ program 2K
+ data 128
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1513, 16lf1513
+ program 4K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1516, 16lf1516
+ program 8K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1517, 16lf1517
+ program 8K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1518, 16lf1518
+ program 16K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1519, 16lf1519
+ program 16K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1526, 16lf1526
+ program 8K
+ data 768
+ eeprom 0
+ enhanced 1
+ io 55
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1527, 16lf1527
+ program 16K
+ data 1536
+ eeprom 0
+ enhanced 1
+ io 55
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 12lf1552
+ program 2K
+ data 1536
+ eeprom 0
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1554
+ program 4K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1559
+ program 8K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1566
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1567
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1574, 16lf1574
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1575, 16lf1575
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1578, 16lf1578
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1579, 16lf1579
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1613 16lf1613
+ program 2K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1614, 16lf1614
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1615, 16lf1615
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1618, 16lf1618
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1619, 16lf1619
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1703 16lf1703
+ program 2K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1704, 16lf1704
+ program 4K
+ data 512
+ eeprom 0
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1705 16lf1705
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1707 16lf1707
+ program 2K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1708, 16lf1708
+ program 4K
+ data 512
+ eeprom 0
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1709, 16lf1709
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1713, 16lf1713
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1716, 16lf1716
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 17
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1717, 16lf1717
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1718, 16lf1718
+ program 16K
+ data 2048
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1719, 16lf1719
+ program 16K
+ data 2048
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1764, 16lf1764
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1765, 16lf1765
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1768, 16lf1768
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1769, 16lf1769
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1773, 16lf1773
+ program 4K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1776, 16lf1776
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1777, 16lf1777
+ program 8K
+ data 1024
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1778, 16lf1778
+ program 16K
+ data 2048
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1779, 16lf1779
+ program 16K
+ data 2048
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1782, 16lf1782
+ program 2K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1783, 16lf1783
+ program 4K
+ data 512
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1784, 16lf1784
+ program 4K
+ data 512
+ eeprom 256
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1786, 16lf1786
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1787, 16lf1787
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1788, 16lf1788
+ program 16K
+ data 2048
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0xfff
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1789, 16lf1789
+ program 16K
+ data 2048
+ eeprom 256
+ enhanced 1
+ io 36
+ maxram 0xfff
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+# PICxxF182x family
+processor 12f1822, 12lf1822
+ program 2K
+ data 128
+ eeprom 256
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1823, 16lf1823
+ program 2K
+ data 128
+ eeprom 256
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1824, 16lf1824
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1824t39a
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1825, 16lf1825
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1826, 16lf1826
+ program 2K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 16
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1827, 16lf1827
+ program 4K
+ data 384
+ eeprom 256
+ enhanced 1
+ io 16
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1828, 16lf1828
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1829, 16lf1829
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1829lin
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 13
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+# PICxxF184x family
+processor 12f1840, 12lf1840
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 12lf1840t39a
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 12lf1840t48a
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1847, 16lf1847
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 16
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+# PIC16LF190x family
+processor 16lf1902
+ program 2K
+ data 128
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1903
+ program 4K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1904
+ program 4K
+ data 256
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1906
+ program 8K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16lf1907
+ program 8K
+ data 512
+ eeprom 0
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+# PIC16F193x family
+processor 16f1933, 16lf1933
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1934, 16lf1934
+ program 4K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1936, 16lf1936
+ program 8K
+ data 512
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1937, 16lf1937
+ program 8K
+ data 512
+ eeprom 256
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1938, 16lf1938
+ program 16K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1939, 16lf1939
+ program 16K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1946, 16lf1946
+ program 8K
+ data 512
+ eeprom 256
+ enhanced 1
+ io 53
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f1947, 16lf1947
+ program 16K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 53
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18313, 16lf18313
+ program 2K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 6
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18323, 16lf18323
+ program 2K
+ data 256
+ eeprom 256
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18324, 16lf18324
+ program 4K
+ data 512
+ eeprom 256
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18325, 16lf18325
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 12
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18344, 16lf18344
+ program 4K
+ data 512
+ eeprom 256
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18345, 16lf18345
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 18
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18855, 16lf18855
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 25
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a 0x800b
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
+
+processor 16f18875, 16lf18875
+ program 8K
+ data 1024
+ eeprom 256
+ enhanced 1
+ io 36
+ maxram 0x07f
+ bankmsk 0xf80
+ config 0x8007 0x8008 0x8009 0x800a 0x800b
+ regmap 0xf80 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b
+ memmap 0x20 0x6f 0x000
+ memmap 0x70 0x7f 0xf80
diff --git a/device/include/pic14/pic16fam.h b/device/include/pic14/pic16fam.h
new file mode 100644
index 0000000..b5c786d
--- /dev/null
+++ b/device/include/pic14/pic16fam.h
@@ -0,0 +1,1235 @@
+/*
+ * pic16fam.h - PIC14 families
+ *
+ * This file is has been generated using ./pic16fam-h-gen.pl .
+ */
+#ifndef __SDCC_PIC16FAM_H__
+#define __SDCC_PIC16FAM_H__ 1
+
+/*
+ * Define device class.
+ */
+#undef __SDCC_PIC14_ENHANCED
+
+#if defined(__SDCC_PIC12F1501) || \
+ defined(__SDCC_PIC12F1571) || \
+ defined(__SDCC_PIC12F1572) || \
+ defined(__SDCC_PIC12F1612) || \
+ defined(__SDCC_PIC12F1822) || \
+ defined(__SDCC_PIC12F1840) || \
+ defined(__SDCC_PIC12LF1552) || \
+ defined(__SDCC_PIC16F1454) || \
+ defined(__SDCC_PIC16F1455) || \
+ defined(__SDCC_PIC16F1458) || \
+ defined(__SDCC_PIC16F1459) || \
+ defined(__SDCC_PIC16F1503) || \
+ defined(__SDCC_PIC16F1507) || \
+ defined(__SDCC_PIC16F1508) || \
+ defined(__SDCC_PIC16F1509) || \
+ defined(__SDCC_PIC16F1512) || \
+ defined(__SDCC_PIC16F1513) || \
+ defined(__SDCC_PIC16F1516) || \
+ defined(__SDCC_PIC16F1517) || \
+ defined(__SDCC_PIC16F1518) || \
+ defined(__SDCC_PIC16F1519) || \
+ defined(__SDCC_PIC16F1526) || \
+ defined(__SDCC_PIC16F1527) || \
+ defined(__SDCC_PIC16F1613) || \
+ defined(__SDCC_PIC16F1703) || \
+ defined(__SDCC_PIC16F1704) || \
+ defined(__SDCC_PIC16F1705) || \
+ defined(__SDCC_PIC16F1707) || \
+ defined(__SDCC_PIC16F1708) || \
+ defined(__SDCC_PIC16F1709) || \
+ defined(__SDCC_PIC16F1713) || \
+ defined(__SDCC_PIC16F1716) || \
+ defined(__SDCC_PIC16F1717) || \
+ defined(__SDCC_PIC16F1718) || \
+ defined(__SDCC_PIC16F1719) || \
+ defined(__SDCC_PIC16F1782) || \
+ defined(__SDCC_PIC16F1783) || \
+ defined(__SDCC_PIC16F1784) || \
+ defined(__SDCC_PIC16F1786) || \
+ defined(__SDCC_PIC16F1787) || \
+ defined(__SDCC_PIC16F1788) || \
+ defined(__SDCC_PIC16F1789) || \
+ defined(__SDCC_PIC16F1823) || \
+ defined(__SDCC_PIC16F1824) || \
+ defined(__SDCC_PIC16F1825) || \
+ defined(__SDCC_PIC16F1826) || \
+ defined(__SDCC_PIC16F1827) || \
+ defined(__SDCC_PIC16F1828) || \
+ defined(__SDCC_PIC16F1829) || \
+ defined(__SDCC_PIC16F1847) || \
+ defined(__SDCC_PIC16F1933) || \
+ defined(__SDCC_PIC16F1934) || \
+ defined(__SDCC_PIC16F1936) || \
+ defined(__SDCC_PIC16F1937) || \
+ defined(__SDCC_PIC16F1938) || \
+ defined(__SDCC_PIC16F1939) || \
+ defined(__SDCC_PIC16F1946) || \
+ defined(__SDCC_PIC16F1947) || \
+ defined(__SDCC_PIC16LF1902) || \
+ defined(__SDCC_PIC16LF1903) || \
+ defined(__SDCC_PIC16LF1904) || \
+ defined(__SDCC_PIC16LF1906) || \
+ defined(__SDCC_PIC16LF1907)
+#define __SDCC_PIC14_ENHANCED 1
+
+#endif
+
+/*
+ * Define ADC style per device family.
+ */
+#undef __SDCC_ADC_STYLE
+
+#if defined(__SDCC_PIC12F609) || \
+ defined(__SDCC_PIC12F629) || \
+ defined(__SDCC_PIC12F635) || \
+ defined(__SDCC_PIC12LF1552) || \
+ defined(__SDCC_PIC16C62) || \
+ defined(__SDCC_PIC16C63A) || \
+ defined(__SDCC_PIC16C65B) || \
+ defined(__SDCC_PIC16C432) || \
+ defined(__SDCC_PIC16C554) || \
+ defined(__SDCC_PIC16C557) || \
+ defined(__SDCC_PIC16C558) || \
+ defined(__SDCC_PIC16C620) || \
+ defined(__SDCC_PIC16C620A) || \
+ defined(__SDCC_PIC16C621) || \
+ defined(__SDCC_PIC16C621A) || \
+ defined(__SDCC_PIC16C622) || \
+ defined(__SDCC_PIC16C622A) || \
+ defined(__SDCC_PIC16CR73) || \
+ defined(__SDCC_PIC16CR74) || \
+ defined(__SDCC_PIC16CR76) || \
+ defined(__SDCC_PIC16CR77) || \
+ defined(__SDCC_PIC16CR620A) || \
+ defined(__SDCC_PIC16F84) || \
+ defined(__SDCC_PIC16F84A) || \
+ defined(__SDCC_PIC16F87) || \
+ defined(__SDCC_PIC16F610) || \
+ defined(__SDCC_PIC16F627) || \
+ defined(__SDCC_PIC16F627A) || \
+ defined(__SDCC_PIC16F628) || \
+ defined(__SDCC_PIC16F628A) || \
+ defined(__SDCC_PIC16F630) || \
+ defined(__SDCC_PIC16F631) || \
+ defined(__SDCC_PIC16F636) || \
+ defined(__SDCC_PIC16F639) || \
+ defined(__SDCC_PIC16F648) || \
+ defined(__SDCC_PIC16F648A) || \
+ defined(__SDCC_PIC16F1454) || \
+ defined(__SDCC_PIC16F1458) || \
+ defined(__SDCC_PIC16HV610)
+#define __SDCC_ADC_STYLE 0
+
+#elif defined(__SDCC_PIC10F320) || \
+ defined(__SDCC_PIC10F322)
+#define __SDCC_ADC_STYLE 1003201
+
+#elif defined(__SDCC_PIC12F615) || \
+ defined(__SDCC_PIC12F617)
+#define __SDCC_ADC_STYLE 1206151
+
+#elif defined(__SDCC_PIC12F675) || \
+ defined(__SDCC_PIC12F683)
+#define __SDCC_ADC_STYLE 1206751
+
+#elif defined(__SDCC_PIC12F752)
+#define __SDCC_ADC_STYLE 1207521
+
+#elif defined(__SDCC_PIC12F1501)
+#define __SDCC_ADC_STYLE 1215011
+
+#elif defined(__SDCC_PIC12F1571) || \
+ defined(__SDCC_PIC12F1572)
+#define __SDCC_ADC_STYLE 1215711
+
+#elif defined(__SDCC_PIC12F1612)
+#define __SDCC_ADC_STYLE 1216121
+
+#elif defined(__SDCC_PIC12F1822) || \
+ defined(__SDCC_PIC12F1840)
+#define __SDCC_ADC_STYLE 1218221
+
+#elif defined(__SDCC_PIC16C71) || \
+ defined(__SDCC_PIC16C710) || \
+ defined(__SDCC_PIC16C711)
+#define __SDCC_ADC_STYLE 1600711
+
+#elif defined(__SDCC_PIC16C72) || \
+ defined(__SDCC_PIC16C73B) || \
+ defined(__SDCC_PIC16F72) || \
+ defined(__SDCC_PIC16F73) || \
+ defined(__SDCC_PIC16F76)
+#define __SDCC_ADC_STYLE 1600721
+
+#elif defined(__SDCC_PIC16C74B) || \
+ defined(__SDCC_PIC16F74) || \
+ defined(__SDCC_PIC16F77)
+#define __SDCC_ADC_STYLE 1600741
+
+#elif defined(__SDCC_PIC16F88)
+#define __SDCC_ADC_STYLE 1600881
+
+#elif defined(__SDCC_PIC16C433)
+#define __SDCC_ADC_STYLE 1604331
+
+#elif defined(__SDCC_PIC16F616) || \
+ defined(__SDCC_PIC16HV616)
+#define __SDCC_ADC_STYLE 1606161
+
+#elif defined(__SDCC_PIC16F676) || \
+ defined(__SDCC_PIC16F684) || \
+ defined(__SDCC_PIC16F688)
+#define __SDCC_ADC_STYLE 1606761
+
+#elif defined(__SDCC_PIC16F677) || \
+ defined(__SDCC_PIC16F685) || \
+ defined(__SDCC_PIC16F687) || \
+ defined(__SDCC_PIC16F689) || \
+ defined(__SDCC_PIC16F690)
+#define __SDCC_ADC_STYLE 1606771
+
+#elif defined(__SDCC_PIC16F707)
+#define __SDCC_ADC_STYLE 1607071
+
+#elif defined(__SDCC_PIC16C715)
+#define __SDCC_ADC_STYLE 1607151
+
+#elif defined(__SDCC_PIC16F716)
+#define __SDCC_ADC_STYLE 1607161
+
+#elif defined(__SDCC_PIC16C717) || \
+ defined(__SDCC_PIC16C770) || \
+ defined(__SDCC_PIC16C771)
+#define __SDCC_ADC_STYLE 1607171
+
+#elif defined(__SDCC_PIC16F720) || \
+ defined(__SDCC_PIC16F721)
+#define __SDCC_ADC_STYLE 1607201
+
+#elif defined(__SDCC_PIC16F722) || \
+ defined(__SDCC_PIC16F722A) || \
+ defined(__SDCC_PIC16F723) || \
+ defined(__SDCC_PIC16F723A) || \
+ defined(__SDCC_PIC16F726)
+#define __SDCC_ADC_STYLE 1607221
+
+#elif defined(__SDCC_PIC16F724) || \
+ defined(__SDCC_PIC16F727)
+#define __SDCC_ADC_STYLE 1607241
+
+#elif defined(__SDCC_PIC16F737) || \
+ defined(__SDCC_PIC16F767)
+#define __SDCC_ADC_STYLE 1607371
+
+#elif defined(__SDCC_PIC16C745)
+#define __SDCC_ADC_STYLE 1607451
+
+#elif defined(__SDCC_PIC16F747) || \
+ defined(__SDCC_PIC16F777)
+#define __SDCC_ADC_STYLE 1607471
+
+#elif defined(__SDCC_PIC16F753) || \
+ defined(__SDCC_PIC16HV753)
+#define __SDCC_ADC_STYLE 1607531
+
+#elif defined(__SDCC_PIC16C765)
+#define __SDCC_ADC_STYLE 1607651
+
+#elif defined(__SDCC_PIC16C773)
+#define __SDCC_ADC_STYLE 1607731
+
+#elif defined(__SDCC_PIC16C774)
+#define __SDCC_ADC_STYLE 1607741
+
+#elif defined(__SDCC_PIC16C781) || \
+ defined(__SDCC_PIC16C782)
+#define __SDCC_ADC_STYLE 1607811
+
+#elif defined(__SDCC_PIC16F785) || \
+ defined(__SDCC_PIC16HV785)
+#define __SDCC_ADC_STYLE 1607851
+
+#elif defined(__SDCC_PIC16F818) || \
+ defined(__SDCC_PIC16F819)
+#define __SDCC_ADC_STYLE 1608181
+
+#elif defined(__SDCC_PIC16F871) || \
+ defined(__SDCC_PIC16F874) || \
+ defined(__SDCC_PIC16F874A) || \
+ defined(__SDCC_PIC16F877) || \
+ defined(__SDCC_PIC16F877A)
+#define __SDCC_ADC_STYLE 1608711
+
+#elif defined(__SDCC_PIC16F882) || \
+ defined(__SDCC_PIC16F883) || \
+ defined(__SDCC_PIC16F886)
+#define __SDCC_ADC_STYLE 1608821
+
+#elif defined(__SDCC_PIC16F884) || \
+ defined(__SDCC_PIC16F887)
+#define __SDCC_ADC_STYLE 1608841
+
+#elif defined(__SDCC_PIC16F913) || \
+ defined(__SDCC_PIC16F916)
+#define __SDCC_ADC_STYLE 1609131
+
+#elif defined(__SDCC_PIC16F914) || \
+ defined(__SDCC_PIC16F917) || \
+ defined(__SDCC_PIC16F946)
+#define __SDCC_ADC_STYLE 1609141
+
+#elif defined(__SDCC_PIC16C925) || \
+ defined(__SDCC_PIC16C926) || \
+ defined(__SDCC_PIC16F870) || \
+ defined(__SDCC_PIC16F872) || \
+ defined(__SDCC_PIC16F873) || \
+ defined(__SDCC_PIC16F873A) || \
+ defined(__SDCC_PIC16F876) || \
+ defined(__SDCC_PIC16F876A)
+#define __SDCC_ADC_STYLE 1609251
+
+#elif defined(__SDCC_PIC16F1455)
+#define __SDCC_ADC_STYLE 1614551
+
+#elif defined(__SDCC_PIC16F1459)
+#define __SDCC_ADC_STYLE 1614591
+
+#elif defined(__SDCC_PIC16F1503)
+#define __SDCC_ADC_STYLE 1615031
+
+#elif defined(__SDCC_PIC16F1507) || \
+ defined(__SDCC_PIC16F1508) || \
+ defined(__SDCC_PIC16F1509)
+#define __SDCC_ADC_STYLE 1615071
+
+#elif defined(__SDCC_PIC16F1512) || \
+ defined(__SDCC_PIC16F1513) || \
+ defined(__SDCC_PIC16F1516) || \
+ defined(__SDCC_PIC16F1518)
+#define __SDCC_ADC_STYLE 1615121
+
+#elif defined(__SDCC_PIC16F1517) || \
+ defined(__SDCC_PIC16F1519)
+#define __SDCC_ADC_STYLE 1615171
+
+#elif defined(__SDCC_PIC16F1526) || \
+ defined(__SDCC_PIC16F1527)
+#define __SDCC_ADC_STYLE 1615261
+
+#elif defined(__SDCC_PIC16F1613)
+#define __SDCC_ADC_STYLE 1616131
+
+#elif defined(__SDCC_PIC16F1703)
+#define __SDCC_ADC_STYLE 1617031
+
+#elif defined(__SDCC_PIC16F1704) || \
+ defined(__SDCC_PIC16F1705)
+#define __SDCC_ADC_STYLE 1617041
+
+#elif defined(__SDCC_PIC16F1707)
+#define __SDCC_ADC_STYLE 1617071
+
+#elif defined(__SDCC_PIC16F1708)
+#define __SDCC_ADC_STYLE 1617081
+
+#elif defined(__SDCC_PIC16F1709)
+#define __SDCC_ADC_STYLE 1617091
+
+#elif defined(__SDCC_PIC16F1713) || \
+ defined(__SDCC_PIC16F1716) || \
+ defined(__SDCC_PIC16F1718)
+#define __SDCC_ADC_STYLE 1617131
+
+#elif defined(__SDCC_PIC16F1717) || \
+ defined(__SDCC_PIC16F1719)
+#define __SDCC_ADC_STYLE 1617171
+
+#elif defined(__SDCC_PIC16F1782) || \
+ defined(__SDCC_PIC16F1783) || \
+ defined(__SDCC_PIC16F1786)
+#define __SDCC_ADC_STYLE 1617821
+
+#elif defined(__SDCC_PIC16F1784) || \
+ defined(__SDCC_PIC16F1787)
+#define __SDCC_ADC_STYLE 1617841
+
+#elif defined(__SDCC_PIC16F1788)
+#define __SDCC_ADC_STYLE 1617881
+
+#elif defined(__SDCC_PIC16F1789)
+#define __SDCC_ADC_STYLE 1617891
+
+#elif defined(__SDCC_PIC16F1823)
+#define __SDCC_ADC_STYLE 1618231
+
+#elif defined(__SDCC_PIC16F1824) || \
+ defined(__SDCC_PIC16F1825)
+#define __SDCC_ADC_STYLE 1618241
+
+#elif defined(__SDCC_PIC16F1826) || \
+ defined(__SDCC_PIC16F1827) || \
+ defined(__SDCC_PIC16F1847)
+#define __SDCC_ADC_STYLE 1618261
+
+#elif defined(__SDCC_PIC16F1828) || \
+ defined(__SDCC_PIC16F1829)
+#define __SDCC_ADC_STYLE 1618281
+
+#elif defined(__SDCC_PIC16LF1902) || \
+ defined(__SDCC_PIC16LF1903) || \
+ defined(__SDCC_PIC16LF1906)
+#define __SDCC_ADC_STYLE 1619021
+
+#elif defined(__SDCC_PIC16LF1904) || \
+ defined(__SDCC_PIC16LF1907)
+#define __SDCC_ADC_STYLE 1619041
+
+#elif defined(__SDCC_PIC16F1933) || \
+ defined(__SDCC_PIC16F1936) || \
+ defined(__SDCC_PIC16F1938)
+#define __SDCC_ADC_STYLE 1619331
+
+#elif defined(__SDCC_PIC16F1934) || \
+ defined(__SDCC_PIC16F1937) || \
+ defined(__SDCC_PIC16F1939)
+#define __SDCC_ADC_STYLE 1619341
+
+#elif defined(__SDCC_PIC16F1946) || \
+ defined(__SDCC_PIC16F1947)
+#define __SDCC_ADC_STYLE 1619461
+
+#else
+#warning No ADC style associated with the target device.
+#warning Please update your pic14/pic16fam.h manually and/or inform the maintainer.
+#endif
+
+/*
+ * Define PWM style per device family.
+ */
+#undef __SDCC_PWM_STYLE
+
+#if defined(__SDCC_PIC12F609) || \
+ defined(__SDCC_PIC12F629) || \
+ defined(__SDCC_PIC12F635) || \
+ defined(__SDCC_PIC12F675) || \
+ defined(__SDCC_PIC12LF1552) || \
+ defined(__SDCC_PIC16C71) || \
+ defined(__SDCC_PIC16C432) || \
+ defined(__SDCC_PIC16C433) || \
+ defined(__SDCC_PIC16C554) || \
+ defined(__SDCC_PIC16C557) || \
+ defined(__SDCC_PIC16C558) || \
+ defined(__SDCC_PIC16C620) || \
+ defined(__SDCC_PIC16C620A) || \
+ defined(__SDCC_PIC16C621) || \
+ defined(__SDCC_PIC16C621A) || \
+ defined(__SDCC_PIC16C622) || \
+ defined(__SDCC_PIC16C622A) || \
+ defined(__SDCC_PIC16C710) || \
+ defined(__SDCC_PIC16C711) || \
+ defined(__SDCC_PIC16C715) || \
+ defined(__SDCC_PIC16C781) || \
+ defined(__SDCC_PIC16C782) || \
+ defined(__SDCC_PIC16CR73) || \
+ defined(__SDCC_PIC16CR74) || \
+ defined(__SDCC_PIC16CR76) || \
+ defined(__SDCC_PIC16CR77) || \
+ defined(__SDCC_PIC16CR620A) || \
+ defined(__SDCC_PIC16F84) || \
+ defined(__SDCC_PIC16F84A) || \
+ defined(__SDCC_PIC16F610) || \
+ defined(__SDCC_PIC16F630) || \
+ defined(__SDCC_PIC16F631) || \
+ defined(__SDCC_PIC16F636) || \
+ defined(__SDCC_PIC16F639) || \
+ defined(__SDCC_PIC16F648) || \
+ defined(__SDCC_PIC16F676) || \
+ defined(__SDCC_PIC16F677) || \
+ defined(__SDCC_PIC16F687) || \
+ defined(__SDCC_PIC16F688) || \
+ defined(__SDCC_PIC16F689) || \
+ defined(__SDCC_PIC16F1458) || \
+ defined(__SDCC_PIC16HV610) || \
+ defined(__SDCC_PIC16LF1902) || \
+ defined(__SDCC_PIC16LF1903) || \
+ defined(__SDCC_PIC16LF1904) || \
+ defined(__SDCC_PIC16LF1906) || \
+ defined(__SDCC_PIC16LF1907)
+#define __SDCC_PWM_STYLE 0
+
+#elif defined(__SDCC_PIC10F320) || \
+ defined(__SDCC_PIC10F322)
+#define __SDCC_PWM_STYLE 1003202
+
+#elif defined(__SDCC_PIC12F615) || \
+ defined(__SDCC_PIC12F617)
+#define __SDCC_PWM_STYLE 1206152
+
+#elif defined(__SDCC_PIC12F683)
+#define __SDCC_PWM_STYLE 1206832
+
+#elif defined(__SDCC_PIC12F752)
+#define __SDCC_PWM_STYLE 1207522
+
+#elif defined(__SDCC_PIC12F1501)
+#define __SDCC_PWM_STYLE 1215012
+
+#elif defined(__SDCC_PIC12F1571) || \
+ defined(__SDCC_PIC12F1572)
+#define __SDCC_PWM_STYLE 1215712
+
+#elif defined(__SDCC_PIC12F1612)
+#define __SDCC_PWM_STYLE 1216122
+
+#elif defined(__SDCC_PIC12F1822) || \
+ defined(__SDCC_PIC12F1840)
+#define __SDCC_PWM_STYLE 1218222
+
+#elif defined(__SDCC_PIC16C62) || \
+ defined(__SDCC_PIC16C72) || \
+ defined(__SDCC_PIC16C925) || \
+ defined(__SDCC_PIC16C926) || \
+ defined(__SDCC_PIC16F72) || \
+ defined(__SDCC_PIC16F870) || \
+ defined(__SDCC_PIC16F871) || \
+ defined(__SDCC_PIC16F872)
+#define __SDCC_PWM_STYLE 1600622
+
+#elif defined(__SDCC_PIC16C63A) || \
+ defined(__SDCC_PIC16C65B) || \
+ defined(__SDCC_PIC16C73B) || \
+ defined(__SDCC_PIC16C74B) || \
+ defined(__SDCC_PIC16C745) || \
+ defined(__SDCC_PIC16C765) || \
+ defined(__SDCC_PIC16C773) || \
+ defined(__SDCC_PIC16C774) || \
+ defined(__SDCC_PIC16F73) || \
+ defined(__SDCC_PIC16F74) || \
+ defined(__SDCC_PIC16F76) || \
+ defined(__SDCC_PIC16F77) || \
+ defined(__SDCC_PIC16F873) || \
+ defined(__SDCC_PIC16F873A) || \
+ defined(__SDCC_PIC16F874) || \
+ defined(__SDCC_PIC16F874A) || \
+ defined(__SDCC_PIC16F876) || \
+ defined(__SDCC_PIC16F876A) || \
+ defined(__SDCC_PIC16F877) || \
+ defined(__SDCC_PIC16F877A)
+#define __SDCC_PWM_STYLE 1600632
+
+#elif defined(__SDCC_PIC16F87) || \
+ defined(__SDCC_PIC16F88)
+#define __SDCC_PWM_STYLE 1600872
+
+#elif defined(__SDCC_PIC16F616) || \
+ defined(__SDCC_PIC16F684) || \
+ defined(__SDCC_PIC16HV616)
+#define __SDCC_PWM_STYLE 1606162
+
+#elif defined(__SDCC_PIC16F627) || \
+ defined(__SDCC_PIC16F627A) || \
+ defined(__SDCC_PIC16F628) || \
+ defined(__SDCC_PIC16F628A) || \
+ defined(__SDCC_PIC16F648A)
+#define __SDCC_PWM_STYLE 1606272
+
+#elif defined(__SDCC_PIC16F685) || \
+ defined(__SDCC_PIC16F690)
+#define __SDCC_PWM_STYLE 1606852
+
+#elif defined(__SDCC_PIC16F707)
+#define __SDCC_PWM_STYLE 1607072
+
+#elif defined(__SDCC_PIC16C717) || \
+ defined(__SDCC_PIC16C770) || \
+ defined(__SDCC_PIC16C771) || \
+ defined(__SDCC_PIC16F716)
+#define __SDCC_PWM_STYLE 1607172
+
+#elif defined(__SDCC_PIC16F720) || \
+ defined(__SDCC_PIC16F721) || \
+ defined(__SDCC_PIC16F913) || \
+ defined(__SDCC_PIC16F916)
+#define __SDCC_PWM_STYLE 1607202
+
+#elif defined(__SDCC_PIC16F722) || \
+ defined(__SDCC_PIC16F722A) || \
+ defined(__SDCC_PIC16F723) || \
+ defined(__SDCC_PIC16F723A) || \
+ defined(__SDCC_PIC16F724) || \
+ defined(__SDCC_PIC16F726) || \
+ defined(__SDCC_PIC16F727)
+#define __SDCC_PWM_STYLE 1607222
+
+#elif defined(__SDCC_PIC16F737) || \
+ defined(__SDCC_PIC16F747) || \
+ defined(__SDCC_PIC16F767) || \
+ defined(__SDCC_PIC16F777)
+#define __SDCC_PWM_STYLE 1607372
+
+#elif defined(__SDCC_PIC16F753) || \
+ defined(__SDCC_PIC16HV753)
+#define __SDCC_PWM_STYLE 1607532
+
+#elif defined(__SDCC_PIC16F785) || \
+ defined(__SDCC_PIC16HV785)
+#define __SDCC_PWM_STYLE 1607852
+
+#elif defined(__SDCC_PIC16F818) || \
+ defined(__SDCC_PIC16F819)
+#define __SDCC_PWM_STYLE 1608182
+
+#elif defined(__SDCC_PIC16F882) || \
+ defined(__SDCC_PIC16F883) || \
+ defined(__SDCC_PIC16F884) || \
+ defined(__SDCC_PIC16F886) || \
+ defined(__SDCC_PIC16F887)
+#define __SDCC_PWM_STYLE 1608822
+
+#elif defined(__SDCC_PIC16F914) || \
+ defined(__SDCC_PIC16F917) || \
+ defined(__SDCC_PIC16F946)
+#define __SDCC_PWM_STYLE 1609142
+
+#elif defined(__SDCC_PIC16F1454) || \
+ defined(__SDCC_PIC16F1455)
+#define __SDCC_PWM_STYLE 1614542
+
+#elif defined(__SDCC_PIC16F1459)
+#define __SDCC_PWM_STYLE 1614592
+
+#elif defined(__SDCC_PIC16F1503) || \
+ defined(__SDCC_PIC16F1507) || \
+ defined(__SDCC_PIC16F1508) || \
+ defined(__SDCC_PIC16F1509)
+#define __SDCC_PWM_STYLE 1615032
+
+#elif defined(__SDCC_PIC16F1512) || \
+ defined(__SDCC_PIC16F1513) || \
+ defined(__SDCC_PIC16F1516) || \
+ defined(__SDCC_PIC16F1517) || \
+ defined(__SDCC_PIC16F1518) || \
+ defined(__SDCC_PIC16F1519)
+#define __SDCC_PWM_STYLE 1615122
+
+#elif defined(__SDCC_PIC16F1526) || \
+ defined(__SDCC_PIC16F1527)
+#define __SDCC_PWM_STYLE 1615262
+
+#elif defined(__SDCC_PIC16F1613)
+#define __SDCC_PWM_STYLE 1616132
+
+#elif defined(__SDCC_PIC16F1703)
+#define __SDCC_PWM_STYLE 1617032
+
+#elif defined(__SDCC_PIC16F1704) || \
+ defined(__SDCC_PIC16F1705)
+#define __SDCC_PWM_STYLE 1617042
+
+#elif defined(__SDCC_PIC16F1707)
+#define __SDCC_PWM_STYLE 1617072
+
+#elif defined(__SDCC_PIC16F1708)
+#define __SDCC_PWM_STYLE 1617082
+
+#elif defined(__SDCC_PIC16F1709)
+#define __SDCC_PWM_STYLE 1617092
+
+#elif defined(__SDCC_PIC16F1713) || \
+ defined(__SDCC_PIC16F1716) || \
+ defined(__SDCC_PIC16F1718)
+#define __SDCC_PWM_STYLE 1617132
+
+#elif defined(__SDCC_PIC16F1717) || \
+ defined(__SDCC_PIC16F1719)
+#define __SDCC_PWM_STYLE 1617172
+
+#elif defined(__SDCC_PIC16F1782) || \
+ defined(__SDCC_PIC16F1783)
+#define __SDCC_PWM_STYLE 1617822
+
+#elif defined(__SDCC_PIC16F1784) || \
+ defined(__SDCC_PIC16F1787)
+#define __SDCC_PWM_STYLE 1617842
+
+#elif defined(__SDCC_PIC16F1786)
+#define __SDCC_PWM_STYLE 1617862
+
+#elif defined(__SDCC_PIC16F1788)
+#define __SDCC_PWM_STYLE 1617882
+
+#elif defined(__SDCC_PIC16F1789)
+#define __SDCC_PWM_STYLE 1617892
+
+#elif defined(__SDCC_PIC16F1823)
+#define __SDCC_PWM_STYLE 1618232
+
+#elif defined(__SDCC_PIC16F1824) || \
+ defined(__SDCC_PIC16F1825)
+#define __SDCC_PWM_STYLE 1618242
+
+#elif defined(__SDCC_PIC16F1826)
+#define __SDCC_PWM_STYLE 1618262
+
+#elif defined(__SDCC_PIC16F1827) || \
+ defined(__SDCC_PIC16F1847)
+#define __SDCC_PWM_STYLE 1618272
+
+#elif defined(__SDCC_PIC16F1828) || \
+ defined(__SDCC_PIC16F1829)
+#define __SDCC_PWM_STYLE 1618282
+
+#elif defined(__SDCC_PIC16F1933) || \
+ defined(__SDCC_PIC16F1936) || \
+ defined(__SDCC_PIC16F1938)
+#define __SDCC_PWM_STYLE 1619332
+
+#elif defined(__SDCC_PIC16F1934) || \
+ defined(__SDCC_PIC16F1937) || \
+ defined(__SDCC_PIC16F1939)
+#define __SDCC_PWM_STYLE 1619342
+
+#elif defined(__SDCC_PIC16F1946) || \
+ defined(__SDCC_PIC16F1947)
+#define __SDCC_PWM_STYLE 1619462
+
+#else
+#warning No PWM style associated with the target device.
+#warning Please update your pic14/pic16fam.h manually and/or inform the maintainer.
+#endif
+
+/*
+ * Define SSP style per device family.
+ */
+#undef __SDCC_SSP_STYLE
+
+#if defined(__SDCC_PIC10F320) || \
+ defined(__SDCC_PIC10F322) || \
+ defined(__SDCC_PIC12F609) || \
+ defined(__SDCC_PIC12F615) || \
+ defined(__SDCC_PIC12F617) || \
+ defined(__SDCC_PIC12F629) || \
+ defined(__SDCC_PIC12F635) || \
+ defined(__SDCC_PIC12F675) || \
+ defined(__SDCC_PIC12F683) || \
+ defined(__SDCC_PIC12F752) || \
+ defined(__SDCC_PIC12F1501) || \
+ defined(__SDCC_PIC12F1571) || \
+ defined(__SDCC_PIC12F1572) || \
+ defined(__SDCC_PIC12F1612) || \
+ defined(__SDCC_PIC12LF1552) || \
+ defined(__SDCC_PIC16C71) || \
+ defined(__SDCC_PIC16C432) || \
+ defined(__SDCC_PIC16C433) || \
+ defined(__SDCC_PIC16C554) || \
+ defined(__SDCC_PIC16C557) || \
+ defined(__SDCC_PIC16C558) || \
+ defined(__SDCC_PIC16C620) || \
+ defined(__SDCC_PIC16C620A) || \
+ defined(__SDCC_PIC16C621) || \
+ defined(__SDCC_PIC16C621A) || \
+ defined(__SDCC_PIC16C622) || \
+ defined(__SDCC_PIC16C622A) || \
+ defined(__SDCC_PIC16C710) || \
+ defined(__SDCC_PIC16C711) || \
+ defined(__SDCC_PIC16C715) || \
+ defined(__SDCC_PIC16C745) || \
+ defined(__SDCC_PIC16C765) || \
+ defined(__SDCC_PIC16C781) || \
+ defined(__SDCC_PIC16C782) || \
+ defined(__SDCC_PIC16CR73) || \
+ defined(__SDCC_PIC16CR74) || \
+ defined(__SDCC_PIC16CR76) || \
+ defined(__SDCC_PIC16CR77) || \
+ defined(__SDCC_PIC16CR620A) || \
+ defined(__SDCC_PIC16F84) || \
+ defined(__SDCC_PIC16F84A) || \
+ defined(__SDCC_PIC16F610) || \
+ defined(__SDCC_PIC16F616) || \
+ defined(__SDCC_PIC16F627) || \
+ defined(__SDCC_PIC16F627A) || \
+ defined(__SDCC_PIC16F628) || \
+ defined(__SDCC_PIC16F628A) || \
+ defined(__SDCC_PIC16F630) || \
+ defined(__SDCC_PIC16F631) || \
+ defined(__SDCC_PIC16F636) || \
+ defined(__SDCC_PIC16F639) || \
+ defined(__SDCC_PIC16F648) || \
+ defined(__SDCC_PIC16F648A) || \
+ defined(__SDCC_PIC16F676) || \
+ defined(__SDCC_PIC16F684) || \
+ defined(__SDCC_PIC16F685) || \
+ defined(__SDCC_PIC16F688) || \
+ defined(__SDCC_PIC16F716) || \
+ defined(__SDCC_PIC16F753) || \
+ defined(__SDCC_PIC16F785) || \
+ defined(__SDCC_PIC16F870) || \
+ defined(__SDCC_PIC16F871) || \
+ defined(__SDCC_PIC16F1458) || \
+ defined(__SDCC_PIC16F1507) || \
+ defined(__SDCC_PIC16F1613) || \
+ defined(__SDCC_PIC16HV610) || \
+ defined(__SDCC_PIC16HV616) || \
+ defined(__SDCC_PIC16HV753) || \
+ defined(__SDCC_PIC16HV785) || \
+ defined(__SDCC_PIC16LF1902) || \
+ defined(__SDCC_PIC16LF1903) || \
+ defined(__SDCC_PIC16LF1904) || \
+ defined(__SDCC_PIC16LF1906) || \
+ defined(__SDCC_PIC16LF1907)
+#define __SDCC_SSP_STYLE 0
+
+#elif defined(__SDCC_PIC12F1822) || \
+ defined(__SDCC_PIC12F1840)
+#define __SDCC_SSP_STYLE 1218223
+
+#elif defined(__SDCC_PIC16C62) || \
+ defined(__SDCC_PIC16C72)
+#define __SDCC_SSP_STYLE 1600623
+
+#elif defined(__SDCC_PIC16C63A) || \
+ defined(__SDCC_PIC16C65B)
+#define __SDCC_SSP_STYLE 1600633
+
+#elif defined(__SDCC_PIC16F72) || \
+ defined(__SDCC_PIC16F73) || \
+ defined(__SDCC_PIC16F74) || \
+ defined(__SDCC_PIC16F76) || \
+ defined(__SDCC_PIC16F77)
+#define __SDCC_SSP_STYLE 1600723
+
+#elif defined(__SDCC_PIC16C73B) || \
+ defined(__SDCC_PIC16C74B)
+#define __SDCC_SSP_STYLE 1600733
+
+#elif defined(__SDCC_PIC16F87) || \
+ defined(__SDCC_PIC16F88) || \
+ defined(__SDCC_PIC16F818) || \
+ defined(__SDCC_PIC16F819)
+#define __SDCC_SSP_STYLE 1600873
+
+#elif defined(__SDCC_PIC16F677) || \
+ defined(__SDCC_PIC16F687) || \
+ defined(__SDCC_PIC16F689) || \
+ defined(__SDCC_PIC16F690)
+#define __SDCC_SSP_STYLE 1606773
+
+#elif defined(__SDCC_PIC16F707)
+#define __SDCC_SSP_STYLE 1607073
+
+#elif defined(__SDCC_PIC16C717) || \
+ defined(__SDCC_PIC16C770) || \
+ defined(__SDCC_PIC16C771)
+#define __SDCC_SSP_STYLE 1607173
+
+#elif defined(__SDCC_PIC16F720) || \
+ defined(__SDCC_PIC16F721)
+#define __SDCC_SSP_STYLE 1607203
+
+#elif defined(__SDCC_PIC16F722) || \
+ defined(__SDCC_PIC16F722A) || \
+ defined(__SDCC_PIC16F723) || \
+ defined(__SDCC_PIC16F723A) || \
+ defined(__SDCC_PIC16F724) || \
+ defined(__SDCC_PIC16F726) || \
+ defined(__SDCC_PIC16F727)
+#define __SDCC_SSP_STYLE 1607223
+
+#elif defined(__SDCC_PIC16F737) || \
+ defined(__SDCC_PIC16F747) || \
+ defined(__SDCC_PIC16F767) || \
+ defined(__SDCC_PIC16F777)
+#define __SDCC_SSP_STYLE 1607373
+
+#elif defined(__SDCC_PIC16C773) || \
+ defined(__SDCC_PIC16C774)
+#define __SDCC_SSP_STYLE 1607733
+
+#elif defined(__SDCC_PIC16F872) || \
+ defined(__SDCC_PIC16F873) || \
+ defined(__SDCC_PIC16F873A) || \
+ defined(__SDCC_PIC16F874) || \
+ defined(__SDCC_PIC16F874A) || \
+ defined(__SDCC_PIC16F876) || \
+ defined(__SDCC_PIC16F876A) || \
+ defined(__SDCC_PIC16F877) || \
+ defined(__SDCC_PIC16F877A)
+#define __SDCC_SSP_STYLE 1608723
+
+#elif defined(__SDCC_PIC16F882) || \
+ defined(__SDCC_PIC16F883) || \
+ defined(__SDCC_PIC16F884) || \
+ defined(__SDCC_PIC16F886) || \
+ defined(__SDCC_PIC16F887)
+#define __SDCC_SSP_STYLE 1608823
+
+#elif defined(__SDCC_PIC16F913) || \
+ defined(__SDCC_PIC16F914) || \
+ defined(__SDCC_PIC16F916) || \
+ defined(__SDCC_PIC16F917) || \
+ defined(__SDCC_PIC16F946)
+#define __SDCC_SSP_STYLE 1609133
+
+#elif defined(__SDCC_PIC16C925) || \
+ defined(__SDCC_PIC16C926)
+#define __SDCC_SSP_STYLE 1609253
+
+#elif defined(__SDCC_PIC16F1454) || \
+ defined(__SDCC_PIC16F1455)
+#define __SDCC_SSP_STYLE 1614543
+
+#elif defined(__SDCC_PIC16F1459)
+#define __SDCC_SSP_STYLE 1614593
+
+#elif defined(__SDCC_PIC16F1503)
+#define __SDCC_SSP_STYLE 1615033
+
+#elif defined(__SDCC_PIC16F1508) || \
+ defined(__SDCC_PIC16F1509)
+#define __SDCC_SSP_STYLE 1615083
+
+#elif defined(__SDCC_PIC16F1512) || \
+ defined(__SDCC_PIC16F1513) || \
+ defined(__SDCC_PIC16F1516) || \
+ defined(__SDCC_PIC16F1517) || \
+ defined(__SDCC_PIC16F1518) || \
+ defined(__SDCC_PIC16F1519)
+#define __SDCC_SSP_STYLE 1615123
+
+#elif defined(__SDCC_PIC16F1526) || \
+ defined(__SDCC_PIC16F1527)
+#define __SDCC_SSP_STYLE 1615263
+
+#elif defined(__SDCC_PIC16F1703)
+#define __SDCC_SSP_STYLE 1617033
+
+#elif defined(__SDCC_PIC16F1704) || \
+ defined(__SDCC_PIC16F1705)
+#define __SDCC_SSP_STYLE 1617043
+
+#elif defined(__SDCC_PIC16F1707)
+#define __SDCC_SSP_STYLE 1617073
+
+#elif defined(__SDCC_PIC16F1708)
+#define __SDCC_SSP_STYLE 1617083
+
+#elif defined(__SDCC_PIC16F1709)
+#define __SDCC_SSP_STYLE 1617093
+
+#elif defined(__SDCC_PIC16F1713) || \
+ defined(__SDCC_PIC16F1716) || \
+ defined(__SDCC_PIC16F1718)
+#define __SDCC_SSP_STYLE 1617133
+
+#elif defined(__SDCC_PIC16F1717) || \
+ defined(__SDCC_PIC16F1719)
+#define __SDCC_SSP_STYLE 1617173
+
+#elif defined(__SDCC_PIC16F1782) || \
+ defined(__SDCC_PIC16F1783) || \
+ defined(__SDCC_PIC16F1784) || \
+ defined(__SDCC_PIC16F1786) || \
+ defined(__SDCC_PIC16F1787)
+#define __SDCC_SSP_STYLE 1617823
+
+#elif defined(__SDCC_PIC16F1788)
+#define __SDCC_SSP_STYLE 1617883
+
+#elif defined(__SDCC_PIC16F1789)
+#define __SDCC_SSP_STYLE 1617893
+
+#elif defined(__SDCC_PIC16F1823) || \
+ defined(__SDCC_PIC16F1824) || \
+ defined(__SDCC_PIC16F1825)
+#define __SDCC_SSP_STYLE 1618233
+
+#elif defined(__SDCC_PIC16F1826)
+#define __SDCC_SSP_STYLE 1618263
+
+#elif defined(__SDCC_PIC16F1827) || \
+ defined(__SDCC_PIC16F1847)
+#define __SDCC_SSP_STYLE 1618273
+
+#elif defined(__SDCC_PIC16F1828)
+#define __SDCC_SSP_STYLE 1618283
+
+#elif defined(__SDCC_PIC16F1829)
+#define __SDCC_SSP_STYLE 1618293
+
+#elif defined(__SDCC_PIC16F1933) || \
+ defined(__SDCC_PIC16F1934) || \
+ defined(__SDCC_PIC16F1936) || \
+ defined(__SDCC_PIC16F1937) || \
+ defined(__SDCC_PIC16F1938) || \
+ defined(__SDCC_PIC16F1939)
+#define __SDCC_SSP_STYLE 1619333
+
+#elif defined(__SDCC_PIC16F1946) || \
+ defined(__SDCC_PIC16F1947)
+#define __SDCC_SSP_STYLE 1619463
+
+#else
+#warning No SSP style associated with the target device.
+#warning Please update your pic14/pic16fam.h manually and/or inform the maintainer.
+#endif
+
+/*
+ * Define USART style per device family.
+ */
+#undef __SDCC_USART_STYLE
+
+#if defined(__SDCC_PIC10F320) || \
+ defined(__SDCC_PIC10F322) || \
+ defined(__SDCC_PIC12F609) || \
+ defined(__SDCC_PIC12F615) || \
+ defined(__SDCC_PIC12F617) || \
+ defined(__SDCC_PIC12F629) || \
+ defined(__SDCC_PIC12F635) || \
+ defined(__SDCC_PIC12F675) || \
+ defined(__SDCC_PIC12F683) || \
+ defined(__SDCC_PIC12F752) || \
+ defined(__SDCC_PIC12F1501) || \
+ defined(__SDCC_PIC12F1571) || \
+ defined(__SDCC_PIC12F1612) || \
+ defined(__SDCC_PIC12LF1552) || \
+ defined(__SDCC_PIC16C62) || \
+ defined(__SDCC_PIC16C71) || \
+ defined(__SDCC_PIC16C72) || \
+ defined(__SDCC_PIC16C432) || \
+ defined(__SDCC_PIC16C433) || \
+ defined(__SDCC_PIC16C554) || \
+ defined(__SDCC_PIC16C557) || \
+ defined(__SDCC_PIC16C558) || \
+ defined(__SDCC_PIC16C620) || \
+ defined(__SDCC_PIC16C620A) || \
+ defined(__SDCC_PIC16C621) || \
+ defined(__SDCC_PIC16C621A) || \
+ defined(__SDCC_PIC16C622) || \
+ defined(__SDCC_PIC16C622A) || \
+ defined(__SDCC_PIC16C710) || \
+ defined(__SDCC_PIC16C711) || \
+ defined(__SDCC_PIC16C715) || \
+ defined(__SDCC_PIC16C717) || \
+ defined(__SDCC_PIC16C770) || \
+ defined(__SDCC_PIC16C771) || \
+ defined(__SDCC_PIC16C781) || \
+ defined(__SDCC_PIC16C782) || \
+ defined(__SDCC_PIC16C925) || \
+ defined(__SDCC_PIC16C926) || \
+ defined(__SDCC_PIC16CR73) || \
+ defined(__SDCC_PIC16CR74) || \
+ defined(__SDCC_PIC16CR76) || \
+ defined(__SDCC_PIC16CR77) || \
+ defined(__SDCC_PIC16CR620A) || \
+ defined(__SDCC_PIC16F72) || \
+ defined(__SDCC_PIC16F84) || \
+ defined(__SDCC_PIC16F84A) || \
+ defined(__SDCC_PIC16F610) || \
+ defined(__SDCC_PIC16F616) || \
+ defined(__SDCC_PIC16F630) || \
+ defined(__SDCC_PIC16F631) || \
+ defined(__SDCC_PIC16F636) || \
+ defined(__SDCC_PIC16F639) || \
+ defined(__SDCC_PIC16F648) || \
+ defined(__SDCC_PIC16F676) || \
+ defined(__SDCC_PIC16F677) || \
+ defined(__SDCC_PIC16F684) || \
+ defined(__SDCC_PIC16F685) || \
+ defined(__SDCC_PIC16F716) || \
+ defined(__SDCC_PIC16F753) || \
+ defined(__SDCC_PIC16F785) || \
+ defined(__SDCC_PIC16F818) || \
+ defined(__SDCC_PIC16F819) || \
+ defined(__SDCC_PIC16F872) || \
+ defined(__SDCC_PIC16F1458) || \
+ defined(__SDCC_PIC16F1503) || \
+ defined(__SDCC_PIC16F1507) || \
+ defined(__SDCC_PIC16F1613) || \
+ defined(__SDCC_PIC16F1703) || \
+ defined(__SDCC_PIC16HV610) || \
+ defined(__SDCC_PIC16HV616) || \
+ defined(__SDCC_PIC16HV753) || \
+ defined(__SDCC_PIC16HV785) || \
+ defined(__SDCC_PIC16LF1902) || \
+ defined(__SDCC_PIC16LF1903)
+#define __SDCC_USART_STYLE 0
+
+#elif defined(__SDCC_PIC12F1572)
+#define __SDCC_USART_STYLE 1215724
+
+#elif defined(__SDCC_PIC12F1822) || \
+ defined(__SDCC_PIC12F1840)
+#define __SDCC_USART_STYLE 1218224
+
+#elif defined(__SDCC_PIC16C63A) || \
+ defined(__SDCC_PIC16C65B) || \
+ defined(__SDCC_PIC16C73B) || \
+ defined(__SDCC_PIC16C74B) || \
+ defined(__SDCC_PIC16C745) || \
+ defined(__SDCC_PIC16C765) || \
+ defined(__SDCC_PIC16F73) || \
+ defined(__SDCC_PIC16F74) || \
+ defined(__SDCC_PIC16F76) || \
+ defined(__SDCC_PIC16F77)
+#define __SDCC_USART_STYLE 1600634
+
+#elif defined(__SDCC_PIC16F87) || \
+ defined(__SDCC_PIC16F88)
+#define __SDCC_USART_STYLE 1600874
+
+#elif defined(__SDCC_PIC16F627) || \
+ defined(__SDCC_PIC16F627A) || \
+ defined(__SDCC_PIC16F628) || \
+ defined(__SDCC_PIC16F628A) || \
+ defined(__SDCC_PIC16F648A)
+#define __SDCC_USART_STYLE 1606274
+
+#elif defined(__SDCC_PIC16F687) || \
+ defined(__SDCC_PIC16F689) || \
+ defined(__SDCC_PIC16F690)
+#define __SDCC_USART_STYLE 1606874
+
+#elif defined(__SDCC_PIC16F688)
+#define __SDCC_USART_STYLE 1606884
+
+#elif defined(__SDCC_PIC16F707)
+#define __SDCC_USART_STYLE 1607074
+
+#elif defined(__SDCC_PIC16F720) || \
+ defined(__SDCC_PIC16F721)
+#define __SDCC_USART_STYLE 1607204
+
+#elif defined(__SDCC_PIC16C773) || \
+ defined(__SDCC_PIC16C774) || \
+ defined(__SDCC_PIC16F722) || \
+ defined(__SDCC_PIC16F722A) || \
+ defined(__SDCC_PIC16F723) || \
+ defined(__SDCC_PIC16F723A) || \
+ defined(__SDCC_PIC16F724) || \
+ defined(__SDCC_PIC16F726) || \
+ defined(__SDCC_PIC16F727) || \
+ defined(__SDCC_PIC16F737) || \
+ defined(__SDCC_PIC16F747) || \
+ defined(__SDCC_PIC16F767) || \
+ defined(__SDCC_PIC16F777) || \
+ defined(__SDCC_PIC16F870) || \
+ defined(__SDCC_PIC16F871) || \
+ defined(__SDCC_PIC16F873) || \
+ defined(__SDCC_PIC16F873A) || \
+ defined(__SDCC_PIC16F874) || \
+ defined(__SDCC_PIC16F874A) || \
+ defined(__SDCC_PIC16F876) || \
+ defined(__SDCC_PIC16F876A) || \
+ defined(__SDCC_PIC16F877) || \
+ defined(__SDCC_PIC16F877A) || \
+ defined(__SDCC_PIC16F913) || \
+ defined(__SDCC_PIC16F914) || \
+ defined(__SDCC_PIC16F916) || \
+ defined(__SDCC_PIC16F917) || \
+ defined(__SDCC_PIC16F946)
+#define __SDCC_USART_STYLE 1607734
+
+#elif defined(__SDCC_PIC16F882) || \
+ defined(__SDCC_PIC16F883) || \
+ defined(__SDCC_PIC16F884) || \
+ defined(__SDCC_PIC16F886) || \
+ defined(__SDCC_PIC16F887)
+#define __SDCC_USART_STYLE 1608824
+
+#elif defined(__SDCC_PIC16F1454) || \
+ defined(__SDCC_PIC16F1455)
+#define __SDCC_USART_STYLE 1614544
+
+#elif defined(__SDCC_PIC16F1459)
+#define __SDCC_USART_STYLE 1614594
+
+#elif defined(__SDCC_PIC16F1508) || \
+ defined(__SDCC_PIC16F1509)
+#define __SDCC_USART_STYLE 1615084
+
+#elif defined(__SDCC_PIC16F1512) || \
+ defined(__SDCC_PIC16F1513) || \
+ defined(__SDCC_PIC16F1516) || \
+ defined(__SDCC_PIC16F1517) || \
+ defined(__SDCC_PIC16F1518) || \
+ defined(__SDCC_PIC16F1519)
+#define __SDCC_USART_STYLE 1615124
+
+#elif defined(__SDCC_PIC16F1526) || \
+ defined(__SDCC_PIC16F1527)
+#define __SDCC_USART_STYLE 1615264
+
+#elif defined(__SDCC_PIC16F1704) || \
+ defined(__SDCC_PIC16F1705)
+#define __SDCC_USART_STYLE 1617044
+
+#elif defined(__SDCC_PIC16F1707)
+#define __SDCC_USART_STYLE 1617074
+
+#elif defined(__SDCC_PIC16F1708)
+#define __SDCC_USART_STYLE 1617084
+
+#elif defined(__SDCC_PIC16F1709)
+#define __SDCC_USART_STYLE 1617094
+
+#elif defined(__SDCC_PIC16F1713) || \
+ defined(__SDCC_PIC16F1716) || \
+ defined(__SDCC_PIC16F1718)
+#define __SDCC_USART_STYLE 1617134
+
+#elif defined(__SDCC_PIC16F1717) || \
+ defined(__SDCC_PIC16F1719)
+#define __SDCC_USART_STYLE 1617174
+
+#elif defined(__SDCC_PIC16F1782) || \
+ defined(__SDCC_PIC16F1783) || \
+ defined(__SDCC_PIC16F1784) || \
+ defined(__SDCC_PIC16F1786) || \
+ defined(__SDCC_PIC16F1787)
+#define __SDCC_USART_STYLE 1617824
+
+#elif defined(__SDCC_PIC16F1788)
+#define __SDCC_USART_STYLE 1617884
+
+#elif defined(__SDCC_PIC16F1789)
+#define __SDCC_USART_STYLE 1617894
+
+#elif defined(__SDCC_PIC16F1823) || \
+ defined(__SDCC_PIC16F1824) || \
+ defined(__SDCC_PIC16F1825)
+#define __SDCC_USART_STYLE 1618234
+
+#elif defined(__SDCC_PIC16F1826) || \
+ defined(__SDCC_PIC16F1827) || \
+ defined(__SDCC_PIC16F1847)
+#define __SDCC_USART_STYLE 1618264
+
+#elif defined(__SDCC_PIC16F1828) || \
+ defined(__SDCC_PIC16F1829)
+#define __SDCC_USART_STYLE 1618284
+
+#elif defined(__SDCC_PIC16F1933) || \
+ defined(__SDCC_PIC16F1934) || \
+ defined(__SDCC_PIC16F1936) || \
+ defined(__SDCC_PIC16F1937) || \
+ defined(__SDCC_PIC16F1938) || \
+ defined(__SDCC_PIC16F1939) || \
+ defined(__SDCC_PIC16LF1904) || \
+ defined(__SDCC_PIC16LF1906) || \
+ defined(__SDCC_PIC16LF1907)
+#define __SDCC_USART_STYLE 1619334
+
+#elif defined(__SDCC_PIC16F1946) || \
+ defined(__SDCC_PIC16F1947)
+#define __SDCC_USART_STYLE 1619464
+
+#else
+#warning No USART style associated with the target device.
+#warning Please update your pic14/pic16fam.h manually and/or inform the maintainer.
+#endif
+
+#endif /* !__SDCC_PIC16FAM_H__ */
diff --git a/device/include/pic14/pic16regs.h b/device/include/pic14/pic16regs.h
new file mode 100644
index 0000000..9d5cda8
--- /dev/null
+++ b/device/include/pic14/pic16regs.h
@@ -0,0 +1,1030 @@
+/*
+ *
+ * This file is generated automatically by the device-manager.pl program.
+ *
+ * Copyright (C) 2012-2016, Molnar Karoly <molnarkaroly@users.sf.net>
+ *
+ */
+
+#ifndef __PIC16REGS_H__
+#define __PIC16REGS_H__
+
+#if defined(__SDCC_PIC10F320)
+ #include <pic10f320.h>
+
+#elif defined(__SDCC_PIC10F322)
+ #include <pic10f322.h>
+
+#elif defined(__SDCC_PIC10LF320)
+ #include <pic10lf320.h>
+
+#elif defined(__SDCC_PIC10LF322)
+ #include <pic10lf322.h>
+
+#elif defined(__SDCC_PIC12F609)
+ #include <pic12f609.h>
+
+#elif defined(__SDCC_PIC12F615)
+ #include <pic12f615.h>
+
+#elif defined(__SDCC_PIC12F617)
+ #include <pic12f617.h>
+
+#elif defined(__SDCC_PIC12F629)
+ #include <pic12f629.h>
+
+#elif defined(__SDCC_PIC12F635)
+ #include <pic12f635.h>
+
+#elif defined(__SDCC_PIC12F675)
+ #include <pic12f675.h>
+
+#elif defined(__SDCC_PIC12F683)
+ #include <pic12f683.h>
+
+#elif defined(__SDCC_PIC12F752)
+ #include <pic12f752.h>
+
+#elif defined(__SDCC_PIC12F1501)
+ #include <pic12f1501.h>
+
+#elif defined(__SDCC_PIC12F1571)
+ #include <pic12f1571.h>
+
+#elif defined(__SDCC_PIC12F1572)
+ #include <pic12f1572.h>
+
+#elif defined(__SDCC_PIC12F1612)
+ #include <pic12f1612.h>
+
+#elif defined(__SDCC_PIC12F1822)
+ #include <pic12f1822.h>
+
+#elif defined(__SDCC_PIC12F1840)
+ #include <pic12f1840.h>
+
+#elif defined(__SDCC_PIC12HV752)
+ #include <pic12hv752.h>
+
+#elif defined(__SDCC_PIC12LF1501)
+ #include <pic12lf1501.h>
+
+#elif defined(__SDCC_PIC12LF1552)
+ #include <pic12lf1552.h>
+
+#elif defined(__SDCC_PIC12LF1571)
+ #include <pic12lf1571.h>
+
+#elif defined(__SDCC_PIC12LF1572)
+ #include <pic12lf1572.h>
+
+#elif defined(__SDCC_PIC12LF1612)
+ #include <pic12lf1612.h>
+
+#elif defined(__SDCC_PIC12LF1822)
+ #include <pic12lf1822.h>
+
+#elif defined(__SDCC_PIC12LF1840)
+ #include <pic12lf1840.h>
+
+#elif defined(__SDCC_PIC12LF1840T39A)
+ #include <pic12lf1840t39a.h>
+
+#elif defined(__SDCC_PIC12LF1840T48A)
+ #include <pic12lf1840t48a.h>
+
+#elif defined(__SDCC_PIC16C62)
+ #include <pic16c62.h>
+
+#elif defined(__SDCC_PIC16C63A)
+ #include <pic16c63a.h>
+
+#elif defined(__SDCC_PIC16C65B)
+ #include <pic16c65b.h>
+
+#elif defined(__SDCC_PIC16C71)
+ #include <pic16c71.h>
+
+#elif defined(__SDCC_PIC16C72)
+ #include <pic16c72.h>
+
+#elif defined(__SDCC_PIC16C73B)
+ #include <pic16c73b.h>
+
+#elif defined(__SDCC_PIC16C74B)
+ #include <pic16c74b.h>
+
+#elif defined(__SDCC_PIC16C432)
+ #include <pic16c432.h>
+
+#elif defined(__SDCC_PIC16C433)
+ #include <pic16c433.h>
+
+#elif defined(__SDCC_PIC16C554)
+ #include <pic16c554.h>
+
+#elif defined(__SDCC_PIC16C557)
+ #include <pic16c557.h>
+
+#elif defined(__SDCC_PIC16C558)
+ #include <pic16c558.h>
+
+#elif defined(__SDCC_PIC16C620)
+ #include <pic16c620.h>
+
+#elif defined(__SDCC_PIC16C620A)
+ #include <pic16c620a.h>
+
+#elif defined(__SDCC_PIC16C621)
+ #include <pic16c621.h>
+
+#elif defined(__SDCC_PIC16C621A)
+ #include <pic16c621a.h>
+
+#elif defined(__SDCC_PIC16C622)
+ #include <pic16c622.h>
+
+#elif defined(__SDCC_PIC16C622A)
+ #include <pic16c622a.h>
+
+#elif defined(__SDCC_PIC16C710)
+ #include <pic16c710.h>
+
+#elif defined(__SDCC_PIC16C711)
+ #include <pic16c711.h>
+
+#elif defined(__SDCC_PIC16C715)
+ #include <pic16c715.h>
+
+#elif defined(__SDCC_PIC16C717)
+ #include <pic16c717.h>
+
+#elif defined(__SDCC_PIC16C745)
+ #include <pic16c745.h>
+
+#elif defined(__SDCC_PIC16C765)
+ #include <pic16c765.h>
+
+#elif defined(__SDCC_PIC16C770)
+ #include <pic16c770.h>
+
+#elif defined(__SDCC_PIC16C771)
+ #include <pic16c771.h>
+
+#elif defined(__SDCC_PIC16C773)
+ #include <pic16c773.h>
+
+#elif defined(__SDCC_PIC16C774)
+ #include <pic16c774.h>
+
+#elif defined(__SDCC_PIC16C781)
+ #include <pic16c781.h>
+
+#elif defined(__SDCC_PIC16C782)
+ #include <pic16c782.h>
+
+#elif defined(__SDCC_PIC16C925)
+ #include <pic16c925.h>
+
+#elif defined(__SDCC_PIC16C926)
+ #include <pic16c926.h>
+
+#elif defined(__SDCC_PIC16F72)
+ #include <pic16f72.h>
+
+#elif defined(__SDCC_PIC16F73)
+ #include <pic16f73.h>
+
+#elif defined(__SDCC_PIC16F74)
+ #include <pic16f74.h>
+
+#elif defined(__SDCC_PIC16F76)
+ #include <pic16f76.h>
+
+#elif defined(__SDCC_PIC16F77)
+ #include <pic16f77.h>
+
+#elif defined(__SDCC_PIC16F84)
+ #include <pic16f84.h>
+
+#elif defined(__SDCC_PIC16F84A)
+ #include <pic16f84a.h>
+
+#elif defined(__SDCC_PIC16F87)
+ #include <pic16f87.h>
+
+#elif defined(__SDCC_PIC16F88)
+ #include <pic16f88.h>
+
+#elif defined(__SDCC_PIC16F610)
+ #include <pic16f610.h>
+
+#elif defined(__SDCC_PIC16F616)
+ #include <pic16f616.h>
+
+#elif defined(__SDCC_PIC16F627)
+ #include <pic16f627.h>
+
+#elif defined(__SDCC_PIC16F627A)
+ #include <pic16f627a.h>
+
+#elif defined(__SDCC_PIC16F628)
+ #include <pic16f628.h>
+
+#elif defined(__SDCC_PIC16F628A)
+ #include <pic16f628a.h>
+
+#elif defined(__SDCC_PIC16F630)
+ #include <pic16f630.h>
+
+#elif defined(__SDCC_PIC16F631)
+ #include <pic16f631.h>
+
+#elif defined(__SDCC_PIC16F636)
+ #include <pic16f636.h>
+
+#elif defined(__SDCC_PIC16F639)
+ #include <pic16f639.h>
+
+#elif defined(__SDCC_PIC16F648A)
+ #include <pic16f648a.h>
+
+#elif defined(__SDCC_PIC16F676)
+ #include <pic16f676.h>
+
+#elif defined(__SDCC_PIC16F677)
+ #include <pic16f677.h>
+
+#elif defined(__SDCC_PIC16F684)
+ #include <pic16f684.h>
+
+#elif defined(__SDCC_PIC16F685)
+ #include <pic16f685.h>
+
+#elif defined(__SDCC_PIC16F687)
+ #include <pic16f687.h>
+
+#elif defined(__SDCC_PIC16F688)
+ #include <pic16f688.h>
+
+#elif defined(__SDCC_PIC16F689)
+ #include <pic16f689.h>
+
+#elif defined(__SDCC_PIC16F690)
+ #include <pic16f690.h>
+
+#elif defined(__SDCC_PIC16F707)
+ #include <pic16f707.h>
+
+#elif defined(__SDCC_PIC16F716)
+ #include <pic16f716.h>
+
+#elif defined(__SDCC_PIC16F720)
+ #include <pic16f720.h>
+
+#elif defined(__SDCC_PIC16F721)
+ #include <pic16f721.h>
+
+#elif defined(__SDCC_PIC16F722)
+ #include <pic16f722.h>
+
+#elif defined(__SDCC_PIC16F722A)
+ #include <pic16f722a.h>
+
+#elif defined(__SDCC_PIC16F723)
+ #include <pic16f723.h>
+
+#elif defined(__SDCC_PIC16F723A)
+ #include <pic16f723a.h>
+
+#elif defined(__SDCC_PIC16F724)
+ #include <pic16f724.h>
+
+#elif defined(__SDCC_PIC16F726)
+ #include <pic16f726.h>
+
+#elif defined(__SDCC_PIC16F727)
+ #include <pic16f727.h>
+
+#elif defined(__SDCC_PIC16F737)
+ #include <pic16f737.h>
+
+#elif defined(__SDCC_PIC16F747)
+ #include <pic16f747.h>
+
+#elif defined(__SDCC_PIC16F753)
+ #include <pic16f753.h>
+
+#elif defined(__SDCC_PIC16F767)
+ #include <pic16f767.h>
+
+#elif defined(__SDCC_PIC16F777)
+ #include <pic16f777.h>
+
+#elif defined(__SDCC_PIC16F785)
+ #include <pic16f785.h>
+
+#elif defined(__SDCC_PIC16F818)
+ #include <pic16f818.h>
+
+#elif defined(__SDCC_PIC16F819)
+ #include <pic16f819.h>
+
+#elif defined(__SDCC_PIC16F870)
+ #include <pic16f870.h>
+
+#elif defined(__SDCC_PIC16F871)
+ #include <pic16f871.h>
+
+#elif defined(__SDCC_PIC16F872)
+ #include <pic16f872.h>
+
+#elif defined(__SDCC_PIC16F873)
+ #include <pic16f873.h>
+
+#elif defined(__SDCC_PIC16F873A)
+ #include <pic16f873a.h>
+
+#elif defined(__SDCC_PIC16F874)
+ #include <pic16f874.h>
+
+#elif defined(__SDCC_PIC16F874A)
+ #include <pic16f874a.h>
+
+#elif defined(__SDCC_PIC16F876)
+ #include <pic16f876.h>
+
+#elif defined(__SDCC_PIC16F876A)
+ #include <pic16f876a.h>
+
+#elif defined(__SDCC_PIC16F877)
+ #include <pic16f877.h>
+
+#elif defined(__SDCC_PIC16F877A)
+ #include <pic16f877a.h>
+
+#elif defined(__SDCC_PIC16F882)
+ #include <pic16f882.h>
+
+#elif defined(__SDCC_PIC16F883)
+ #include <pic16f883.h>
+
+#elif defined(__SDCC_PIC16F884)
+ #include <pic16f884.h>
+
+#elif defined(__SDCC_PIC16F886)
+ #include <pic16f886.h>
+
+#elif defined(__SDCC_PIC16F887)
+ #include <pic16f887.h>
+
+#elif defined(__SDCC_PIC16F913)
+ #include <pic16f913.h>
+
+#elif defined(__SDCC_PIC16F914)
+ #include <pic16f914.h>
+
+#elif defined(__SDCC_PIC16F916)
+ #include <pic16f916.h>
+
+#elif defined(__SDCC_PIC16F917)
+ #include <pic16f917.h>
+
+#elif defined(__SDCC_PIC16F946)
+ #include <pic16f946.h>
+
+#elif defined(__SDCC_PIC16F1454)
+ #include <pic16f1454.h>
+
+#elif defined(__SDCC_PIC16F1455)
+ #include <pic16f1455.h>
+
+#elif defined(__SDCC_PIC16F1458)
+ #include <pic16f1458.h>
+
+#elif defined(__SDCC_PIC16F1459)
+ #include <pic16f1459.h>
+
+#elif defined(__SDCC_PIC16F1503)
+ #include <pic16f1503.h>
+
+#elif defined(__SDCC_PIC16F1507)
+ #include <pic16f1507.h>
+
+#elif defined(__SDCC_PIC16F1508)
+ #include <pic16f1508.h>
+
+#elif defined(__SDCC_PIC16F1509)
+ #include <pic16f1509.h>
+
+#elif defined(__SDCC_PIC16F1512)
+ #include <pic16f1512.h>
+
+#elif defined(__SDCC_PIC16F1513)
+ #include <pic16f1513.h>
+
+#elif defined(__SDCC_PIC16F1516)
+ #include <pic16f1516.h>
+
+#elif defined(__SDCC_PIC16F1517)
+ #include <pic16f1517.h>
+
+#elif defined(__SDCC_PIC16F1518)
+ #include <pic16f1518.h>
+
+#elif defined(__SDCC_PIC16F1519)
+ #include <pic16f1519.h>
+
+#elif defined(__SDCC_PIC16F1526)
+ #include <pic16f1526.h>
+
+#elif defined(__SDCC_PIC16F1527)
+ #include <pic16f1527.h>
+
+#elif defined(__SDCC_PIC16F1574)
+ #include <pic16f1574.h>
+
+#elif defined(__SDCC_PIC16F1575)
+ #include <pic16f1575.h>
+
+#elif defined(__SDCC_PIC16F1578)
+ #include <pic16f1578.h>
+
+#elif defined(__SDCC_PIC16F1579)
+ #include <pic16f1579.h>
+
+#elif defined(__SDCC_PIC16F1613)
+ #include <pic16f1613.h>
+
+#elif defined(__SDCC_PIC16F1614)
+ #include <pic16f1614.h>
+
+#elif defined(__SDCC_PIC16F1615)
+ #include <pic16f1615.h>
+
+#elif defined(__SDCC_PIC16F1618)
+ #include <pic16f1618.h>
+
+#elif defined(__SDCC_PIC16F1619)
+ #include <pic16f1619.h>
+
+#elif defined(__SDCC_PIC16F1703)
+ #include <pic16f1703.h>
+
+#elif defined(__SDCC_PIC16F1704)
+ #include <pic16f1704.h>
+
+#elif defined(__SDCC_PIC16F1705)
+ #include <pic16f1705.h>
+
+#elif defined(__SDCC_PIC16F1707)
+ #include <pic16f1707.h>
+
+#elif defined(__SDCC_PIC16F1708)
+ #include <pic16f1708.h>
+
+#elif defined(__SDCC_PIC16F1709)
+ #include <pic16f1709.h>
+
+#elif defined(__SDCC_PIC16F1713)
+ #include <pic16f1713.h>
+
+#elif defined(__SDCC_PIC16F1716)
+ #include <pic16f1716.h>
+
+#elif defined(__SDCC_PIC16F1717)
+ #include <pic16f1717.h>
+
+#elif defined(__SDCC_PIC16F1718)
+ #include <pic16f1718.h>
+
+#elif defined(__SDCC_PIC16F1719)
+ #include <pic16f1719.h>
+
+#elif defined(__SDCC_PIC16F1764)
+ #include <pic16f1764.h>
+
+#elif defined(__SDCC_PIC16F1765)
+ #include <pic16f1765.h>
+
+#elif defined(__SDCC_PIC16F1768)
+ #include <pic16f1768.h>
+
+#elif defined(__SDCC_PIC16F1769)
+ #include <pic16f1769.h>
+
+#elif defined(__SDCC_PIC16F1773)
+ #include <pic16f1773.h>
+
+#elif defined(__SDCC_PIC16F1776)
+ #include <pic16f1776.h>
+
+#elif defined(__SDCC_PIC16F1777)
+ #include <pic16f1777.h>
+
+#elif defined(__SDCC_PIC16F1778)
+ #include <pic16f1778.h>
+
+#elif defined(__SDCC_PIC16F1779)
+ #include <pic16f1779.h>
+
+#elif defined(__SDCC_PIC16F1782)
+ #include <pic16f1782.h>
+
+#elif defined(__SDCC_PIC16F1783)
+ #include <pic16f1783.h>
+
+#elif defined(__SDCC_PIC16F1784)
+ #include <pic16f1784.h>
+
+#elif defined(__SDCC_PIC16F1786)
+ #include <pic16f1786.h>
+
+#elif defined(__SDCC_PIC16F1787)
+ #include <pic16f1787.h>
+
+#elif defined(__SDCC_PIC16F1788)
+ #include <pic16f1788.h>
+
+#elif defined(__SDCC_PIC16F1789)
+ #include <pic16f1789.h>
+
+#elif defined(__SDCC_PIC16F1823)
+ #include <pic16f1823.h>
+
+#elif defined(__SDCC_PIC16F1824)
+ #include <pic16f1824.h>
+
+#elif defined(__SDCC_PIC16F1825)
+ #include <pic16f1825.h>
+
+#elif defined(__SDCC_PIC16F1826)
+ #include <pic16f1826.h>
+
+#elif defined(__SDCC_PIC16F1827)
+ #include <pic16f1827.h>
+
+#elif defined(__SDCC_PIC16F1828)
+ #include <pic16f1828.h>
+
+#elif defined(__SDCC_PIC16F1829)
+ #include <pic16f1829.h>
+
+#elif defined(__SDCC_PIC16F1829LIN)
+ #include <pic16f1829lin.h>
+
+#elif defined(__SDCC_PIC16F1847)
+ #include <pic16f1847.h>
+
+#elif defined(__SDCC_PIC16F1933)
+ #include <pic16f1933.h>
+
+#elif defined(__SDCC_PIC16F1934)
+ #include <pic16f1934.h>
+
+#elif defined(__SDCC_PIC16F1936)
+ #include <pic16f1936.h>
+
+#elif defined(__SDCC_PIC16F1937)
+ #include <pic16f1937.h>
+
+#elif defined(__SDCC_PIC16F1938)
+ #include <pic16f1938.h>
+
+#elif defined(__SDCC_PIC16F1939)
+ #include <pic16f1939.h>
+
+#elif defined(__SDCC_PIC16F1946)
+ #include <pic16f1946.h>
+
+#elif defined(__SDCC_PIC16F1947)
+ #include <pic16f1947.h>
+
+#elif defined(__SDCC_PIC16F18313)
+ #include <pic16f18313.h>
+
+#elif defined(__SDCC_PIC16F18323)
+ #include <pic16f18323.h>
+
+#elif defined(__SDCC_PIC16F18324)
+ #include <pic16f18324.h>
+
+#elif defined(__SDCC_PIC16F18325)
+ #include <pic16f18325.h>
+
+#elif defined(__SDCC_PIC16F18344)
+ #include <pic16f18344.h>
+
+#elif defined(__SDCC_PIC16F18345)
+ #include <pic16f18345.h>
+
+#elif defined(__SDCC_PIC16F18855)
+ #include <pic16f18855.h>
+
+#elif defined(__SDCC_PIC16F18875)
+ #include <pic16f18875.h>
+
+#elif defined(__SDCC_PIC16HV616)
+ #include <pic16hv616.h>
+
+#elif defined(__SDCC_PIC16HV753)
+ #include <pic16hv753.h>
+
+#elif defined(__SDCC_PIC16LF74)
+ #include <pic16lf74.h>
+
+#elif defined(__SDCC_PIC16LF76)
+ #include <pic16lf76.h>
+
+#elif defined(__SDCC_PIC16LF77)
+ #include <pic16lf77.h>
+
+#elif defined(__SDCC_PIC16LF84)
+ #include <pic16lf84.h>
+
+#elif defined(__SDCC_PIC16LF84A)
+ #include <pic16lf84a.h>
+
+#elif defined(__SDCC_PIC16LF87)
+ #include <pic16lf87.h>
+
+#elif defined(__SDCC_PIC16LF88)
+ #include <pic16lf88.h>
+
+#elif defined(__SDCC_PIC16LF627)
+ #include <pic16lf627.h>
+
+#elif defined(__SDCC_PIC16LF627A)
+ #include <pic16lf627a.h>
+
+#elif defined(__SDCC_PIC16LF628)
+ #include <pic16lf628.h>
+
+#elif defined(__SDCC_PIC16LF628A)
+ #include <pic16lf628a.h>
+
+#elif defined(__SDCC_PIC16LF648A)
+ #include <pic16lf648a.h>
+
+#elif defined(__SDCC_PIC16LF707)
+ #include <pic16lf707.h>
+
+#elif defined(__SDCC_PIC16LF720)
+ #include <pic16lf720.h>
+
+#elif defined(__SDCC_PIC16LF721)
+ #include <pic16lf721.h>
+
+#elif defined(__SDCC_PIC16LF722)
+ #include <pic16lf722.h>
+
+#elif defined(__SDCC_PIC16LF722A)
+ #include <pic16lf722a.h>
+
+#elif defined(__SDCC_PIC16LF723)
+ #include <pic16lf723.h>
+
+#elif defined(__SDCC_PIC16LF723A)
+ #include <pic16lf723a.h>
+
+#elif defined(__SDCC_PIC16LF724)
+ #include <pic16lf724.h>
+
+#elif defined(__SDCC_PIC16LF726)
+ #include <pic16lf726.h>
+
+#elif defined(__SDCC_PIC16LF727)
+ #include <pic16lf727.h>
+
+#elif defined(__SDCC_PIC16LF747)
+ #include <pic16lf747.h>
+
+#elif defined(__SDCC_PIC16LF767)
+ #include <pic16lf767.h>
+
+#elif defined(__SDCC_PIC16LF777)
+ #include <pic16lf777.h>
+
+#elif defined(__SDCC_PIC16LF818)
+ #include <pic16lf818.h>
+
+#elif defined(__SDCC_PIC16LF819)
+ #include <pic16lf819.h>
+
+#elif defined(__SDCC_PIC16LF870)
+ #include <pic16lf870.h>
+
+#elif defined(__SDCC_PIC16LF871)
+ #include <pic16lf871.h>
+
+#elif defined(__SDCC_PIC16LF872)
+ #include <pic16lf872.h>
+
+#elif defined(__SDCC_PIC16LF873)
+ #include <pic16lf873.h>
+
+#elif defined(__SDCC_PIC16LF873A)
+ #include <pic16lf873a.h>
+
+#elif defined(__SDCC_PIC16LF874)
+ #include <pic16lf874.h>
+
+#elif defined(__SDCC_PIC16LF874A)
+ #include <pic16lf874a.h>
+
+#elif defined(__SDCC_PIC16LF876)
+ #include <pic16lf876.h>
+
+#elif defined(__SDCC_PIC16LF876A)
+ #include <pic16lf876a.h>
+
+#elif defined(__SDCC_PIC16LF877)
+ #include <pic16lf877.h>
+
+#elif defined(__SDCC_PIC16LF877A)
+ #include <pic16lf877a.h>
+
+#elif defined(__SDCC_PIC16LF1454)
+ #include <pic16lf1454.h>
+
+#elif defined(__SDCC_PIC16LF1455)
+ #include <pic16lf1455.h>
+
+#elif defined(__SDCC_PIC16LF1458)
+ #include <pic16lf1458.h>
+
+#elif defined(__SDCC_PIC16LF1459)
+ #include <pic16lf1459.h>
+
+#elif defined(__SDCC_PIC16LF1503)
+ #include <pic16lf1503.h>
+
+#elif defined(__SDCC_PIC16LF1507)
+ #include <pic16lf1507.h>
+
+#elif defined(__SDCC_PIC16LF1508)
+ #include <pic16lf1508.h>
+
+#elif defined(__SDCC_PIC16LF1509)
+ #include <pic16lf1509.h>
+
+#elif defined(__SDCC_PIC16LF1512)
+ #include <pic16lf1512.h>
+
+#elif defined(__SDCC_PIC16LF1513)
+ #include <pic16lf1513.h>
+
+#elif defined(__SDCC_PIC16LF1516)
+ #include <pic16lf1516.h>
+
+#elif defined(__SDCC_PIC16LF1517)
+ #include <pic16lf1517.h>
+
+#elif defined(__SDCC_PIC16LF1518)
+ #include <pic16lf1518.h>
+
+#elif defined(__SDCC_PIC16LF1519)
+ #include <pic16lf1519.h>
+
+#elif defined(__SDCC_PIC16LF1526)
+ #include <pic16lf1526.h>
+
+#elif defined(__SDCC_PIC16LF1527)
+ #include <pic16lf1527.h>
+
+#elif defined(__SDCC_PIC16LF1554)
+ #include <pic16lf1554.h>
+
+#elif defined(__SDCC_PIC16LF1559)
+ #include <pic16lf1559.h>
+
+#elif defined(__SDCC_PIC16LF1566)
+ #include <pic16lf1566.h>
+
+#elif defined(__SDCC_PIC16LF1567)
+ #include <pic16lf1567.h>
+
+#elif defined(__SDCC_PIC16LF1574)
+ #include <pic16lf1574.h>
+
+#elif defined(__SDCC_PIC16LF1575)
+ #include <pic16lf1575.h>
+
+#elif defined(__SDCC_PIC16LF1578)
+ #include <pic16lf1578.h>
+
+#elif defined(__SDCC_PIC16LF1579)
+ #include <pic16lf1579.h>
+
+#elif defined(__SDCC_PIC16LF1613)
+ #include <pic16lf1613.h>
+
+#elif defined(__SDCC_PIC16LF1614)
+ #include <pic16lf1614.h>
+
+#elif defined(__SDCC_PIC16LF1615)
+ #include <pic16lf1615.h>
+
+#elif defined(__SDCC_PIC16LF1618)
+ #include <pic16lf1618.h>
+
+#elif defined(__SDCC_PIC16LF1619)
+ #include <pic16lf1619.h>
+
+#elif defined(__SDCC_PIC16LF1703)
+ #include <pic16lf1703.h>
+
+#elif defined(__SDCC_PIC16LF1704)
+ #include <pic16lf1704.h>
+
+#elif defined(__SDCC_PIC16LF1705)
+ #include <pic16lf1705.h>
+
+#elif defined(__SDCC_PIC16LF1707)
+ #include <pic16lf1707.h>
+
+#elif defined(__SDCC_PIC16LF1708)
+ #include <pic16lf1708.h>
+
+#elif defined(__SDCC_PIC16LF1709)
+ #include <pic16lf1709.h>
+
+#elif defined(__SDCC_PIC16LF1713)
+ #include <pic16lf1713.h>
+
+#elif defined(__SDCC_PIC16LF1716)
+ #include <pic16lf1716.h>
+
+#elif defined(__SDCC_PIC16LF1717)
+ #include <pic16lf1717.h>
+
+#elif defined(__SDCC_PIC16LF1718)
+ #include <pic16lf1718.h>
+
+#elif defined(__SDCC_PIC16LF1719)
+ #include <pic16lf1719.h>
+
+#elif defined(__SDCC_PIC16LF1764)
+ #include <pic16lf1764.h>
+
+#elif defined(__SDCC_PIC16LF1765)
+ #include <pic16lf1765.h>
+
+#elif defined(__SDCC_PIC16LF1768)
+ #include <pic16lf1768.h>
+
+#elif defined(__SDCC_PIC16LF1769)
+ #include <pic16lf1769.h>
+
+#elif defined(__SDCC_PIC16LF1773)
+ #include <pic16lf1773.h>
+
+#elif defined(__SDCC_PIC16LF1776)
+ #include <pic16lf1776.h>
+
+#elif defined(__SDCC_PIC16LF1777)
+ #include <pic16lf1777.h>
+
+#elif defined(__SDCC_PIC16LF1778)
+ #include <pic16lf1778.h>
+
+#elif defined(__SDCC_PIC16LF1779)
+ #include <pic16lf1779.h>
+
+#elif defined(__SDCC_PIC16LF1782)
+ #include <pic16lf1782.h>
+
+#elif defined(__SDCC_PIC16LF1783)
+ #include <pic16lf1783.h>
+
+#elif defined(__SDCC_PIC16LF1784)
+ #include <pic16lf1784.h>
+
+#elif defined(__SDCC_PIC16LF1786)
+ #include <pic16lf1786.h>
+
+#elif defined(__SDCC_PIC16LF1787)
+ #include <pic16lf1787.h>
+
+#elif defined(__SDCC_PIC16LF1788)
+ #include <pic16lf1788.h>
+
+#elif defined(__SDCC_PIC16LF1789)
+ #include <pic16lf1789.h>
+
+#elif defined(__SDCC_PIC16LF1823)
+ #include <pic16lf1823.h>
+
+#elif defined(__SDCC_PIC16LF1824)
+ #include <pic16lf1824.h>
+
+#elif defined(__SDCC_PIC16LF1824T39A)
+ #include <pic16lf1824t39a.h>
+
+#elif defined(__SDCC_PIC16LF1825)
+ #include <pic16lf1825.h>
+
+#elif defined(__SDCC_PIC16LF1826)
+ #include <pic16lf1826.h>
+
+#elif defined(__SDCC_PIC16LF1827)
+ #include <pic16lf1827.h>
+
+#elif defined(__SDCC_PIC16LF1828)
+ #include <pic16lf1828.h>
+
+#elif defined(__SDCC_PIC16LF1829)
+ #include <pic16lf1829.h>
+
+#elif defined(__SDCC_PIC16LF1847)
+ #include <pic16lf1847.h>
+
+#elif defined(__SDCC_PIC16LF1902)
+ #include <pic16lf1902.h>
+
+#elif defined(__SDCC_PIC16LF1903)
+ #include <pic16lf1903.h>
+
+#elif defined(__SDCC_PIC16LF1904)
+ #include <pic16lf1904.h>
+
+#elif defined(__SDCC_PIC16LF1906)
+ #include <pic16lf1906.h>
+
+#elif defined(__SDCC_PIC16LF1907)
+ #include <pic16lf1907.h>
+
+#elif defined(__SDCC_PIC16LF1933)
+ #include <pic16lf1933.h>
+
+#elif defined(__SDCC_PIC16LF1934)
+ #include <pic16lf1934.h>
+
+#elif defined(__SDCC_PIC16LF1936)
+ #include <pic16lf1936.h>
+
+#elif defined(__SDCC_PIC16LF1937)
+ #include <pic16lf1937.h>
+
+#elif defined(__SDCC_PIC16LF1938)
+ #include <pic16lf1938.h>
+
+#elif defined(__SDCC_PIC16LF1939)
+ #include <pic16lf1939.h>
+
+#elif defined(__SDCC_PIC16LF1946)
+ #include <pic16lf1946.h>
+
+#elif defined(__SDCC_PIC16LF1947)
+ #include <pic16lf1947.h>
+
+#elif defined(__SDCC_PIC16LF18313)
+ #include <pic16lf18313.h>
+
+#elif defined(__SDCC_PIC16LF18323)
+ #include <pic16lf18323.h>
+
+#elif defined(__SDCC_PIC16LF18324)
+ #include <pic16lf18324.h>
+
+#elif defined(__SDCC_PIC16LF18325)
+ #include <pic16lf18325.h>
+
+#elif defined(__SDCC_PIC16LF18344)
+ #include <pic16lf18344.h>
+
+#elif defined(__SDCC_PIC16LF18345)
+ #include <pic16lf18345.h>
+
+#elif defined(__SDCC_PIC16LF18855)
+ #include <pic16lf18855.h>
+
+#elif defined(__SDCC_PIC16LF18875)
+ #include <pic16lf18875.h>
+
+#else
+ #error The sdcc is not supported by this processor!
+#endif
+
+#ifndef __CONCAT2
+ #define __CONCAT2(a, b) a##b
+#endif
+
+#ifndef __CONCAT
+ #define __CONCAT(a, b) __CONCAT2(a, b)
+#endif
+
+#define __CONFIG(address, value) \
+ static const __code unsigned char __at(address) __CONCAT(_conf, __LINE__) = (value)
+
+#define Nop() __asm nop __endasm
+#define ClrWdt() __asm clrwdt __endasm
+#define Sleep() __asm sleep __endasm
+#define Reset() __asm reset __endasm
+
+ // To pointer manipulations. (From the sdcc/src/pic14/pcode.h file.)
+#define GPTR_TAG_MASK 0x80 // Generated by the device-manager.pl program.
+#define GPTR_TAG_DATA 0x00
+#define GPTR_TAG_CODE 0x80
+
+#endif // #ifndef __PIC16REGS_H__
diff --git a/device/include/pic14/sdcc-lib.h b/device/include/pic14/sdcc-lib.h
new file mode 100644
index 0000000..a58822d
--- /dev/null
+++ b/device/include/pic14/sdcc-lib.h
@@ -0,0 +1,35 @@
+/*-------------------------------------------------------------------------
+ sdcc-lib.h - SDCC Library Main Header
+
+ Copyright (C) 2004, Vangelis Rokas <vrokas AT otenet.gr>
+ Adopted for pic14 port library by Raphael Neider <rneider at web.de> (2006)
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+#ifndef __PIC14_SDCC_LIB_H
+#define __PIC14_SDCC_LIB_H 1
+
+#include <../asm/pic14/features.h>
+
+#endif /* __PIC14_SDCC_LIB_H */
diff --git a/device/include/pic14/setjmp.h b/device/include/pic14/setjmp.h
new file mode 100644
index 0000000..9629d07
--- /dev/null
+++ b/device/include/pic14/setjmp.h
@@ -0,0 +1,87 @@
+/*-------------------------------------------------------------------------
+ setjmp.h - header file for setjmp & longjmp ANSI routines
+
+ Copyright (C) 1999, Sandeep Dutta . sandeep.dutta@usa.net
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+#ifndef __SDCC_SETJMP_H
+#define __SDCC_SETJMP_H
+
+#if defined(__SDCC_pic14)
+#warning "setjmp.h : setjmp/longjmp not implemented in SDCC pic14 port"
+#endif
+
+#define SP_SIZE 1
+
+#ifdef __SDCC_STACK_AUTO
+#define BP_SIZE SP_SIZE
+#else
+#define BP_SIZE 0
+#endif
+
+#ifdef __SDCC_USE_XSTACK
+#define SPX_SIZE 1
+#else
+#define SPX_SIZE 0
+#endif
+
+#define BPX_SIZE SPX_SIZE
+
+#ifdef __SDCC_MODEL_HUGE
+#define RET_SIZE 3
+#else
+#define RET_SIZE 2
+#endif
+
+#if defined (__SDCC_z80) || defined (__SDCC_z180) || defined (__SDCC_r2k) || defined (__SDCC_r3ka) || defined (__SDCC_tlcs90) || defined (__SDCC_ez80_z80)
+typedef unsigned char jmp_buf[6]; /* 2 for the stack pointer, 2 for the return address, 2 for the frame pointer. */
+#elif defined (__SDCC_ds390) || defined (__SDCC_stm8) && defined (__SDCC_MODEL_LARGE)
+typedef unsigned char jmp_buf[5]; /* 2 for the stack pointer, 3 for the return address. */
+#elif defined (__SDCC_stm8) || defined (__SDCC_gbz80) || defined (__SDCC_hc08) || defined (__SDCC_s08)
+typedef unsigned char jmp_buf[4]; /* 2 for the stack pointer, 2 for the return address. */
+#elif defined (__SDCC_pdk13) || defined (__SDCC_pdk14) || defined (__SDCC_pdk15)
+typedef unsigned char jmp_buf[3]; /* 1 for the stack pointer, 2 for the return address. */
+#else
+typedef unsigned char jmp_buf[RET_SIZE + SP_SIZE + BP_SIZE + SPX_SIZE + BPX_SIZE];
+#endif
+
+int __setjmp (jmp_buf);
+
+/* C99 might require setjmp to be a macro. The standard seems self-contradicting on this issue. */
+/* However, it is clear that the standards allow setjmp to be a macro. */
+#define setjmp(jump_buf) __setjmp(jump_buf)
+
+#ifndef __SDCC_HIDE_LONGJMP
+_Noreturn void longjmp(jmp_buf, int);
+#endif
+
+#undef RET_SIZE
+#undef SP_SIZE
+#undef BP_SIZE
+#undef SPX_SIZE
+#undef BPX_SIZE
+
+#endif
+
diff --git a/device/include/pic14/stdarg.h b/device/include/pic14/stdarg.h
new file mode 100644
index 0000000..4923305
--- /dev/null
+++ b/device/include/pic14/stdarg.h
@@ -0,0 +1,80 @@
+/*-------------------------------------------------------------------------
+ stdarg.h - ANSI macros for variable parameter list
+
+ Copyright (C) 2000, Michael Hope
+ Copyright (C) 2011, Philipp Klaus Krause pkk@spth.de
+
+ Modifications for PIC14 by
+ Copyright (C) 2019 Gonzalo Pérez de Olaguer Córdoba <salo@gpoc.es>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+#ifndef __SDC51_STDARG_H
+#define __SDC51_STDARG_H 1
+
+#if defined(__SDCC_z80) || defined(__SDCC_z180) || defined(__SDCC_r2k) || defined(__SDCC_r3ka) || defined(__SDCC_tlcs90) || defined (__SDCC_ez80_z80) || defined(__SDCC_gbz80) || defined(__SDCC_hc08) || defined(__SDCC_s08) || defined(__SDCC_stm8)
+
+typedef unsigned char * va_list;
+#define va_start(marker, last) { marker = (va_list)&last + sizeof(last); }
+#define va_arg(marker, type) *((type *)((marker += sizeof(type)) - sizeof(type)))
+
+#elif defined(__SDCC_ds390) || defined(__SDCC_ds400) || defined(__SDCC_pdk13) || defined(__SDCC_pdk14) || defined(__SDCC_pdk15)
+
+typedef unsigned char * va_list;
+#define va_start(marker, first) { marker = (va_list)&first; }
+#define va_arg(marker, type) *((type *)(marker -= sizeof(type)))
+
+#elif defined(__SDCC_pic14)
+
+typedef unsigned char __data * va_list;
+
+#if 1
+#define va_start(marker, last) { (void)last ; marker = __va_args__; }
+#else
+/* this doesn't work if last is the left-most argument */
+#define va_start(marker, last) { marker = *(va_list __data *)((va_list)&last + sizeof(last)); }
+#endif
+
+/* FIXME: this is not optimized */
+#define va_arg(marker, type) *((type __data *)((marker += sizeof(type)) - sizeof(type)))
+
+#elif defined(__SDCC_USE_XSTACK)
+
+typedef unsigned char __pdata * va_list;
+#define va_start(marker, first) { marker = (va_list)&first; }
+#define va_arg(marker, type) *((type __pdata *)(marker -= sizeof(type)))
+
+#else
+
+typedef unsigned char __data * va_list;
+#define va_start(marker, first) { marker = (va_list)&first; }
+#define va_arg(marker, type) *((type __data * )(marker -= sizeof(type)))
+
+#endif
+
+#define va_copy(dest, src) { dest = src; }
+#define va_end(marker) { marker = (va_list) 0; };
+
+#endif
+
diff --git a/device/include/pic14/stdio.h b/device/include/pic14/stdio.h
new file mode 100644
index 0000000..e786bd6
--- /dev/null
+++ b/device/include/pic14/stdio.h
@@ -0,0 +1,142 @@
+/*-------------------------------------------------------------------------
+ stdio.h - ANSI functions forward declarations
+
+ Copyright (C) 1998, Sandeep Dutta . sandeep.dutta@usa.net
+ Ported to PIC16 port by Vangelis Rokas, 2004 <vrokas AT otenet.gr>
+
+ Modifications for PIC14 by
+ Copyright (C) 2019 Gonzalo Pérez de Olaguer Córdoba <salo@gpoc.es>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+#ifndef __STDIO_H
+#define __STDIO_H 1
+
+#include <stdarg.h>
+
+#include <sdcc-lib.h>
+
+#ifndef EOF
+# define EOF (-1)
+#endif
+
+#ifndef NULL
+ #define NULL (void *)0
+#endif
+
+#ifndef __SIZE_T_DEFINED
+#define __SIZE_T_DEFINED
+ typedef unsigned int size_t;
+#endif
+
+/* Bounds-checking interfaces from annex K of the C11 standard. */
+#if defined (__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__
+
+#ifndef __RSIZE_T_DEFINED
+#define __RSIZE_T_DEFINED
+typedef size_t rsize_t;
+#endif
+
+#ifndef __ERRNO_T_DEFINED
+#define __ERRNO_T_DEFINED
+typedef int errno_t;
+#endif
+
+#endif
+
+/* -------------------------------------------------------------------------
+ * streams description
+ *
+ * FILE is a generic pointer, so a stream (FILE*) is a pointer to a generic pointer.
+ *
+ * If stream is NULL data will be written by calling to putchar.
+ *
+ * If (*stream) points to __data space it is considered a pointer to the
+ * char* buffer being written (sprintf et al.)
+ *
+ * If (*stream) points to __code space it is considered a pointer to the
+ * _stream_out_handler that actually handles the write.
+ * -------------------------------------------------------------------------*/
+
+typedef void *FILE;
+typedef int _stream_out_handler (char c, FILE *stream);
+
+/* -------------------------------------------------------------------------
+ * Implemented streams. They will be linked to the program only if used.
+ * -------------------------------------------------------------------------*/
+
+extern FILE *usart_out;
+extern FILE *mssp_out;
+extern FILE *gpsim_out;
+
+/* -------------------------------------------------------------------------
+ * The stdout stream is provided by the library and initialized to NULL,
+ * so by default the functions writing to stdout will call putchar.
+ *
+ * If another behaviour is desired, the application must assign
+ * to stdout the stream that writes to the desired peripheral.
+ * -------------------------------------------------------------------------*/
+
+extern FILE *stdout;
+
+/* -------------------------------------------------------------------------
+ * The following functions end up calling fputc with the proper stream.
+ * -------------------------------------------------------------------------*/
+
+extern int printf (const char *fmt, ...);
+extern int sprintf (char *str, const char *fmt, ...);
+extern int fprintf (FILE *stream, const char *fmt, ...);
+
+extern int vprintf (const char *fmt, va_list ap);
+extern int vsprintf (char *str, const char *fmt, va_list ap);
+extern int vfprintf (FILE *stream, const char *fmt, va_list ap);
+
+extern int fputs (const char *s, FILE *stream);
+extern int fputc (char c, FILE *stream);
+#define putc(c,s) fputc(c,s)
+
+/* -------------------------------------------------------------------------
+ * The following functions DO NOT use streams.
+ * They end up calling getchar or putchar.
+ * -------------------------------------------------------------------------*/
+
+extern void printf_small (const char *fmt, ...);
+
+extern int puts(const char *);
+
+#if __STDC_VERSION__ < 201112L
+extern char *gets(char *);
+#endif
+
+/* -------------------------------------------------------------------------
+ * These functions are provided by the library as dummy functions.
+ * They do nothing and return EOF.
+ * The application must provide alternative functions if needed.
+ * -------------------------------------------------------------------------*/
+
+extern int getchar(void);
+extern int putchar(int);
+
+#endif /* __STDIO_H */
+
diff --git a/device/include/pic14/stdlib.h b/device/include/pic14/stdlib.h
new file mode 100644
index 0000000..0116ae6
--- /dev/null
+++ b/device/include/pic14/stdlib.h
@@ -0,0 +1,188 @@
+/*-------------------------------------------------------------------------
+ stdlib.h - General utilities (ISO C 11 7.22)
+
+ Copyright (C) 1998, Sandeep Dutta . sandeep.dutta@usa.net
+ Copyright (c) 2016, Philipp Klaus Krause, pkk@spth.de
+
+ Modifications for PIC14 by
+ Copyright (C) 2019 Gonzalo Pérez de Olaguer Córdoba <salo@gpoc.es>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+#ifndef __SDCC_STDLIB_H
+#define __SDCC_STDLIB_H 1
+
+#if !defined(__SDCC_mcs51) && !defined(__SDCC_ds390) && !defined(__SDCC_ds400) && !defined(__SDCC_hc08) && !defined(__SDCC_s08) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15)
+#define __reentrant
+#endif
+
+#ifndef __SIZE_T_DEFINED
+#define __SIZE_T_DEFINED
+ typedef unsigned int size_t;
+#endif
+
+#ifndef __WCHAR_T_DEFINED
+#define __WCHAR_T_DEFINED
+ typedef unsigned long int wchar_t;
+#endif
+
+#ifndef NULL
+#define NULL (void *)0
+#endif
+
+#define RAND_MAX 32767
+
+#define MB_CUR_MAX 4
+
+/* Numeric conversion functions (ISO C11 7.22.1) */
+extern float atof (const char *nptr);
+extern int atoi (const char *nptr);
+extern long int atol (const char *nptr);
+#ifdef __SDCC_LONGLONG
+extern long long int atoll (const char *nptr);
+#endif
+extern long int strtol(const char *nptr, char **endptr, int base);
+extern unsigned long int strtoul(const char *nptr, char **endptr, int base);
+
+/* SDCC extensions */
+extern void _uitoa(unsigned int, char*, unsigned char);
+extern void _itoa(int, char*, unsigned char);
+extern void _ultoa(unsigned long, char*, unsigned char);
+extern void _ltoa(long, char*, unsigned char);
+
+#if defined(__SDCC_pic14)
+
+/* -------------------------------------------------------------------------
+ * Non-standard C-like format specification for _ftoa, to be combined
+ * with the precision value:
+ *
+ * F format: [-]ddd.ddd rounded to 'prec' fractional digits (prec >= 0)
+ * E format: [-]d.ddde+-dd rounded to 'prec' fractional digits (prec >= 0)
+ * G format: use format E if exp < -4 or exp >= prec; format F otherwise
+ * -------------------------------------------------------------------------*/
+
+#define PREC_F 0x20 /* F format */
+#define PREC_E 0x40 /* E format */
+#define PREC_G 0x00 /* G format */
+#define PREC_P 0x1f /* precision value (0..31) */
+#define PREC_D 0x06 /* default precision when none specified */
+
+#define PREC(f,p) ((f)|(p)) /* Combine format and precision */
+
+extern void _ftoa(float, char*, unsigned char);
+
+#endif /* __SDCC_pic14 */
+
+/* Pseudo-random sequence generation functions (ISO C11 7.22.2) */
+int rand(void);
+void srand(unsigned int seed);
+
+/* Memory management functions (ISO C11 7.22.3) */
+#if defined(__SDCC_pic14)
+
+#define calloc(nmemb,size) _calloc((size_t)(nmemb) * (size_t)(size))
+void __data *_calloc (size_t size);
+void __data *malloc (size_t size);
+void __data *realloc (void __data *ptr, size_t size);
+#if __STDC_VERSION__ >= 201112L
+#if 0 // Won't compile on pic14 TODO: Fix this!
+inline void *aligned_alloc(size_t alignment, size_t size)
+{
+ (void)alignment;
+ return malloc(size);
+}
+#endif
+#endif
+void free (void __data * ptr);
+size_t memfree (void);
+size_t memfreemax (void);
+
+#else /* __SDCC_pic14 */
+
+#if defined(__SDCC_mcs51) || defined(__SDCC_ds390) || defined(__SDCC_ds400)
+void __xdata *calloc (size_t nmemb, size_t size);
+void __xdata *malloc (size_t size);
+void __xdata *realloc (void *ptr, size_t size);
+#else
+void *calloc (size_t nmemb, size_t size);
+void *malloc (size_t size);
+void *realloc (void *ptr, size_t size);
+#endif
+#if __STDC_VERSION__ >= 201112L
+#if 0 // Won't compile on pic14 TODO: Fix this!
+inline void *aligned_alloc(size_t alignment, size_t size)
+{
+ (void)alignment;
+ return malloc(size);
+}
+#endif
+#endif
+extern void free (void * ptr);
+
+#endif /* __SDCC_pic14 */
+
+/* Searching and sorting utilities (ISO C11 7.22.5) */
+extern void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *) __reentrant);
+extern void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *) __reentrant);
+
+/* Integer arithmetic functions (ISO C11 7.22.6) */
+#if defined(__SDCC_z80) || defined(__SDCC_z180) || defined(__SDCC_r2k) || defined(__SDCC_r3ka) || defined(__SDCC_tlcs90) || defined (__SDCC_ez80_z80)
+int abs(int j) __preserves_regs(b, c, iyl, iyh);
+#else
+int abs(int j);
+#endif
+long int labs(long int j);
+
+/* C99 Multibyte/wide character conversion functions (ISO C11 7.22.7) */
+#if __STDC_VERSION__ >= 199901L
+int mblen(const char *s, size_t n);
+int mbtowc(wchar_t *restrict pwc, const char *restrict s, size_t n);
+int wctomb(char *s, wchar_t wc);
+#endif
+
+/* C99 Multibyte/wide string conversion functions (ISO C 11 7.22.8) */
+#if __STDC_VERSION__ >= 199901L
+size_t mbstowcs(wchar_t *restrict pwcs, const char *restrict s, size_t n);
+size_t wcstombs(char *restrict s, const wchar_t *restrict pwcs, size_t n);
+#endif
+
+/* Bounds-checking interfaces from annex K of the C11 standard. */
+#if defined (__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__
+
+#ifndef __RSIZE_T_DEFINED
+#define __RSIZE_T_DEFINED
+typedef size_t rsize_t;
+#endif
+
+#ifndef __ERRNO_T_DEFINED
+#define __ERRNO_T_DEFINED
+typedef int errno_t;
+#endif
+
+typedef void (*constraint_handler_t)(const char *restrict msg, void *restrict ptr, errno_t error);
+
+#endif
+
+#endif
+
diff --git a/device/include/pic14/time.h b/device/include/pic14/time.h
new file mode 100644
index 0000000..7f64bce
--- /dev/null
+++ b/device/include/pic14/time.h
@@ -0,0 +1,94 @@
+/*-------------------------------------------------------------------------
+ time.h
+
+ Copyright (C) 2001, Johan Knol <johan.knol AT iduna.nl>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to the
+ Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ As a special exception, if you link this library with other files,
+ some of which are compiled with SDCC, to produce an executable,
+ this library does not by itself cause the resulting executable to
+ be covered by the GNU General Public License. This exception does
+ not however invalidate any other reasons why the executable file
+ might be covered by the GNU General Public License.
+-------------------------------------------------------------------------*/
+
+#ifndef TIME_H
+#define TIME_H
+
+#if defined(__SDCC_pic14)
+#warning "time.h : time functions not implemented in SDCC pic14 port"
+#endif
+
+#ifndef __TIME_UNSIGNED
+#define __TIME_UNSIGNED 1
+#endif
+
+/* Bounds-checking interfaces from annex K of the C11 standard. */
+#if defined (__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__
+
+#ifndef __RSIZE_T_DEFINED
+#define __RSIZE_T_DEFINED
+typedef size_t rsize_t;
+#endif
+
+#ifndef __ERRNO_T_DEFINED
+#define __ERRNO_T_DEFINED
+typedef int errno_t;
+#endif
+
+#endif
+
+#if __TIME_UNSIGNED
+struct tm
+{
+ unsigned char tm_sec; /* Seconds. [0-60] */
+ unsigned char tm_min; /* Minutes. [0-59] */
+ unsigned char tm_hour; /* Hours. [0-23] */
+ unsigned char tm_mday; /* Day. [1-31] */
+ unsigned char tm_mon; /* Month. [0-11] */
+ int tm_year; /* Year since 1900 */
+ unsigned char tm_wday; /* Day of week. [0-6] */
+ int tm_yday; /* Days in year.[0-365] */
+ unsigned char tm_isdst; /* Daylight saving time */
+ unsigned char tm_hundredth; /* not standard 1/100th sec */
+};
+#else
+struct tm
+{
+ int tm_sec; /* Seconds. [0-60] */
+ int tm_min; /* Minutes. [0-59] */
+ int tm_hour; /* Hours. [0-23] */
+ int tm_mday; /* Day. [1-31] */
+ int tm_mon; /* Month. [0-11] */
+ int tm_year; /* Year since 1900 */
+ int tm_wday; /* Day of week. [0-6] */
+ int tm_yday; /* Days in year.[0-365] */
+ int tm_isdst; /* Daylight saving time */
+ char *tm_zone; /* Abbreviated timezone */
+};
+#endif
+
+typedef unsigned long time_t;
+
+time_t time(time_t *t);
+struct tm *gmtime(time_t *timep);
+struct tm *localtime(time_t *timep);
+time_t mktime(struct tm *timeptr);
+char *asctime(struct tm *timeptr);
+char *ctime(time_t *timep);
+
+#endif /* TIME_H */