diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /device/include/pic14 | |
| download | sdcc-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.h | 108 | ||||
| -rw-r--r-- | device/include/pic14/p16f_common.inc | 35 | ||||
| -rw-r--r-- | device/include/pic14/pic14_malloc.h | 69 | ||||
| -rw-r--r-- | device/include/pic14/pic14devices.txt | 2595 | ||||
| -rw-r--r-- | device/include/pic14/pic16fam.h | 1235 | ||||
| -rw-r--r-- | device/include/pic14/pic16regs.h | 1030 | ||||
| -rw-r--r-- | device/include/pic14/sdcc-lib.h | 35 | ||||
| -rw-r--r-- | device/include/pic14/setjmp.h | 87 | ||||
| -rw-r--r-- | device/include/pic14/stdarg.h | 80 | ||||
| -rw-r--r-- | device/include/pic14/stdio.h | 142 | ||||
| -rw-r--r-- | device/include/pic14/stdlib.h | 188 | ||||
| -rw-r--r-- | device/include/pic14/time.h | 94 |
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 */ |
