|HP-15C RAM and speed improvements|
Message #14 Posted by Karl Schneider on 21 June 2006, 3:32 a.m.,
in response to message #7 by Valentin Albillo
Hi, Valentin --
Good to hear from you on the matters of the HP-15C and "other reflections" regarding quotes from famous people.
[BTW, I've been following your fine contributions regarding Gaussian quadrature, but haven't yet formulated my own response, because I've needed to do some investigation and reading. I hope to make that post late Thursday.]
We've had several Forum exchanges in the past regarding potential improvements to the HP-15C. I agree with you fundamentally that more user RAM and faster speed would have been useful and welcome. However, I believe that those wishes should be framed by the capabilities of the base hardware -- including the CPU, display unit, RAM chips, keyboard, and overall package. What more would have been possible and practical to include without re-engineering the product?
As I understand it (from reading Eric Smith's prior posts), the HP-15C had two R2D2 chips, while all other Voyager-series models had only one. This is why the HP-15C had 448 bytes (64 allocatable registers) plus three non-allocatable registers, compared with the 203 bytes (29 registers) and one non-allocatable registers of the HP-11C and HP-16C.
Now, if one more R2D2 chip could have been incorporated, up to 100 or so numbered registers (98 allocatable) would have been possible. I'd consider this amount optimal for practicality and cost, providing enough for the following:
- A 9x9 real matrix and 9x1 vector with room to spare
- An 8x8 matrix with room for INTEG and some programming
Eric pointed out some upper-limit software restrictions. There were some other things of which to be mindful, including the display, having 10 digits and a leading negative sign:
- The MEM readout
" RR FF PP-B" with RR = highest allocated register; FF = number of free registers; PP = number of programming registers; and B = number of free bytes. Providing enough RAM for triple-digit values of RR, FF, or PP would have required some changes to the display (i.e., making the leading negative sign a full 7-segment field) or revising the code for the MEM command.
- The program keycode readout
" LLL-C1,C2,C3" where LLL = the line number; C1,C2,C3 are the three keycodes allowed. Obviously, LLL > 999 would cause a problem, unless another digit were made available.
In short, the ability to accommodate matrices or matrix systems modestly larger than 64 elements without the user's having to delete programming would have been useful and practical. However, more storage for large programs without electronic I/O or an effective means of grouping and managing programs (using the END statement) would have been questionable. More than 100 registers (indirect access only above the 20th) would not have been particularly useful.
So, how else could the extra RAM have been employed? Programs that created very large matrices might run slowly, and reviewing the full contents of such matrices (for debugging) might have been tedious.
One has to think about cost, too: HP charged a considerable premium for the extra 1792 bytes (256 registers) of the HP-41CV over the base HP-41C, until 1985, when the HP-41C was discontinued.
As I remember from Eric's previous posts, The HP-15C and other Voyagers share the same CPU with the HP-41, which also incorporates a voltage regulator and something else (I forgot what it was), that the Voyagers lack. These other componenets allow the HP-41 to use a higher-frequency LC resonant circuit and faster clock speed than the Voyagers, while still maintaining reliable operation at low battery voltage and temperatures.
I have accelerated one of my HP-11C's by a factor of 2.5 by simply adding 33 uH of parallel inductance to the LC circuit. I have seen no undesirable side effects, and I plan to make the same change to many of my other Voyagers, including my present HP-15C or another one. The quicker response of this HP-11C is pleasing, as a trigonometric calculation no longer requires a full second. On the HP-15C, more speed for executing programs within the advanced functions or performing matrix function or complex-valued mathematics would certainly be welcomed.
As for the comparison with the RAM and computational speed of the Sharp machines of the same era, I believe that you are referring to their pocket-computer models. I'd think that these devices have different hardware inside. One must consider what hardware HP could use at the time. The Saturn processor was still several years away...
Edited: 22 June 2006, 1:31 a.m.