|Additional misc 35s notes|
Message #1 Posted by Gene Wright on 12 July 2007, 3:36 p.m.
I do hope those interested will take the time to go through the learning modules on HP's site. However, there are a couple of things I'd like to point out.
1 ) The indirect data register packing program is really quite neat, if Jake and I say so ourselves. You allocate a number of indirect registers, which are initialized with 3-D vectors containing zeroes. To store a number into logical indirect register N, key the number, press ENTER key the register number N and XEQ the program label. To recall, simply enter N as a negative number. The other stack registers are preserved, so you can recall two numbers from the packed indirect registers sequentially and perform an operation on them. Why do this? Since indirect registers use 37 bytes EACH, using this program saves about 2/3 of that RAM for other uses.
2 ) The ability to use algebraic commands within RPN programs is really worth serious study by even the most diehard RPN-only programmer. For example, to multiply the value in X by 2 without losing the stack in a program, you can: perform a RDN, then the EQN REGT*2 will do the trick. To enter the REGT instruction, press RDN after you are in equation mode and move the cursor over to point to the T register and press ENTER. Very handy. You can do many, many calculations in a single program line this way without altering the stack. Another example: the remainder function RMDR can be put on a program line as an equation/algebraic object so that RMDR(A+B-REGT,COMB(C,REGX)) would compute the result (of whatever that does) and keep the previous X, Y, and Z values in Y, Z and T. That's an amazing new ability to keep stack values.
3 ) Matrix functions? Not included. However, there's already an HP35s port of the M1 through M5 and BE and BX routines from the PPC rom. These matrix utilities can form the basis for a row reduced matrix program similar to the RRM companion program found in the PPC ROM manual. A determinant of a 28x28 matrix should be possible (but why would you want to try it?). If these programs were modified to use the indirect data packing approach mentioned above, even larger matrices could be worked on.