Post Reply 
15C functions that can be cancelled with 'null' (quiz)
10-14-2024, 12:08 PM (This post was last modified: 10-14-2024 12:26 PM by J-F Garnier.)
Post: #1
15C functions that can be cancelled with 'null' (quiz)
In his presentation at the HHC 2024 meeting, Bob talked about the HP-15C operations that can be cancelled (in run mode) by holding the key down.
Examples from the 15c manual (p.144): "STO A" or "RCL A" , A being a dimensioned matrix.

Bob stated that there are 3 operations. I guess the third operation he had in mind was " x<> ".
A more complete investigation gave me 10 "generic operations" (the first key of a sequence) that can be cancelled with a 'null' display, such as the STO, RCL and x<> operations on a matrix.

All in all I counted 83 key sequences that possibly can be nulled out by holding down the last key.
In this context, a key sequence is what would generate one step in program mode, such as " STO + . 6 ".

Can you find the 10 generic operations and the 83 key sequences ?
Or more, in case I missed a few...

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
10-14-2024, 12:25 PM (This post was last modified: 10-14-2024 12:26 PM by AnnoyedOne.)
Post: #2
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-14-2024 12:08 PM)J-F Garnier Wrote:  Examples from the 15c manual (p.144): "STO A" or "RCL A" , A being a dimensioned matrix.

I looked and found no reference to run mode on that page. However for reference.

Quote:If the letter key is held down for longer than about 3
seconds, the calculator displays null, doesn’t store or recall the element
value, and doesn’t increment the row and column numbers. (Also, the
stack registers aren’t changed.)

HP-15C Collector's Edition Owner's Handbook, p144 (156 of the PDF)

HP-15C Owner's Handbook (November 1985), p144 (146 of the PDF)

HP-15C Owner's Handbook (Edition 2.4, Sep 2011) [LE], p144 (144 of the PDF)

A1

HP-15C (2234A02xxx), HP-16C (2403A02xxx), HP-15C CE (9CJ323-03xxx), HP-20S (2844A16xxx), HP-12C+ (9CJ251)

Find all posts by this user
Quote this message in a reply
10-14-2024, 01:36 PM (This post was last modified: 10-14-2024 03:53 PM by J-F Garnier.)
Post: #3
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-14-2024 12:08 PM)J-F Garnier Wrote:  Can you find the 10 generic operations and the 83 key sequences ?
Or more, in case I missed a few...

Correction: I found a 11th operation and 3 corresponding key sequences that can be nulled out :-)

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
10-14-2024, 10:47 PM
Post: #4
RE: 15C functions that can be cancelled with 'null' (quiz)
I can only find 5 generic operations, but I'm counting 90 key sequences.

Compare page 173 of the Owner's Handbook.

Code:
6       STO A..E, (i)
6       RCL A..E, (i) 
6       STO g A..E, (i)
6       RCL g A..E, (i)
24      STO +-×÷ A..E, (i)
24      RCL +-×÷ A..E, (i)
6       x<> A..E, (i)
6       DSE A..E, (i)
6       ISG A..E, (i)

FIX, SCI, ENG, as well as SF, CF, F? throw "Error 1" if a matrix descriptor is in the index register.

I can't find anything that's not related to matrices. Program-related operations that display the instruction while the key is being pressed (R/S, SST, BST, SOLVE, ∫) don't have the "null" cancelation.
Find all posts by this user
Quote this message in a reply
10-14-2024, 11:07 PM
Post: #5
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-14-2024 01:36 PM)J-F Garnier Wrote:  
(10-14-2024 12:08 PM)J-F Garnier Wrote:  Can you find the 10 generic operations and the 83 key sequences ?
Or more, in case I missed a few...

Correction: I found a 11th operation and 3 corresponding key sequences that can be nulled out :-)

J-F

It took me quite a while as well!! And I will be real surprised if there is a 4th...

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
10-15-2024, 07:51 AM
Post: #6
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-14-2024 10:47 PM)naddy Wrote:  I can only find 5 generic operations, but I'm counting 90 key sequences.
...
6 STO g A..E, (i)
6 RCL g A..E, (i)
...

Oh ! I missed that ones !

This leads to a total of 11 operations and 98 key sequences that can be cancelled.

One little hint for the remaining 6 operations/8 key sequences, taken from the Owner's Manual, p.149:
Quote:While the key used for any matrix operation that stores a result in the
result matrix is held down, the descriptor of the result matrix is displayed.
If the key is released within about 3 seconds, the operation is performed,
and the descriptor of the result matrix is placed in the X-register.
If the key is held down longer, the operation is not performed and the
calculator displays null.

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
10-15-2024, 10:15 AM
Post: #7
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-14-2024 12:08 PM)J-F Garnier Wrote:  Can you find the 10 generic operations and the 83 key sequences ?

This prompted me to find the microcode that displays "null". It probably would have been easy to capture a trace in Nonpareil (or another simulator), and work backwards, but I just scanned the source code for more instructions that write to the two hardware LCD registers (0x09 and 0x0a). Special display like Error, running, and null don't go through the normal display formatting code, but get written as bitmaps directly to the hardware.

The subroutine used to wait for the key release is at 0x13b8, with the timing constant 8 loaded by "lc 8" at 13ba. If the key isn't released in time, it falls into the code at 0x13c1 that displays "null".

The 0x13b8 subtrouine is called from just two places in the matrix operation code. I haven't really dug into the matrix operations yet. At some point I want to study the LU decomposition code.
Find all posts by this user
Quote this message in a reply
10-15-2024, 12:26 PM
Post: #8
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-15-2024 07:51 AM)J-F Garnier Wrote:  One little hint for the remaining 6 operations/8 key sequences, taken from the Owner's Manual, p.149:
Quote:While the key used for any matrix operation that stores a result in the
result matrix is held down, the descriptor of the result matrix is displayed.
If the key is released within about 3 seconds, the operation is performed,
and the descriptor of the result matrix is placed in the X-register.
If the key is held down longer, the operation is not performed and the
calculator displays null.

J-F

Yes, this one was hardest to find! And if I ever knew this at all (back in the day) then I'd completely forgotten it! It's both frustrating to realize there are things about such a well-known product that have been forgotten, but also satisfying to find "new" features decades into use.

It's a bit like dimensia, when you get to experience the joy of discovering new things each day, including some that were discovered the day before!

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
10-15-2024, 12:41 PM
Post: #9
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-15-2024 10:15 AM)brouhaha Wrote:  This prompted me to find the microcode that displays "null".

No peeking at NUT code. That's cheating! Smile

A1

HP-15C (2234A02xxx), HP-16C (2403A02xxx), HP-15C CE (9CJ323-03xxx), HP-20S (2844A16xxx), HP-12C+ (9CJ251)

Find all posts by this user
Quote this message in a reply
10-15-2024, 01:41 PM
Post: #10
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-15-2024 07:51 AM)J-F Garnier Wrote:  One little hint for the remaining 6 operations/8 key sequences, taken from the Owner's Manual, p.149:
Quote:While the key used for any matrix operation that stores a result in the
result matrix is held down, the descriptor of the result matrix is displayed.
If the key is released within about 3 seconds, the operation is performed,
and the descriptor of the result matrix is placed in the X-register.
If the key is held down longer, the operation is not performed and the
calculator displays null.

Right! Knowing that, it's just a matter of going through the section "Summary of Matrix Functions" (p. 177ff) and noting where it says "Stores in result matrix". Yup, can confirm: 6 ops for a total of 8 key sequences.

If we are talking literal key sequences, then the overall total of 98 can be inflated by redundant gold key presses, e.g. STO f A.
Find all posts by this user
Quote this message in a reply
10-15-2024, 02:06 PM
Post: #11
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-15-2024 10:15 AM)brouhaha Wrote:  The 0x13b8 subtrouine is called from just two places in the matrix operation code.

Undoubtedly corresponding to these subroutines:
  • Display matrix/row/column, e.g. "A 1,1"
  • Display result matrix descriptor, e.g. "C 2 2"
Find all posts by this user
Quote this message in a reply
10-15-2024, 02:13 PM
Post: #12
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-14-2024 10:47 PM)naddy Wrote:  ...SOLVE, ∫) don't have the "null" cancelation.

Which is curious since they could be "long" operations just like matrix ones.

A1

HP-15C (2234A02xxx), HP-16C (2403A02xxx), HP-15C CE (9CJ323-03xxx), HP-20S (2844A16xxx), HP-12C+ (9CJ251)

Find all posts by this user
Quote this message in a reply
10-15-2024, 02:51 PM
Post: #13
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-15-2024 02:13 PM)AnnoyedOne Wrote:  
(10-14-2024 10:47 PM)naddy Wrote:  ...SOLVE, ∫) don't have the "null" cancelation.

Which is curious since they could be "long" operations just like matrix ones.

I think the matrix operations can be canceled because they are (potentially) destructive. If you screw up, you may have to re-enter your data all over.

Like any program, SOLVE and ∫ can be aborted any time by pressing a key while they are running.
Find all posts by this user
Quote this message in a reply
10-16-2024, 07:27 AM (This post was last modified: 10-16-2024 11:55 AM by J-F Garnier.)
Post: #14
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-15-2024 01:41 PM)naddy Wrote:  
(10-15-2024 07:51 AM)J-F Garnier Wrote:  One little hint for the remaining 6 operations/8 key sequences, taken from the Owner's Manual, p.149:

Right! Knowing that, it's just a matter of going through the section "Summary of Matrix Functions" (p. 177ff) and noting where it says "Stores in result matrix". Yup, can confirm: 6 ops for a total of 8 key sequences.

I should have specified that use of the manual was forbidden ! Smile
Indeed, the 8 extra operations/sequences are
+  -  *  /      when applied to one or two matrices
1/x              when applied to a matrix
MATRIX 5      matrix transpose-multiply
MATRIX 6      residual
MATRIX 9      LU decomposition and determinant

Now, a few final comments:

This is a list of key sequences that possibly can be cancelled with null, but there are cases where some (maybe all) of them are actually not nullable.
This is obvious for + - etc, since these keys are nullable only when applied to matrices.

Another example: RCL (i) is nullable if register I holds a matrix descriptor.
This is determined at "run-time" only, it's not a characteristic of the key sequence.

There are other subtle cases, for instance (assuming X holds a matrix descriptor):
" 2 / "     the / operation is nullable
" 0 / "     is not nullable and immediately produces Error 0.

In the same way, RCL A and similar operations immediately give an error (non nullable) if the indexes are outside the matrix dimensions.
Other nullable matrix operations can produce immediate errors too.

In conclusion, the HP-15C function cancel operates very differently from the 41C, because the goal is different.
It is not to check the function of a key (since 15C keys can't be redefined), but to check its action: which matrix cell is involved, or where will the result go.

I'm curious to know how functional simulators (contrary to micro-code level simulators) replicate these HP-15C behaviour details,

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
10-16-2024, 10:07 AM
Post: #15
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-16-2024 07:27 AM)J-F Garnier Wrote:  Indeed, the 8 extra operations/sequences are
+  -  *  /      when applied to one or two matrices
1/x              when applied to a matrix
MATRIX 5      matrix transpose-multiply
MATRIX 6      residual
MATRIX 9      LU decomposition and determinant
Find all posts by this user
Quote this message in a reply
10-16-2024, 11:54 AM
Post: #16
RE: 15C functions that can be cancelled with 'null' (quiz)
(10-16-2024 10:07 AM)naddy Wrote:  
(10-16-2024 07:27 AM)J-F Garnier Wrote:  MATRIX 9      LU decomposition and determinant

Thanks ! Corrected in my post.

J-f
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




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