|A bit of this and that...|
Message #5 Posted by Vieira, Luiz C. (Brazil) on 9 Apr 2004, 9:09 p.m.,
in response to message #4 by Raul Lion
Hola, Raul; como estás?
Just to add a few info about the HP67/HP41/HP42 set.
as mentioned, the HP41 is added 36 new functions when the 82104A (Card Reader) is attached. Three of them are not programmable and 26 (all starting with "7___") are meant to provide HP67/97 compatibility.
The main characteristic present in both HP67/97 is the memory organization. Both offer 26 registers, but only 16 (1-nibble addressing?) can be directly accessed: R0 to R9, RA to RE and RI. R0 to R9 are named "Primary" registers, while the "hidden" set of extra ten register is called "Secondary". It's common to see Pn (n form 0 to 9) as a reference to a primary register and Sn (n from 0 to 9) as a reference to a secondary register. When using the HP41 to run HP67/97 applications, all 26 registers are available. The relation is:
P0 to P9 R00 to R09
S0 to S9 R10 to R19
RA to RE R20 to R24
Index (RI) R25
The purpose of "7P<>S" in the HP41's Card Reader ROM is to exchange the contents of R00 to R09 (primary) for R10 to R19 (secondary). Both HP67 and HP97 have their equivalent to "7P<>S", and it actually exchanges primary with secondary contents. I think that an extra "7P<>S" program in an HP42S that allows this register contents changing might be a better (and faster) solution to run an HP41 "translated" programs in an HP42S. I also guess that GETM and PUTM are the best choices... d;^)
One interesting fact: statistic data is always saved in the "hidden" area, so you can use the "main register set" completely while collecting statistical data. I guess this is the main reason the HP41 stands for this particular statistic registers arrangement: from R11 to R16. It's necessary to keep in mind that programs written for the HP67/97 that use "P<>S" in order to access the statistics summations (S4 to S9) must be carefully inspected and updated. If you collect statistic data in the HP41 by using (SIGMA)+ and (SIGMA)- and execute "7P<>S", the statistic data will be positioned in the block from R01 to R06. When programs containing statistical functions are read from cards, the card reader automatically adds a "(SIGMA)REG 14" in order to set the statistical registers to the appropriate location. So , in order to keep the closest relationship between both calculators while dealing with statistics, it's necessary to manually execute "SIZE 026" and "(SIGMA)REG 14" prior to perform any manual operation.
Some important differences: GTO(i), GSB(i) and LBL
Both HP67/97 allow the use of 20 labels: LBL 0 to LBL 9, LBL A to LBL E and LBL a to LBL e. Each alpha label has its numeric equivalent for indirect purposes:
LBL GTO(i) GSB(i) (RI must contain)
A to E 10 to 14
a to e 15 to 19
The HP41 structure does not allow indirect addressing for local ALPHA labels (A to E and a to e). In order to allow the same functionality, the HP41 card reader firmware "translates" programs originally written to both HP67/97 and adds numeric equivalent labels before any HP67/97 alpha label when a program card is read. The translation process also replaces GTO IND 25 and XEQ IND 25 to GTO(i) and GSB(i), respectively.
Other minor differences are related to display control ("7DSP0" to "7DSP9", "7ENG", "7FIX" and "7SCI"), printing and automatic review functions, "7ISZ" and "7DSZ" and the rapid reverse branching/jumping. The HP67/97 allow the so called "rapid reverse branching", that accomplished when you store a negative number in RI and execute GTO(i) or GSB(i). This sort of jumping is not allowed in the HP41, and programs written for the HP67/97 that use this feature may be hard to be rewritten.
Well, this time I read some parts of the HP82104A and both HP67/97 manuals. I own an HP97 (no HP67) and sometimes I prefer using it to run its own programs.
I hope I did not confuse things up... And please, if there is anythign wrongly posted, let me know.
Cheers and success, Raul.
Edited: 10 Apr 2004, 2:28 a.m. after one or more responses were posted