Post Reply 
HP 67/97 Special Message Cards, videos of...
09-03-2019, 10:08 PM (This post was last modified: 09-03-2019 10:13 PM by Greg.)
Post: #5
RE: HP 67/97 Special Message Cards, videos of...
Hi DanM,

This is now a few years after your post and you've probably moved on to other things, but ...

Word cards were all the rage in 1976-1978. I got my HP-67 in 1978 so I came in on the tail end. The leading edge was an article in 65 Notes V4N1 (Jan 1977) by Louis Cargill. He and someone named Gene were responsible for working out the program codes for the HP-67 and, during that process, they discovered you could get Non-Normalized Numbers (NNNs) like 0.00000002 x 10^0 (not a valid number in SCI notation) and these produced long delays in divides and strange effects in the display.

The more interesting NNNs had letters in them and Louis and Gene were able to determine that the letters for "Error" and "Crd" came from specific hexadecimal digits (a-f) in positions within registers. Their work is how we know that digits a-f display as "rCodE " (f gives a blank space).

Much of the work on HP-67 tricks stems from their work over what was probably a lot of very intense nights. We may even owe the alphanumeric display of the HP-41 to the fact that words became a thing as a result.

Perhaps when the HP-41 came out, the hoops we'd had to go through to get words on the '67 were forgotten. It is easy to forget as there was a lot to it. Newer initiates to HP calculators probably never even heard of words on a HP-67 - much less the process to get them.

To refresh older member's memories and explain for newer members:

The process for creating words involves getting hex digits (specifically a-f) in parts of the mantissa in a storage register. The HP-67 stores numbers internally in SCI notation. There are 14 digits stored for every number. The format is:
mantissa sign, 10 digit mantissa, exponent sign, 2 digit exponent. Sign is "0" for +ve or "9" for -ve. The values normally look like this:
05000000000000 = +5.0 x 10^+00 ie 5
01230000000002 = +1.23 x 10^+02 ie 123

This is why 0.00000002 x 10^+00 is a Non-Normalized Number. It is stored as: 00000000020000 when it should be stored as 02000000000992 (992 in the exponent sign and value means -8).

Words involve "numbers" like 0ec54f1dcff009. If you can get that into STOrage register 6, RCL 6 will produce "Easy Ida" (Eo54 1do) in the display. "4" on a HP-67 looks like a "Y" and the "o" looks like a small square. Seeing that as an "a" isn't a stretch.

How do you put stuff like that in a STOrage register?

The process was not very straight forward in 1977. Louis and Gene used a HP-65 and a HP-67 and wrote magnetic bits from one onto cards for the other.

Another approach they used involved turning the HP-67 off during a card write. That allowed them to put a DATA header (f W/DATA) on a PROGram card. You'd key in program steps, save them, overwrite the header, and then read the program steps back in as DATA. Data is (should be) always 0-9. Program steps are two hexadecimal digits so each step is two "digits". You get 00-FF instead of 00-09,10-19,20,...,99.

Another approach that came a little later, involved program step 992. If you got to program step 992, you're keying program steps into the wrong part of the calculator's internal memory. You're keying steps directly into the STOrage registers! The "phase I interrupt switches" that were mentioned in the post quoted by SlideRule enabled this approach. The special hardware wasn't strictly necessary. You could achieve the same result by: sliding the HP-67 power switch to the point where it just turned on, and then pressing the switch in slightly. This broke the circuit briefly and did the same thing as the special hardware. It does wear out the power switch though (eventually, and due to sparking rather than mechanical failure).

The easiest approach was to get a card after someone else had created them. Once they were in STOrage registers you could write them to mag cards and read them back - just like any other DATA.

Given that Gene of the Forum was tinkering with these in 1976 and that the original article on them was published in Jan 1977, one might draw a conclusion about the Gene mentioned in the article.


Modern Tricks (Cheating).

These days, with what we have available now, there is an even easier approach. It is in many ways cheating but it is very easy to do. All you need is an emulator that allows access to the calculator internals. My hp67u (http://www.sydneysmith.com/products/gss-...n/app.html) or Teenix's emulator (http://www.teenix.org/) both allow you to do this. With mine, you tap the calculator display to bring up a menu, tap Data and paste the following in to the input box:
Code:

DATA
26
00: '00000000200000
01: '05eedffffff009
02: '0badf2fffff009
03: '0900df90dff009
04: '0ff4e5f51af009
05: '09eac1dffff009
06: '0ec54f1dcff009
07: '0819fedffff009
08: '09c4fac11cf009
09: '0decafe11cf009
10: 0
11: 0
12: 0
13: 0
14: 0
15: 0
16: 0
17: 0
18: 0
19: 0
20: '01fc9aeefff009
21: '0d15c9aeeff009
22: '04e5f8055ff009
23: '0aec1fbcc1f009
24: 0
25: 0
You click "Back" to get to the HP-67 display and keyboard. As you do the values above get loaded into the STOrage registers. You can press RCL 1 to display "Seed", RCL 6 for "Easy Ida". The above contains all of the words from the original article, and the 0.00000002 x 10^+00.

With Tony's emulator the process is similar. Run CCE33.EXE with HP-67 selected, right-click, choose "For the inquisitive...", make sure the calculator is ON and that MEMORY Bank 0 is showing. Click on a register and key in 14 digits from the list above. Bank 0 registers 0-9 are STOrage registers 0-9. Bank 0 registers 10-14 are STOrage registers A-E. You then click RCL 0-9 or A-E to display the word you keyed in.

Other words can easily be created in my or Tony's emulators by keying in hex digits where you need them. In mine, just go back to the Data input box and change digits. Mine needs the leading single quote mark for it to copy what follows it directly into the STOrage registers.

There are other emulators that may allow you to use NNNs. To cover off some of the common ones ...

Bernhard's emulator (http://panamatik.de/html/hp-67.html) doesn't provide access to the calculator's internals and his card format doesn't mention a 14BCD override (like the '0955f67ffff009 trick I use). So that doesn't seem to support NNNs (yet?).

The Cuvee Software emulator doesn't match the original internals so it is unrealistic to expect it to support NNNs. Its strengths are numerous; but in other areas. (I still remember the times when I needed a 225th program step in a HP-67, and the effort required to prune that back to 224.) It has lots of enhancements so I can see why many forum users love it, but NNNs are probably not for it.

If you have them, the old nonpareil emulator and Jacques Laporte's java one probably do support NNNs.


The Videos.

What's in the videos uses an extra technique that shows numbers w/out a decimal point. However, with a decimal point, the "numbers" involved are:

Code:

Living Words

 67 118ror4///     067f118aca4009
 Error     ///     0eaacafffff004
  45170d d4///     0f45170dfd4001
 5r 52  8oo///     05af52ff8cc009
 67 15 Coo1///     067f15fbcc1009
   rEod4   ///     0ffaecd4fff006
   4E 1o5E ///     0ff4ef1c5ef008
   5EEd    ///     0ff5eedffff005
 r CodEd 10///     0afbcdedf10009
 C C0d 8o4 ///     0bfb0df8c4f008
 oo     0 0///     0ccfffff0f0009
 d13 8o5E16///     0d13f8c5e16009
 E 5Eo80ord///     0ef5ec80cad009
   Co1orodo///     0ffbc1cacdc009

HP Poem

  C1o551C5 .///    0fb1c551b5f009
 o1o5 o1o5 .///    0c1c5fc1c5f009
   o11 orE .///    0ffc11fcaef009
  d15CordEd.///    0fd15bcaded009
    9ood   .///    0fff9ccdfff009
  5o1d1Er5 .///    0f5c1d1ea5f009
 dEod Eor14.///    0decdfeca14009
 50 ro15E o.///    050fac15efc009
 91o55 8045.///    091c55f8045009
  ErE 4E   .///    0feaef4efff009
  o150 orE .///    0fc150fcaef009
  rECo11Ed .///    0faebc11edf009
  rE1Eo5Ed .///    0fae1ec5edf009
  . rEC4C1Ed or    0ffaeb4b1ed0ca (switches to SCI 9)
 08501E5CEd.///    008501e5bed009

HP Commercial
 o 67 or 97.///    0cf67fcaf97009
    15 o   .///    0fff15fcfff009
  9ood dEo1.///    0f9ccdfdec1009

Coca Cola
 C0Co C01o. ///    0b0bcfb01cf008

HP Seasons Greetings
 8E dEC 25 .///    08efdebf25f009
 o 91od do4.///    0cf91cdfdc4009
   o11 do4 .///    0ffc11fdc4f009
  o o o o o.///    0fcfcfcfcfc009
   8E 1977 .///    0ff8ef1977f009
  o 9ood   .///    0fcf9ccdfff009
   4Eor    .///    0ff4ecaffff009
  o11 4Eor .///    0fc11f4ecaf009
  90d 81E55.///    0f90df81e55009

Note: the HP-67 rounds what is displayed to the display precision (the DSP n setting). The rounding process will normalize, Non-Normalized Numbers so things like " Error. " ('0eaacafffff004) show in FIX 2 mode as as 51131.66. To avoid rounding, always put the dot at the right-most position (use 009 in the three exponent digits), or press DSP 9 before displaying a word with an embedded decimal point.

For the hp67u:

Code:

DATA
26
00: '067f118aca4009
01: '0eaacafffff009
02: '0f45170dfd4009
03: '05af52ff8cc009
04: '067f15fbcc1009
05: '0ffaecd4fff009
06: '0ff4ef1c5ef009
07: '0ff5eedffff009
08: '0afbcdedf10009
09: '0bfb0df8c4f009
10: 0
11: 0
12: 0
13: 0
14: 0
15: 0
16: 0
17: 0
18: 0
19: 0
20: '0ccfffff0f0009
21: '0d13f8c5e16009
22: '0ef5ec80cad009
23: '0ffbc1cacdc009
24: 0
25: 0

and so on ....

Don't forget the most important tip from that era: be really careful with NNNs on a HP-97. They mess up timings or produce unprintable characters that end up burning out the printer.

- Greg from sydneysmith.com
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: HP 67/97 Special Message Cards, videos of... - Greg - 09-03-2019 10:08 PM



User(s) browsing this thread: 1 Guest(s)