Page 1 of 1

[DM15L M1B V25] DIM error when > 99

Posted: Thu Feb 22, 2018 5:52 pm
by Boub65
Hi all,
I was trying to compute (many) Pi decimals on my DM15L M1B.
I wanted to use as max registers as I could... but was stopped by an "Error 10" when trying to size the regs allocation to 200 regs.

try :
200
DIM (i)
then you get an "ERROR 10"

It should work because there is enough space in MEM when in M1B firmware (229 regs allowed).
So how do we use the M1B extra memory in regs rather than in programs?

BTW, It does work on my HP15C simulator (from http://hp-15c.homepage.t-online.de) when I put 229 regs mode in preferences.

Thanks,
Boubker.

Re: [DM15L M1B V25] DIM error when > 99

Posted: Thu Feb 22, 2018 10:14 pm
by rprosperi
Boub65 wrote:
Thu Feb 22, 2018 5:52 pm
I wanted to use as max registers as I could... but was stopped by an "Error 10" when trying to size the regs allocation to 200 regs.

try :
200
DIM (i)
then you get an "ERROR 10"
Storage registers and program memory are allocated from the same pool of memory. If you currently have program steps saved, it is likely that they are using some of the memory you want to allocate as registers, so the DM15L is telling you that you cannot configure 200 for storage as that amount is not currently available to allocate.

See Appendix C in the 15C User Manual.

Also, the MEM command ( [g] [RCL] ) will show you the current memory allocation (which App C will explain better than I can in a few words here).

Re: [DM15L M1B V25] DIM error when > 99

Posted: Thu Feb 22, 2018 10:32 pm
by Boub65
Bob,
Even with an empty calculator (0 program steps) it won't allow to set more than 99 registers.

Re: [DM15L M1B V25] DIM error when > 99

Posted: Thu Feb 22, 2018 11:21 pm
by rprosperi
Boub65 wrote:
Thu Feb 22, 2018 10:32 pm
Bob,
Even with an empty calculator (0 program steps) it won't allow to set more than 99 registers.
When empty (no program steps stored), what does MEM show, for default (after reset) and after setting to 99 registers?

Re: [DM15L M1B V25] DIM error when > 99

Posted: Thu Feb 22, 2018 11:39 pm
by Boub65
Reset, MEM shows 19 211 0-0
99 DIM (i), MEM shows 99 131 0-0

Re: [DM15L M1B V25] DIM error when > 99

Posted: Fri Feb 23, 2018 1:32 am
by rprosperi
Boub65 wrote:
Thu Feb 22, 2018 11:39 pm
Reset, MEM shows 19 211 0-0
99 DIM (i), MEM shows 99 131 0-0
I'm seeing the same thing on my DM15L, thanks for confirming.

I'd guess this means that when DM modified the 15C ROM to support larger memory, they did not (or did not correctly) change the required area to allow the Storage Register portion to accept more than 2 digits. It could be that all the internal code for handling register numbers is limited to 2 digits, but if so, this limitation should have been documented.

I agree, this appears to be either a bug in the M1B ROM, or this limitation was not documented.

Re: [DM15L M1B V25] DIM error when > 99

Posted: Sun Mar 18, 2018 3:33 pm
by grsbanks
It's a limitation that hadn't been documented.

The amount of patching of the ROM required to cater for a number of storage registers with 3 digits is... err... significant because everything that relates to a register number looks at the same fixed size piece of data to find the boundaries of the area reserved for storage registers.

This wouldn't have been a problem for the original HP-15C because there was only enough RAM in it to go up to 65 anyway.

Re: [DM15L M1B V25] DIM error when > 99

Posted: Sun Mar 18, 2018 3:58 pm
by J-F Garnier
Boub65 wrote:
Thu Feb 22, 2018 10:32 pm
Even with an empty calculator (0 program steps) it won't allow to set more than 99 registers.
In the same way, you can't create a matrix with more than 99 elements in a row or column.
For instance, to create a 200-element matrix, you can't do 1 ENTER 200 DIM A, but you can do 10 ENTER 20 DIM A.

I think too that it's not a bug, just a limitation of low importance.

More important is the (documented) limitation of matrix size to 8x8 for linear equations and inversion.

J-F

Re: [DM15L M1B V25] DIM error when > 99

Posted: Mon Mar 19, 2018 12:44 pm
by Boub65
grsbanks wrote:
Sun Mar 18, 2018 3:33 pm
It's a limitation that hadn't been documented.

The amount of patching of the ROM required to cater for a number of storage registers with 3 digits is... err... significant because everything that relates to a register number looks at the same fixed size piece of data to find the boundaries of the area reserved for storage registers.

This wouldn't have been a problem for the original HP-15C because there was only enough RAM in it to go up to 65 anyway.
Ok @grsbanks, I understand :(
So extra memory is only available to 99 registers and extra program steps.

Sincerely,
Boubker.

Re: [DM15L M1B V25] DIM error when > 99

Posted: Thu Jun 13, 2019 9:10 pm
by michaelzinn
Boub65 wrote:
Mon Mar 19, 2018 12:44 pm
grsbanks wrote:
Sun Mar 18, 2018 3:33 pm
It's a limitation that hadn't been documented.

The amount of patching of the ROM required to cater for a number of storage registers with 3 digits is... err... significant because everything that relates to a register number looks at the same fixed size piece of data to find the boundaries of the area reserved for storage registers.

This wouldn't have been a problem for the original HP-15C because there was only enough RAM in it to go up to 65 anyway.
Ok @grsbanks, I understand :(
So extra memory is only available to 99 registers and extra program steps.

Sincerely,
Boubker.
You could put your Pi digits in a 15x15 matrix, which would allow 225 or 2250 digits. You might need a modulo function:

Code: Select all

; y `mod` x
; uses 1 register

LBL D
X<>Y
STO .9
X<>Y
/
LstX
X<>Y
INT
*
RCL-.9
CHS
RTN