The Museum of HP Calculators

HP Forum Archive 21

[ Return to Index | Top of Index ]

35S I & J registers
Message #1 Posted by Matt Agajanian on 2 Mar 2012, 9:51 p.m.

Hello all.

Given that the 35S has two registers which can be used for indirect addressing, are these the registers between H and K or are these special registers independent of the A-Z registers?

      
Re: 35S I & J registers
Message #2 Posted by Kiyoshi Akima on 3 Mar 2012, 1:58 a.m.,
in response to message #1 by Matt Agajanian

They're the registers between H and K.

      
Re: 35S I & J registers
Message #3 Posted by Matt Agajanian on 3 Mar 2012, 7:34 a.m.,
in response to message #1 by Matt Agajanian

So, if I write a program to indirectly address registers and include DSE/ISG looping, I should create the program to indirectly address registers -11 and below (or -8 and above) to avoid overwriting my looping register in an STO+/-/* (i) or (j) command.

Edited: 3 Mar 2012, 7:47 a.m.

            
Re: 35S I & J registers
Message #4 Posted by Marcus von Cube, Germany on 3 Mar 2012, 8:14 a.m.,
in response to message #3 by Matt Agajanian

You better address the unnamed registers with I or J. This gives you a lot of addressable space without interfering with the indexes.

                  
Re: 35S I & J registers
Message #5 Posted by Matt Agajanian on 3 Mar 2012, 9:52 p.m.,
in response to message #4 by Marcus von Cube, Germany

That sounds better than my idea. Thanks for the tip.

            
Re: 35S I & J registers
Message #6 Posted by Bart (UK) on 5 Mar 2012, 5:14 a.m.,
in response to message #3 by Matt Agajanian

Memory management: something to remember when using indirect registers, is that memory gets assigned for all indirect registers up to the highest register used, even if the lower ones are not used. E.g. using indirect register 40 will result in memory being allocated for 0 to 39 as well. You can quickly use a lot of memory this way (write something in register 800 and do a mem check (I have ~10k free and the highest I can use is 280)). So use only the highest number really needed.

To clear indirect registers and regain memory:
1) CLVARx (BlueShift CLEAR 6): clears all indirect registers above the number entered (e.g. CLVARx 040 will clear 41 and higher).
2) Implication of (1) is that CLVARx 000 will clear registers 1 and above, but not 0 which is assigned too (and negative no.'s cannot be entered). So to get the memory back for that, you have to manually clear it by doing 0, STO I, STO (I).

Edited: 5 Mar 2012, 6:33 a.m.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall