A Most Unusual Number, on the 10c/11c/12c/15c



Post: #10

I was thinking about the keyboard test timeout on the Voyagers and what it left on the display. See this thread for a little background.

If you start the keyboard test (turn off the calculator, hold down the divide key then press ON) on any of the original Voyagers (and the 12C+) and let it time out -- a few minutes, but only 2 seconds on the 12c+ -- you're left with a number ranging from 0.1 to 4.0 on the display after you clear the "Error 9" message. This number is apparently there it indicate the last key pressed that registered correctly starting with .1 (no key pressed) ending at 4.0 (sigma+ key pressed). However, these are not your run of the mill numbers, they have some very weird properties, some of which are potentially useful in programs.

For example:

1) Start the keyboard test but don't press any keys, let it time out, then press ENTER to clear the "Error 9" message

2) Store the ".1" shown in register 0, just to have it around to play with.

3) Take the reciprocal of it. It's zero, but there's more.... try 123.456 RCL 0 /, You'll see 234.56.

Dividing this magical number into any other number results in the removal of the left most digit followed by a divide by a real 0.1.
The exception is when you divide this number by itself, it returns 1.

Here's another magical property of this number:

RCL 0 Ln returns 1, it's a pseudo Euler's number.

I haven't explored it's complex properties on the 15c, but I'll bet that they are equally interesting. I also haven't explored any of the other numbers that can be gotten to using the keyboard test timeout.

On the 16C, you can see that this is one strange number. It displays as an impossibly large binary number based on the word size but it can't stored nor used in calculations, not even in floating point mode. Other models of the 12C don't timeout the keyboard test so you can't get to this number on them.

I'm curious if anyone here has explored these numbers and what else they might allow the Voyagers to do.

-Katie


Post: #11

Except on the 16C, these are called non-normalized numbers (NNNs), and behave much the way that they did on earlier HP calculator. (The 16C in float mode deals with them in about the same way as the others.)

On the 15C, some NNNs are matrix descriptors. There are 16 possible matrix descriptors, of which only five are used. The other 11 do strange and wonderful things.


Post: #12

Hi, guys;

after reading Katie´s post (and before reading Eric´s), I wondered that the HP16C would let us know what are these numbers made of. I mean, considering that the keyboard test timeout also brings the same number to the display in an HP16C in floating point mode, storing this .1 in R0, setting HEX (or BIN or OCT) and recalling it back to the stack would show its guts, bit-by-bit.

I´ll try it later, but if anyone wants to go ahead and post about it, I'd gladly read it as well.

Cheers.

Luiz (Brazil)


Post: #13

On the 16C, the low 56 bits of the stack registers are stored in individual registers in the R2D2 chip, just as in the other Voyagers. The high 8 bits of the stack registers are combined in a separate R2D2 register.

When one of the stack registers has a value with bits set beyond the word length, it still gets displayed. However, setting the word length to 56 bits prior to doing this experimentation would be the best way to facilitate seeing the actual leftover X register contents.

Post: #14

Eric,

I just found and read Allyn Tennant's article on HP-15C synthetics on your web site, interesting stuff! I also found this thread from a few years ago where we discussed some of this too. All this seems to have been pretty well hashed out before, but it's still fun to play around with these things.

BTW, I found that ON+PMT doesn't work on the 12C+, it appears to have no effect on the X register at all. I guess the ARM-bsed emulator isn't quit perfect.

-Katie


Post: #15

The 12C ON+PMT is a hardware function of the 1LE3/1LF5 chips, independent of the Nut instruction set. It forces a hardware reset, but at a specific time during the serial processing of a word, so it causes all of the processor registers to be shifted. There is no firmware involved in that process, so a Nut instruction set simulator won't reproduce it.

I suppose that in principle a simulator could have special-case code to do the equivalent, but it doesn't really seem very worthwhile.


Post: #16

That an interesting hardware function, are there others that you know of?

Post: #17

Quote:
I'm curious if anyone here has explored these numbers and what else they might allow the Voyagers to do.

cf. HP-15C Synthetics

Cheers

Thomas

Edited: 15 July 2010, 3:33 a.m.


Post: #18

Thomas,

Thanks! I was just reading that and posting my reply above when you posted your link!

-Kaite


Forum Jump: