MLDL2000 Manager software: new BETA version


I have just published a new BETA version of the M2kM software. It can be downloaded from my website .

The disassembler is completely changed internally, and the listing allows for much more customization. Apart from the disassembler there are no other changes in M2kM (I hope). As this is still a BETA version, please give me you feedback about the disassembler. Be aware that the disassembler also works if you do not have an MLDL2000.

The one thing I have to add to the disassembler is full SDK41 compatible disassembly, that will be part of the final release.



Thanks, Meindert;

will give it a try and let you know ASAP.

In time: many of the original X-Functions do not work in the MLDL2000 'emulation': ALENG works but ANUM, ATOX works but AROT... I have a complete Work/NoWork list, and I did not include the ones dealing with X-Memory, of course. Is it possible that Page #3 has some kind of hardware disabling in the HP41C/CV scheme? Or should some of the 'unreported' X-Memory areas exist and are used as scratch pad for these functions? Do you happen to know something about it?


Luiz (Brazil)

(so far, MLDL2018A is working flawlessly...)



I suspect that this is due to the CX bankswitching, which is somewhat different from the external ports. The MLDL2000 switches the banks in pairs, so bank 2 and 3 are switched together, and 4 and 5.
I would first try to fill all banks of a page with the same contents, and then try again, let me know if this works (or not) and what the offending functions are.




I have checked the pages for the HP41CX: Bank 2 of Page 3 (CX XFuncftions ROM) maps to Bank 2 of Page 5, and that is not done in the MLDL2000. Keep a copy of Page 5, Bank 2 also in Page 3, Bank2.
My documentation states that bankswitching is not supported in pages <6, but looking at my code it should work in exactly the same way as the bankswitching in the higher ports.

Good luck with further testing!


Edited: 10 Jan 2010, 12:17 p.m.


Hi, Meindert;

Sorry, I did not notice you wrote a complementary message! I read Monty´s follow-up and wrote him an answer. Based on what you observed, my conclusions were wrong and the problem seems easier to be solved. I will test your configuration and post results later

Imagine hacking the HP41 O.S... What about adding Angel´s complex features and HEPAX functionality altogether in the first pages, as part of the system? If the OS can be rewritten with the use of bank switching, chances are that it would fit in the first page alone. Well, if the guys who wrote the O.S. did not write it so, chances are that it is not actually a good idea, though.

So much for the dreaming, let me get back to my teacher activities (have not concluded the end-of-semester paperwork yet... It sucks big time!)


Luiz (Brazil)


It may have something to do with the fact the the C/CV mainframe

ROMs start searching for functions in Page 4, completely

ignoring Page 3?



Hi, Monte;

once I loaded pages 0, 1 and 2 of the CX mainframe in a CV mainboard through MLDL2000, I considered that the O.S. reads page #3 as it addresses it through the system software. Fact is when I first used MLDL2000 (some years ago) I loaded page #3 of some CV units (coco- and halfnut) with some different ROM images. These ROM list their contents with CAT 2 (hence the system 'sees' it) but once you try to execute anything there you get NONEXISTENT.

When I loaded the CX ROM set (few weeks ago) in the MLDL2000 and powered a coconut CV without the ROM IC´s with it, it behaves accordingly, as a CX, except that the time functions return blank display and X-memory functions either return file-not-found errors, as expected, or no reaction at all (EMDIR, for example, always returns [124.0000] to the X-register and no message at all, like [DIR EMPTY]). Many features, like program size in CAT1, ROM headings in CAT 2 and the fully-operating CAT 6, were observed.

When I decided to test the extended functions that might work, the following ones did not work at all:

CLRGX (CX only, right?)
X...NN (none of these)
These ones worked fone:
SigmaREG? (also a CX-only, and works!)
I could see no pattern that might connect each of the working (or the nonworking) functions with each other. The only thing I could think of is the use of RAM scratch area that was not there. You see, I never accepted too well the concept of X-Memory discontinuity as physical, I aways took it as existing RAM area for system scratch in some X-Function/Memory 'maneuvers'. I'd gladly accept any other concise explanation, though.

This is all I can remember now. I did not have the time to test the emulation in an actual CX mainboard this weekend, will do it in the days ahead. I am trying to repair a faulty one for ages (I actually have it waiting for an actual definitive go-nogo repair procedure), and will soon post about the results here.


Luiz (Brazil)

Edited: 10 Jan 2010, 2:57 p.m.



As to your first question, the CAT function searches everything

from Page 3 on, but the XEQ function starts at page 4 (C/CV).

This is why a Page 3 function shows up but can't be executed.

I ran into this issue when writing functions for my new design

and it took me a while, watching a trace, to figure out the

problem. I ended up having to map my new functions into Page 7

at startup.

As far as the CX X functiuons, everything shows up in the CAT

because the function entries are all in Page 3. However, most

of the functions jump fairly quickly to an address in Page 5,

after switching to Bank 2. So, if the bank switching isn't

done correctly the code will end up in neverland. That's why

most of your CX X functions aren't working. The ones that do

work remain in Page 3. For proper operation, the bank select

for Page 5 must be updated while executing in either Page 3 or

Page 5, but only Page 5 actually has multiple banks.

The CAT function is only capable of searching Bank 1, and that

is why it has to be done this way.

Hope that clarifies things,



Monte is totally correct here. Luiz, I do not expect the MLDL2000 to work in this configuration. Remember, it always switches the odd and even banks. That means that bank 2 of Page 2 must also have valid contents (system ROM 2) when ENBANK is executed in Page 3 as Page 2 will also be switched.

In the case of the 41CX, bank 5 is also switched when ENBANK is executed while in Page 3, and the MLDL2000 will fail to do this. New firmware is required to implement and it is not very difficult, but I have no time to do that this week (travelling again).




And I just noticed that the last CX OS code ( Rev NFL) jumps

directly into Page 3 in several spots. Clearly the authors

needed more space than was available in Pages 0-2. This means

that the CX X functions must be available in Page 3 or "bad

things" will likely happen.



Greetings Meindert - I just downloaded the newer code and will take it for a spin in a couple of days - feedback will come then.

Thanks for keeping the 41-flame on!

Possibly Related Threads...
Thread Author Replies Views Last Post
  Hook-µP software by Rush Systems Lute Kamstra 5 1,583 11-29-2013, 01:30 AM
Last Post: Lute Kamstra
  Prime: Pedagoguery Software pop up banner Matt Kernal 1 969 10-20-2013, 01:54 AM
Last Post: Mic
  latest prime software release? Geoff Quickfall 3 1,142 10-12-2013, 03:53 PM
Last Post: Tim Wessman
  Does the HP Prime software only work with Win 7/ 8 ? Michael de Estrada 3 1,167 10-12-2013, 02:52 PM
Last Post: John Ioannidis
  Prime Software Buttons kris223 2 932 09-21-2013, 08:19 PM
Last Post: Jonathan Cameron
  Latest HP Prime "emulator" software available :) Adrien Bertrand 46 8,163 08-21-2013, 10:48 PM
Last Post: Joe Horn
  New website address for Meindert Kuipers' MLDL2000? Garth Wilson 2 967 08-11-2013, 01:43 PM
Last Post: Meindert Kuipers
  hp 35s programs in software library Andrew Nikitin 7 1,631 05-30-2013, 11:55 AM
Last Post: Dave Hicks
  HP prime: fractal software Cristian Arezzini 5 1,321 05-29-2013, 07:43 AM
Last Post: Reth
  Software Library Eddie W. Shore 1 866 04-10-2013, 11:07 AM
Last Post: Ken Shaw

Forum Jump: