|Re: The 20s is apparently faster than the 32sii (but not the 32s)|
Message #2 Posted by Karl Schneider on 3 Jan 2010, 4:22 a.m.,
in response to message #1 by Dave Britten
My HP-32S (1990 model with recessed display) takes 56 seconds to obtain all four factors.
Since it lacks the "<=" and ">=" tests, a small workaround was necessary:
Z24 x<=y? Z24 x>y?
Z25 GTO Z Z25 GTO V
Z26 RCL X Z26 GTO Z
Z27 STO F V01 LBL V
Z28 XEQ X V02 RCL X
Z29 CLx V03 STO F
Z30 RTN V04 XEQ X
Here are my checksums on the HP-32S, which are not the same as those on the HP-32SII for the same instructions:
LBL F 714D 10.5
LBL Y 0116 19.5
LBL Z E93C 39.0
LBL V 721A 9.0
LBL W 63E1 15.0
LBL X 5878 15.0
Between two models having the same microprocessor, why does the more-advanced one tend to run somewhat slower? For example, it has also been claimed that the HP-11C is marginally faster than the HP-15C. I speculate that the lengthier microcode of the more-advanced models causes machine-level instructions to take a bit longer to be found from op-codes. However, more-knowledgeable folks might have a better answer.
Thinking about this a bit more, I'd assume that the ROM contents include some kind of index -- an address lookup table that points to where the instructions for a given op-code reside in ROM. That would speed things up, but access is probably still a bit slowed by larger ROM contents.
Another factor is overloading of operations. Consider the HP-11C versus the HP-15C:
On the HP-11C, "*" only multiplies two real-valued scalars.
On the HP-15C, "*" can multiply two real-valued scalars, two complex-valued scalars, two matrices, or a real scalar and a matrix. Under the microcode for "*" (hex op-code FC), conditional tests for the types of both arguments and status of flag 8 must be performed before the multiplication is done.
Regarding the HP-32S and HP-32SII, the display and memory management are almost the same. The difference in functionality is mostly the HP-32SII's equations and fractions -- not nearly as substantial as the difference between the HP-11C and the HP-15C. Thus, the difference in execution time between 76-80 seconds (HP-32SII) and 56 seconds (HP-32S) is surprising to me. I had 207 bytes of other programming in the HP-32S at the time of the test, so I can't necessarily credit fast GOTO's.
Edited: 4 Jan 2010, 1:12 a.m. after one or more responses were posted