[DM15L M1B V25] DIM error when > 99

If you think you've found a bug in one of these machines, post about it here indicating the steps you perform in order to reproduce it.

Please prefix your topic with the model number in question and firmware version this way:

[DM16 V22] CHS gives unexpected results
Post Reply
Boub65
Posts: 231
Joined: Tue Sep 12, 2017 4:34 pm
Location: Rabat, Morocco

[DM15L M1B V25] DIM error when > 99

Post 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.
Sincèrement, Sincerely, 73,
Boubker

DM15L, DM41L, DM42 #00855 (domes upgraded), DM41X #00707
HP48SX (with dark screen), HP42s, HP32SII (1990 with fraction bug), HP41C/CV
TI-89 titanium, CASIO fx-cg50 and Numworks (to play with micropython)
rprosperi
Posts: 1703
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

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

Post 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).
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
Boub65
Posts: 231
Joined: Tue Sep 12, 2017 4:34 pm
Location: Rabat, Morocco

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

Post by Boub65 »

Bob,
Even with an empty calculator (0 program steps) it won't allow to set more than 99 registers.
Sincèrement, Sincerely, 73,
Boubker

DM15L, DM41L, DM42 #00855 (domes upgraded), DM41X #00707
HP48SX (with dark screen), HP42s, HP32SII (1990 with fraction bug), HP41C/CV
TI-89 titanium, CASIO fx-cg50 and Numworks (to play with micropython)
rprosperi
Posts: 1703
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

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

Post 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?
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
Boub65
Posts: 231
Joined: Tue Sep 12, 2017 4:34 pm
Location: Rabat, Morocco

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

Post by Boub65 »

Reset, MEM shows 19 211 0-0
99 DIM (i), MEM shows 99 131 0-0
Sincèrement, Sincerely, 73,
Boubker

DM15L, DM41L, DM42 #00855 (domes upgraded), DM41X #00707
HP48SX (with dark screen), HP42s, HP32SII (1990 with fraction bug), HP41C/CV
TI-89 titanium, CASIO fx-cg50 and Numworks (to play with micropython)
rprosperi
Posts: 1703
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

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

Post 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.
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
grsbanks
Posts: 1122
Joined: Tue Apr 25, 2017 11:23 am
Location: Preston, Lancs, UK
Contact:

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

Post 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.
There are only 10 kinds of people in the world: those who understand binary and those who do not.
J-F Garnier
Posts: 47
Joined: Sun Mar 11, 2018 5:37 pm
Location: France

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

Post 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
Last edited by J-F Garnier on Sun Mar 25, 2018 9:08 pm, edited 1 time in total.
Boub65
Posts: 231
Joined: Tue Sep 12, 2017 4:34 pm
Location: Rabat, Morocco

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

Post 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.
Sincèrement, Sincerely, 73,
Boubker

DM15L, DM41L, DM42 #00855 (domes upgraded), DM41X #00707
HP48SX (with dark screen), HP42s, HP32SII (1990 with fraction bug), HP41C/CV
TI-89 titanium, CASIO fx-cg50 and Numworks (to play with micropython)
michaelzinn
Posts: 41
Joined: Tue Apr 10, 2018 11:34 pm

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

Post 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
Post Reply