A standard HP-16C as designed and manufactured by Hewlett-Packard provides up to 203 program steps, and up to 406 user data registers (for word sizes of 1 to 4 bits), or some combination that adds up to less than 203 bytes total. Each program step consumes 8 bits that might otherwise be available to use as a data register.
On simulators, or on modern hardware that uses an ARM microcontroller to simulate the original HP Nut processor, it's possible to use additional RAM memory that was not provided by the original hardware. The patch presented below uses this capability, with hardware RAM registers at addresses 0x20 through 0xdf. This patch also requires more program memory (ROM), from 0x2000 to 0x2049. This address range was chosen, rather adding code at 0x1800, immediately following the 16C ROM, because many simulators are written to handle the 15C, which has its second ROM starting at 0x2000.
The number of program steps is limited to 999 to avoid program line display errors. The number of user data registers is limited to 3094 (for word sizes of 1 to 4 bits), or correspondingly smaller limits for larger word sizes, down to 193 (for word sizes of 61 to 64 bits).
This patch works with the stock HP 16C Nut microcode. It is unknown whether it will work with any other patched 16C microcode, which might be present in modern physical calculators or simulators.
The patched 16C firmware can be identified by the keyboard test; at the end of the test, when the calculator model number is displayed, the display will read "16CE" rather than "16".
The patch is being provided for testing. It may contain errors which could cause loss of data.
This patch is the copyrighted property of Eric Smith, and is not licensed for commercial use. For commercial use, please contact the author to negotiate a license.
Copyright 2023-2025 Eric Smith <spacewar@gmail.com>
SPDX-License-Identifier: CC-BY-NC-SA-4.0
License: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
Patch version 1, 2025-03-13:
address | original data | new data |
---|---|---|
01d4 | 09c | 15c |
01db | 3d0 | 290 |
01dc | 290 | 2d0 |
01dd | 2d0 | 000 |
01eb | 222 | 262 |
01ec | 222 | 262 |
0201 | 260 | 02d |
0202 | 1c6 | 080 |
0203 | 257 | 253 |
0204 | 2a0 | 000 |
0205 | 17a | 000 |
0206 | 3db | 000 |
0250 | 130 | 000 |
0251 | 204 | 000 |
0252 | 306 | 000 |
0253 | 10b | 000 |
02b1 | 3f0 | 2b7 |
02e6 | 090 | 019 |
02e7 | 15a | 082 |
0377 | 00b | 00c |
037a | 04e | 001 |
037b | 270 | 080 |
055c | 0df | 01f |
10a2 | 090 | 050 |
10a3 | 1fa | 11a |
10a4 | 11a | 1fa |
10a5 | 013 | 15a |
10aa | 27e | 1fa |
10ab | 3db | 1fa |
10ac | 05e | 1fa |
10ad | 0ba | 15a |
10b1 | 2bc | 15a |
10b2 | 106 | 27e |
10b3 | 046 | 3bb |
10b4 | 23c | 0ae |
10b5 | 1fa | 13c |
10b6 | 11a | 05a |
10b7 | 1fa | 10e |
10b8 | 21a | 1fe |
10b9 | 1fa | 023 |
10ba | 21a | 1be |
10bb | 2fc | 000 |
10d3 | 1a2 | 162 |
10d4 | 1a2 | 162 |
10d9 | 0e0 | 020 |
117b | 266 | 0c1 |
117c | 2e6 | 080 |
117d | 3af | 000 |
14a2 | 26e | 270 |
14a3 | 11c | 19c |
14a5 | 190 | 3d0 |
14a6 | 10e | 010 |
14a7 | 01c | 210 |
14a8 | 211 | 210 |
14a9 | 024 | 31c |
14aa | 09d | 0fd |
14ab | 002 | 082 |
2000 | 04e | |
2001 | 270 | |
2002 | 130 | |
2003 | 020 | |
2004 | 2e8 | |
2005 | 3e0 | |
2006 | 090 | |
2007 | 15a | |
2008 | 260 | |
2009 | 37d | |
200a | 00a | |
200b | 39c | |
200c | 2e2 | |
200d | 073 | |
200e | 33c | |
200f | 130 | |
2010 | 256 | |
2011 | 1bc | |
2012 | 306 | |
2013 | 037 | |
2014 | 1c6 | |
2015 | 2a0 | |
2016 | 15a | |
2017 | 260 | |
2018 | 3d3 | |
2019 | 05a | |
201a | 23c | |
201b | 23c | |
201c | 130 | |
201d | 016 | |
201e | 1bc | |
201f | 306 | |
2020 | 037 | |
2021 | 1c6 | |
2022 | 2a0 | |
2023 | 15a | |
2024 | 260 | |
2025 | 3d3 | |
2026 | 05a | |
2027 | 33c | |
2028 | 01c | |
2029 | 306 | |
202a | 360 | |
202b | 1c6 | |
202c | 2a0 | |
202d | 17a | |
202e | 260 | |
202f | 3d3 | |
2030 | 266 | |
2031 | 2e6 | |
2032 | 3a0 | |
2033 | 266 | |
2034 | 2e6 | |
2035 | 1c9 | |
2036 | 047 | |
2037 | 2fc | |
2038 | 130 | |
2039 | 064 | |
203a | 013 | |
203b | 146 | |
203c | 27e | |
203d | 3f3 | |
203e | 3e0 | |
203f | 210 | |
2040 | 268 | |
2041 | 04e | |
2042 | 09c | |
2043 | 1d0 | |
2044 | 110 | |
2045 | 210 | |
2046 | 350 | |
2047 | 210 | |
2048 | 2a8 | |
2049 | 09d |
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Copyright 2025 Eric Smith <spacewar@gmail.com>
Last updated 2025-03-14