Re: 41CV memory & HP-15C "DIM (i)" Message #7 Posted by Karl Schneider on 16 Jan 2007, 4:26 p.m., in response to message #5 by Les Wright
I'll confirm and elaborate upon what Les and Bram said.
It's significant that the original HP-41C had only 64 registers, part of the last of which was permanently de-allocated for the .END. instruction, leaving 63 full registers available. So, the default allocation allowed 46 full free registers for programming, and reserved 17 registers (R00-R16) for data. This is the allocation obtained by "SIZE 018".
The HP-41CV is functionally equivalent to an HP-41C with an HP82170A Quad Memory module, which adds 4 x 64 = 256 registers of memory. 63 + 256 = 319 total registers were made available.
The initial default allocation of 46 registers for programming was not changed for the HP-41CV, so the user was given 273 data registers, of which the last 173 were only indirectly addressible. This made little sense, so the initial allocation for the HP-41CX was changed to 100 data registers (all directly addressible), leaving 219 registers for programming.
Alles klar? :-)
Side notes:
- A useful function "SIZE?" is built into the HP-41CX, and is available on the HP 82180A X-functions module for the HP-41C/CV. It will tell the user (or a program) how many registers are allocated for data.
- The "DIM (i)" function on the HP-15C -- analagous to "SIZE" -- works a bit differently. The user specifies the highest-numbered register to be allocated for data, rather than the number of registers. The HP-15C has also 64 allocatable registers, plus the non-allocatable R0, R1, and I. So, the default setting "19 DIM (i)" alocates 20 numbered data registers and 46 registers for programming. Each of the 20 registers is directly addressible (using .0 through .9 for the last ten registers). R0 and R1 are non-allocatable because they are used for matrix indices. So, if all 64 allocatable registers are utilized to store an 8x8 matrix, it can be accessed in the normal manner.
-- KS
Edited: 16 Jan 2007, 10:15 p.m.
|