Post Reply 
HP-29C Neutral Operations
02-10-2024, 10:36 PM (This post was last modified: 02-10-2024 11:02 PM by teenix.)
Post: #1
HP-29C Neutral Operations
Hi all,

I was playing around with the 29C emulator and reading the owner's manual about Neutral operations which are not supposed to affect the stack lift status from a previous operation.

For example, pressing [Enter] disables the stack lift so the next number entry just overwrites the X register contents without lifting the stack. So, after pressing [Enter], if I key in a neutral operation like [f][Fix][3], the stack lift status should not change, so entering [3] should just overwrite the X register but is pushes the stack.

A key sequence might be:

[1] [Enter] (X=1, Y= 1, Z=0, T=0) Stack lift disabled

[f][FIX][3] (X=1, Y=1, Z=0, T=0) Supposedly still disabled

[4]

According to manual
(X=4, Y=1, Z-0, T=0)

In the emulator I get
(X=4, Y=1, Z=1, T=0)

This is the same issue for the 19C emulator, however the 25C works as the manual says.

Just wondering if this happens in a real 19C or 29C if anyone has the time.

At the HP microcode level for the 19C, when the STATUS register flag [9] is set, the stack lift is active. This flag does get set for [f][fix][n] with microcode instruction [1 -> s9] (Code $244) at ROM address $038. This same code appears at the same ROM address in the data I extracted from reading a 19C ROM chip (1818-0432).

cheers

Tony
Find all posts by this user
Quote this message in a reply
02-10-2024, 11:16 PM
Post: #2
RE: HP-29C Neutral Operations
On a real 29C, the result is the same as your emulator:

(X=4, Y=1, Z=1, T=0)

Indeed, all the other Neutral operations I tried also do the same thing.

Re-reading that section, just for sanity, indeed suggests the outcome you noted, so not sure what's happening here?!?

My 29C has had a 'brain transplant', now sporting an ACT from an HP-21, but I've found it acts perfectly standard in every other way, so while not really suspecting my machine, I do note it for transparency.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
02-10-2024, 11:27 PM (This post was last modified: 02-10-2024 11:33 PM by teenix.)
Post: #3
RE: HP-29C Neutral Operations
Hi Bob,

That was quick, thanks for the confirmation :-)

The 19C should be the same as well then.

The 65, 67 and Spice work as the 25 does as per the manual.

I don't think the ACT plays a part in this problem other than decoding the ROM instructions, so it seems the code [1 -> s9] is definitely there. I guess this may be a 29/19C error that could have been fixed in later ROMs, not sure.

cheers

Tony
Find all posts by this user
Quote this message in a reply
02-12-2024, 12:20 AM (This post was last modified: 02-12-2024 12:21 AM by Mike T..)
Post: #4
RE: HP-29C Neutral Operations
Tony,

I can confirm that my emulator gives the same results as yours for both the HP29C and the HP25C (stack neutral operations like f FIX n seem to behave differently in these two models). It will be interesting if someone with a real HP29C could confirm the behaviour on the real thing - particularly if it is the same as the HP25C!

Mike T.

HP21, HP25, HP32E, HP33C, HP34C, HP10C, HP11C, HP12C, HP32S, HP22S
Find all posts by this user
Quote this message in a reply
02-12-2024, 12:25 AM
Post: #5
RE: HP-29C Neutral Operations
(02-10-2024 11:16 PM)rprosperi Wrote:  My 29C has had a 'brain transplant', now sporting an ACT from an HP-21, but I've found it acts perfectly standard in every other way, so while not really suspecting my machine, I do note it for transparency.

Bob, do you know the 1820-nnnn part numbers of your 29C's original ACT and the replacement? I agree that this shouldn't have anything to do with the calculator behavior deviating from the documentation, but I'm interested in data points on both the original factory usage of the various ACT part numbers, and what is known to work.

According to the HP-97 Service Manual, some ACT versions are incompatible with early HP-97 ROMs (specifically the 1818-0225 ROM/anode driver, vs the replacement 1818-0267), and based on my study, the same is likely true for early HP-67 ROMs (old 1818-0227, replacement 1818-0268). Note that this is unrelated to the known transcendental bugs, which were fixed by replacing the common 67/97 math ROM/RAM chip pair used in both models, original 1818-0226 and 1818-0228 with replacement 1818-0551 and 1818-0550, respectively.

The same issue might have affected the 19C/29C; Despite what might be expected, the 19C/29C microcode is much closer to the 67/97 code than to the 25/25C. The 19C/29C ROM/anode drivers did undergo a change in production: 19C original ROM/anode driver p/n unkown, replacement 1818-0432; 29C original 1818-0378 ROM/anode driver, replacement 1818-0431.

Despite what might be expected, the 19C/29C microcode is much closer to the 67/97 code than to the 25/25C.

By my count there are at least seven different ACT part numbers for the "normal" PMOS ACT, and of course one for the special NMOS ACT of the HP-27. I believe there are at least minor functional differences between some part numbers, possibly beyond the one known to affecting the early 67/97 code. I need to get dumps of the early 67, 97, 19C, and 29C microcode for comparison.
Find all posts by this user
Quote this message in a reply
02-12-2024, 12:32 AM
Post: #6
RE: HP-29C Neutral Operations
(02-10-2024 11:27 PM)teenix Wrote:  I don't think the ACT plays a part in this problem other than decoding the ROM instructions, so it seems the code [1 -> s9] is definitely there. I guess this may be a 29/19C error that could have been fixed in later ROMs, not sure.
I see that there are 1 -> s9 instructions in both ROM 0 (in the 29C ROM/Anode driver), and in ROM/RAM 3 (1818-0379, shared between the 19C and 29C). As far as I'm aware, ROMRAM 3 did not change in later revs, but the ROM0/anode driver did. I don't know whether the dump I have is from the original ROM/anode driver (p/n 1818-0378), or from the later one (1818-0431).
Find all posts by this user
Quote this message in a reply
02-12-2024, 03:41 AM
Post: #7
RE: HP-29C Neutral Operations
In the 19C there are a few 1 -> s9 instructions

$02D
$031
$038
$F05
$FAB

I remodeled the 19C code and it now does as the owner's manual says, "but" because the code was designed as a lattice work to make the best use of the ROM space available, some parts of the code may intercept in the middle of other code snippets, so it is hard to predict if any changes produce hidden errors.

cheers

Tony
Find all posts by this user
Quote this message in a reply
02-12-2024, 03:44 AM
Post: #8
RE: HP-29C Neutral Operations
(02-12-2024 12:25 AM)brouhaha Wrote:  Bob, do you know the 1820-nnnn part numbers of your 29C's original ACT and the replacement? I agree that this shouldn't have anything to do with the calculator behavior deviating from the documentation, but I'm interested in data points on both the original factory usage of the various ACT part numbers, and what is known to work.

I don't know, but I suppose it's printed on the chip? I admit to not really wanting to open a perfectly operating 29C... maybe I'll get courageous...

[Background] I had a 29c with a fried ACT and sent it (long ago) to Bernhard along with an HP-21 to replace a '21 ACT he had on hand, used for the transplant. Bernhard was initially assuming it would not work as it was a relatively early 21, but to his surprise it worked flawlessly in all ways. I've used it for years and found it totally compatible, at least AFAICT.

If no one else checks and reports on behavior with another 29C/19C, by mid-week I can locate one of my 19Cs and give it a quick test.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
02-12-2024, 06:03 AM (This post was last modified: 02-12-2024 06:05 AM by dmh.)
Post: #9
RE: HP-29C Neutral Operations
My 29C (never opened/repaired while I've had it but unknown background) does the same as the emulator (ie X=4, Y=1, Z=1, T=0) after Tony's test above.

Serial number starts with 1806S.

(02-12-2024 03:44 AM)rprosperi Wrote:  
(02-12-2024 12:25 AM)brouhaha Wrote:  Bob, do you know the 1820-nnnn part numbers of your 29C's original ACT and the replacement? I agree that this shouldn't have anything to do with the calculator behavior deviating from the documentation, but I'm interested in data points on both the original factory usage of the various ACT part numbers, and what is known to work.

I don't know, but I suppose it's printed on the chip? I admit to not really wanting to open a perfectly operating 29C... maybe I'll get courageous...

[Background] I had a 29c with a fried ACT and sent it (long ago) to Bernhard along with an HP-21 to replace a '21 ACT he had on hand, used for the transplant. Bernhard was initially assuming it would not work as it was a relatively early 21, but to his surprise it worked flawlessly in all ways. I've used it for years and found it totally compatible, at least AFAICT.

If no one else checks and reports on behavior with another 29C/19C, by mid-week I can locate one of my 19Cs and give it a quick test.

Calculator Clique on YouTube
Visit this user's website Find all posts by this user
Quote this message in a reply
02-12-2024, 10:24 AM
Post: #10
RE: HP-29C Neutral Operations
(02-12-2024 06:03 AM)dmh Wrote:  My 29C (never opened/repaired while I've had it but unknown background) does the same as the emulator (ie X=4, Y=1, Z=1, T=0) after Tony's test above.

Serial number starts with 1806S.

Ditto. Serial #1711A03386

Remember kids, "In a democracy, you get the government you deserve."
Find all posts by this user
Quote this message in a reply
02-12-2024, 11:04 AM
Post: #11
RE: HP-29C Neutral Operations
Same here on my HP-19C serial 1803S...
Find all posts by this user
Quote this message in a reply
02-12-2024, 09:55 PM
Post: #12
RE: HP-29C Neutral Operations
Apologies for those who downloaded the modified source code for the 29C if had a flaw.

Attached is a zip file containing modified files for 19C and 29C to match the Neutral operations mentioned in the owner's manual.

Unfortunately, because of the structure of the original microcode, there may still exist problems when the code operates under certain circumstances. This would require analysis of every pathway in the code which would be a mammoth task, however I haven't noticed an issue.

cheers

Tony


Attached File(s)
.zip  HP19_29_Source.zip (Size: 55.36 KB / Downloads: 2)
Find all posts by this user
Quote this message in a reply
Post Reply 




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