Sharing my thoughts on the HP-75C and HP-71B with you reminded me of my all times favorite HPs: the 28 families. It is a family because there were two HP-28 in fact. The very first one – a true revolution – to be introduced was the HP-28C in 1986. It left just less than 2KB of RAM available to the user (1672 bytes to be precise). OK, my Sharp PC-1211 had less than that, but it was almost a decade before. Shortly after (1988), HP introduced the HP-28S with 32KB at that time (and EOLed the C model). I think they got the message loud and clear. Even so, I rushed to buy the 28C at La règle à calcul a few weeks after its availability. So why is the 28 revolutionaries according to me? Here is my list: RPL (full RPL, with SYSEVAL), CAS (symbolic math!!), full dot-matrix multi-line display, Saturn CPU, clam-shell form factor and a wonderful user guide.
So let’s get them one by one. RPL is a powerful programming language that mixes the RPN (Reverse Polish Notation) with unlimited stack depth – or available memory limited to be precise –, LISP and FORTH. It is a beautiful threaded language, object-oriented (in a good way) with named and local variables. I recall a trick I used to build animations using the →STR and STR→ with STO to generate variable names to store my animation GROBs (Graphic Object). It was so elegant and simple. System RPL was the gateway to the Saturn assembler. In fact, the object-oriented approach of RPL was perfect for everyday computing, but performance-wise, well, nothing is really fast enough. Having access to the addresses of the routines in ROM (bypassing all the checks performed/needed by the OOP), you could give whiplash to your code once it was stabilized. Of course, ‘Memory Lost’ was always lurking at you. The assembler was much more difficult to access since there was no out-of-the-box assembler/disassembler available.
Luckily, the community was strong and few smart fellows made it available to all of us. CAS is magic if you love math. This calculator was the first to do symbolic math! Examples are limitless, so let me give you a simple one: Taylor series (TAYLR). Type ‘SIN(X)’ ‘X’ 3 TAYLR, and the 28 gives you back the 3rd-degree approximation ‘π/180*X-π/180*(π/180)*( π/180)/6*X^3’ pronto. With the animation building code, I mentioned earlier, I could, for a given function, vary the degree of Taylor approximation, draw the function, grab and store the frames. By replaying the video, no one could say they do not comprehend the spirit of the Taylor series! This is simply magic. To end a post already too long, I will close this enumeration with the form factor. In addition to protecting the calculator, it allowed for more keys (alpha keys directly available) and therefore a better comfort. Want to do “simple” math, fold the left pane over, et voila! Are the 28s perfect? Of course not. My personal list of no-no’s: no I/O (besides the IR output) and the awful battery door that made me always dread the low battery annunciator.
<< FROM TO FOR I I PAYLOAD "PIC" I 10 * →STR + STR→ STO INC STEP >> 'REC' STO
<< CLLCD FROM TO FOR I "PIC" I 10 * →STR + STR→ →LCD INC STEP >> 'PLAY' STO
<< → Z << CLLCD 'SIN(X+SIN(Z*X))' STEQ DRAW LCD→ >> >> 'PAYLOAD' STO
0 'FROM' STO 2 'TO' STO .1 'INC' STO
The payload above generated the frequency modulation animation, while the following did yield the Taylor animation.
<< → Z << CLLCD 'SIN(X)' STEQ DRAW 'SIN(X)' 'X' Z TAYLR STEQ DRAW LCD→ >> >>
Enjoy the pics and the vids!