by Wlodek Mier-Jedrzejowicz Ph.D.
|Introduced on July
1 1976 with the
codename "Hawkeye", together with the
HP-25C and the HP-97, this was essentially an upgraded
The competition were catching up and HP had to overtake them (did the codename mean that HP were keeping a sharp lookout for the opposition?), so the HP-67 improved on the HP-65 with new functions, more memory, and the ability to store data as well as programs on magnetic cards.
One interesting extra was a second set of ten registers, called the "secondary storage registers". The "primary" and "secondary" registers could be swapped so the secondary ones could be used to hide a set of values while some other calculation was carried out using a new primary set. These secondary registers were used by the statistics functions, avoiding the problem common on HP calculators that statistics operations destroy data in some of the numbered registers.
Another interesting extra was "rapid reverse branching" - in addition to going directly to program labels, the calculator allowed indirect GOTO commands, via an intermediate register "I", and if "I" contained a negative number then the program would jump backwards by that number of program steps. Since the negative number could be as large as you wished, it could be used to jump backwards past the first program step, and past the last program step, so this technique could even be used to jump forwards in a program without the need for a label. It also allowed execution of subroutines.
The HP-67 had so many functions that the designers added a third shift key, in black marked h to the yellow and blue f and g shift keys already used by the HP-65. (The HP-65 had only a partial third shift key, [f-1], to give the inverse of some functions.)
To allow the HP-67 to be fully compatible with its printing version, the HP-97, it had four special commands. The command [-x-] paused a program for 5 seconds and displayed the contents of x, whereas on the HP-97 this was [PRINTx] which printed the contents of register x. (Note that this developed into the VIEW function on the HP-41.) The command [STK] displayed the stack registers T, Z, Y and X sequentially whereas on the HP-97 this became PRINT:[STACK]. The command [REG] displayed the contents of each primary register (0 to 9) whereas PRINT:[REG] printed all the primary registers. (On the HP-41 PRSTK and PRREG were functions built into the printer, not the HP-41 itself.) [SPACE] did nothing on the HP-67 whereas on the HP-97 it became PRINT:[SPACE] which (obviously) printed a space (a blank line). (The HP-41 had a similar do-nothing function called ADV, which advanced the paper by a blank line if a printer was attached.)
The HP-67 was one of the first calculators to allow the creation of "non-standard" instructions - ones which were not mentioned in the manuals and could not be entered from the keyboard. One way they were entered was by very briefly interrupting the power supply - in fact special "phase" boxes were made by keen users, these would introduce a switch between the battery and one of its contacts, and the box would be used to interrupt power for a selected (short) time to generate a particular instruction. This allowed specialists to study the way instructions were stored inside the HP-67.
One useful tool was the saving of such non-standard HP-67 instructions on magnetic cards, which could then be used to add non-programmable steps to programs (the HP-67 had a program MERGE command) without the need to create the instructions again. These special cards, and tables of HP-67 instructions, were among the tools used to develop "Synthetic Programming" on the later HP-41 calculators.
The HP-67 was the last
calculator of the "Classic" family, and as the
notes in brackets show, it was a precursor to the HP-41
This article is part of the WMJARTS file. This file contains a series of articles written by Wlodek Mier-Jedrzejowicz and published in DATAFILE, the journal of the HPCC. The article was reproduced with permission of the author.
Copyright © Wlodek Mier-Jedrzejowicz Ph.D.