Description of V10C/X, an HP10C running Q and Q-1 of HP32E

Abstract:
V10C/X simulates the Nut CPU (once used in HP-41 and Voyager calculators) to interpret the firmware of an HP10C expanded with the Q and Q-1 functions of the HP32E. Besides that it offers more memory for data and programs. V10C/X is programmed with ooRexx and runs under Windows.

Update 4/29/26
• Fixed key caption shown in PRGM mode
Fixed hidden flaw of one root finder in Q-1 function
• Altered ROM concealment

TOC:

  1. What's worth to know
  2. The modifications in detail
  3. Prerequisites, install and run it
  4. Continuous memory or virgin evermore
  5. Controls of this program
  6. Present its program
  7. Paste a program
  8. Manuals of the role models
  9. The fine print

 
 

What's worth to know

To emulate ancient calculators by simulating its CPU is common practice. Thus V10C/X is nothing special in this respect, in fact it is an offspring of NutEm/PC. The unusual feature is, I was able to carry over the Q and Q-1 functions from the HP32E, a model of the "Spice" series with differing CPU and technology than the 10C of the "Voyager" series.

Some time ago I analysed trace logs of an HP32E running under Tony Nixon's Classic Calculator Emulator + and disentangled the algorithm used to compute Q, the cumulative distribution function for the normal distribution. Later I came to know, this is Algorithm 39 published in 1969.

One rainy day I also analysed the inverse function Q-1. Even so I did not grasp all bits and pieces – probably some housekeeping routines – I now achieved to migrate the algorithm from the HP32E to the HP10C, including the non-understood parts. And it works. When verifying the progress I saw occasionally deviations in results of computing logarithms, but only in the "guard digits" (mantissa digits 11..13). Final results rounded to 10 digits are highly likely all the same on the HP32E and V10C/X.

The modifications in detail

V10C/X differs in four ways from an original HP10C. The changes are —
1. USER mode
The additional functions are callable in USER mode. While the HP10C has no USER mode its display comprises this annunciator. When in GRAD mode GRD (f-shift 6) will toggle it.
2. More Memory
Not influenced by the program size there are allways 16 data register available but only 10 are directly accessible at any time. The six "inaccessible" registers can be swapped with the statistics registers R0..R5. It may be used as primary and secondary data set – or ad lib, it's up to you. To do P<>S hit X≤Y (f-shift /) in USER mode.
3. Normal Distribution
How to use Q and Q-1 is described with examples in HP-32E Owner's Handbook, subsection Normal Distribution. To run Q hit →RAD (f-shift -) in USER mode, to run Q-1 hit →DEG (f-shift +) in USER mode.
4. Decimal Mark
Reset, also start w/o RAM file, will set comma as decimal separator. Same sign will be used for copy X to clipboard.
Notes:

Prerequisites, install and run it

To run V10C/X you need:

Install it

There is no automated installation procedure. Unzip one of the a. m. ZIPs to a directory named at will, a directory of its own or not, it's up to you. Depending how you like to run it, prepare one ore more shortcut links where you find them again.

V10C/X ignores any arguments and options.

First Run and Subsequent Runs

Other than the preparatory work mentioned under 'Prerequisites' and 'Install it' there is nothing else to do before the first run. Don't be surprised that the very first notification is an error message: "Pr Error" what stands for 'Power Error.' That is the same as inserting batteries for the first time into a real HP10C.

Leaving the session (not by 'Quick Quit') will write a state file "## trial run ##.mem" which will be ignored at next run of V10C/X. To use it rename it to "V10CX.mem" – for more see next paragraph.

Continuous memory or virgin evermore

An HP10C is so scantily equipped with memory it's rather a "4-banger" than a programmable calculator. That is why it could be desirable to get a pristine machine every time you start V10C/X. This is possible by not renaming the state file "## trial run ##.mem" or – if once renamed – by erasing "V10CX.mem", That way every run of V10C/X will give you a brand-new machine.

In contrast, if you like a calculator with continuous memory like the role model, rename the state file to "V10CX.mem" and include it in your back-up.

Controls of this program

Keys: F1  - will show this help file (if you linked suffix HTM with a browser),
      F2  - displays the About information,
      F10 - activate context menu,
      Esc - ends the program.
Buttons: Same as role model (see note 1).
System menu: Underscored letters indicate which key will launch the option
  additions only:
      Quit w/o saving RAM      - ends program but keeps RAM of previous session
      Reset Nut cycles counter - set CPU count to zero
      Show PRGM...             - list user program in an extra window
      Get PRGM from clipboard  - import a routine or parts of it
      Copy figure as displayed - copy display to clipboard
      Copy complete X-register - copy X-register in full precision to clipboard (note 2)
      Paste number to X        - import clipboard content (note 3)
      Sho BS image...          - show reverse side of role model (note 4)
      Manuals online...        - show https://literature.hpcalc.org
      More details...          - same as F1 (see note 5)
      About...                 - guess what...

Notes:

  1. Caption of buttons change according to shift status and with it also acceleration keys. For V10C/X f-shift, GRAD and USER mode are relevant, in addition pointer P and some internal flags to identify partial key sequence.
  2. The used decimal marker depends on the calculator setting.
  3. Pastes a number to X-register, or in PRGM mode into program. A number is interpreted to detect thousand's separators, comma, sign, exponent, and exponent sign. What may not belong to the figure will be missed silently. This fuzzy logic is not perfect, so use with caution.
  4. This menu item requires suffix .GIF to be linked with a viewer (if none available a browser might do).
  5. This menu item requires suffix .HTM to be linked with a browser.

Present its program

Voyagers lack a printer. An emulator may fill that gap easily. V10C/X offers at least a virtual printing strip for programs, see Show PRGM... option above. Mark all or sections to copy to clipboard. When you changed the program the 'Sho' button will refresh the "print-out".

Paste a program

The afore mentioned option to show and copy programs enables to build a compilation of your routines worth to preserve. The feature to put them back to work is pretty handy. To make it really useful the saved listings may be annotated at pleasure.

A listing apt for import may look like this:

#! 10C
* vapour pressure of water
* rel. err. < 0,3% in range 0..100 °C
|...+....1....+....2....|
 1-     36  Enter^
 2-     35  CLX
 3-  42 10  x<=y?
 4-  22 06  GTO 06
 5-  42 12  LN      impede input < 0
 6-     33  RDN
 7-      7  7
 8-     48  .
 9-      4  4
10-      6  6
11-      3  3
12-     34  x<>y
13-     20  *
14-      2  2
15-      3  3
16-      6  6
17-  42 36  Last X
18-     40  +
19-     10  /
20-     13  10^x
* * *  6,107E-03 bar is p_W//0 °C
21-      6  6
22-      1  1
23-      0  0
24-      7  7
25-     26  EEX
26-     16  CHS
27-      6  6
28-     20  *

Manuals of the role models

HP10C
https://literature.hpcalc.org/#model:10C/author:Hewlett-Packard
HP32E
https://literature.hpcalc.org/#model:32E/author:Hewlett-Packard

The fine print

(i) Do not use this program.
(ii) Any damage you cause with this program, intentional or by chance, is a violation of clause (i). Thus all consequences are completely at your own risk.
(iii) Because the program is published w/o source no 'free license' like the QPL is applicable. Nevertheless protect existing laws its content – the interpreted firmware is included within the "running phase" (sourceless program) but in an encoded format. That is why it is unlawful to decode it and distribute it in decoded format. In case you accomplish to decode the expanded firmware of V10C/X – enjoy your achievement, but do not publish it, even not in private circles – there may always be a "leaky spot".
* * * * * END OF FILE * * * * *