I got P41CX to support more ROMs !


Hi all,

Since Charles Lee does not seem to develop P41CX (the HP-41CX emulator for Palmos) anymore, and not being able to add your own ROMs besides those provided is frustrating, I hacked the Rom manager of P41CX with a Hex editor, and I managed to get it to support the following modules, on top of the ROMs already included:


- CCD was replaced by CCD PLUS from Angel Martin, so that there is no conflict with the Advantage module,

- CCD OS/X is also provided as an alternative,

- Sandmath/41Z/Toolbox/Alpha Roms from Angel Martin; I did not include Sandmath 3D support, since unfortunately P41CX does not support lowercase characters, used by Sandbox menu. Alsos, these 4 Roms provide additional functionality to the Sandbox; they also use more ports, but since P41CX allows you to hot swap modules with different memory banks, this is no big deal (you are unlikely to need of 4 of them within the same program...),

- David Assembler + Labels.

To do this, since the module list if harcoded, I had to remove the Structure module (a 2-page one which I don't use) and the Math module (which is pretty useless when you have the Advantage + Sandmath). To still use the missing modules, I created another instance of the ROM manager with a different name. Not very pretty, but no much choice...

I believe that anyway this is the best set of ROMs one can dream of; I would also like the HEPAX of course, but P41CX does not support it.

If you are interested with the hacked version, just email me and I will provide it to you. I may also be able to include your favourite ROM (at the expense of another ROM) if it is not already there.




P41CX is under the GPL (since it uses code from Eric Smith's nsim). You should be able to ask the author for a copy of the latest source code and recompile it to add support for more roms.


I believe that the ROM support is proprietary. It's how the author makes money off of (someone else's) GPLd code.

However, given the intimate association of the ROM management with the calculator proper, my guess is that keeping the source to the former closed would be a violation of the GPL. It depends on whether the ROM manager uses any of the calculator's code. (I believe it's a distinct application, so there may not be a linking issue.)

Whatever. !reenignE esreveR


It's how the author makes money off of (someone else's) GPLd code.

I expect that Mr. Lee has made far more money from my code than I have, though I don't know that for sure. However, I am quite grateful to those who have contributed to support Nonpareil development, and I feel bad that it's taking me so long to release a new version. This is due to having very little free time, between work and classes. Progress is still being made, but very slowly.




Just a few comments on licensing:

1/By offering my "hack", I am not violating Charles Lee's licensing: the ROM manager still only offers the Advantage and Games modules to non registered users (this is done through a library that I did not touch).

2/I could not get in touch with Charles Lee to get formal authorization to hack his program, but I know he has granted this authorization to somebody else in the past. I discussed quite often with Charles a few years back, and I don't think he would mind. He himself intended to provide more flexible ROM management.

3/Regarding Eric's comments: P41CX is indeed based on nsim, but adds significant value to it: Charles has made it a full-blown Palm application, with skins, Printing to memo, memory management, program compilation, CX functions, etc. I know for a fact that he has put a lot of time & effort in this program, and to me, these efforts are worth the price. I don't think there is any violation of the GNU license here, given this added value - correct me if I am wrong ?

Thanks and regards,



I was immoderate in suggesting there was a GPL violation. In fact, I have no idea if there is or not. I apologize for the overstatement.

However much value is added, the issue is access to source of works derived from GPL code. I'm not an expert on this, but I know that the guidelines inside one big company direct the programmer to avoid static linking of GPL code with proprietary. This is because of the "mere aggregation" language of the GPLv2. It's thought that dynamic linking may get around the obligation to providse source, but this is controversial. But if Mr Lee has avoided linking completely, and the fact that the module manager is a seperate app indicates he has, and as long as he hasn't used the nsim source code in some other direct way, then he's probably in the clear with his module manager as far as the GPL is concerned.

I know that the P41CX source code is available. Does it include the enhancements you spoke of? If so, then Mr. Lee has properly contributed his enhancements back to the community as the GPL requires him to. Others can take the combination of what Eric and he wrote, and leverage it to make even better software in the future.



But if Mr Lee has avoided linking completely, and the fact that the module manager is a seperate app indicates he has,

Now we go even further into semantics. The first issue was whether whether dynamic linking consitutes linking for GPL purposes, and that is already somewhat controversial.

But beyond that, can structuring a program as two "applications" that share an API specifically intended only for interaction between those two programs, but that don't happen to use the host operating systems' dynamic linking facility to implement that API, be nonetheless considered "dynamic linking"? I would argue that it is.

Dynamic linking can occur without the use of any specific operating system facility, just as regular linking can be performed by any program that happens to implement a linking function, not only by some particular "blessed" system linker.

I know that the P41CX source code is available. Does it include the enhancements you spoke of?

As far as I know, it does.

Others can take the combination of what Eric and he wrote, and leverage it to make even better software in the future.

Which means that it is entirely possible for someone to create an alternate ROM manager and make it publicly available, provided that it doesn't contain any of Mr. Lee's copyrighted code.


Whether there is added value, or the amount of that added value (either in absolute terms or in relation to the original value) is completely irrelevant to whether the GPL license conditions are met. The fact is that P41CX and P41CV are derived from my GPL licensed code, and are subject to all the requirements of the GPL.

I'm not certain whether P41CX (and P41CV) meet the GPL license requiirements or not, which is why I have not made any accusations. Charles Lee does give out the base P41CX source code on request. But as far as I know, he does not give out the source code of the ROM Manager. Whether this violates the GPL depends on whether dynamic linking is deemed to create a derived work. The FSF claims that it does.

Personally, if I were selling a work based on someone else's GPL'd code, I'd offer some split of the proceeds with them. But that is definitely not a GPL requirement, it's just something that I think would seem fair. The requirement is only that the complete source code of derived works be made available.

Possibly Related Threads...
Thread Author Replies Views Last Post
  old HP roms Olivier De Smet 3 1,162 08-21-2013, 04:54 PM
Last Post: Namir
  Roms ... Olivier De Smet 6 1,580 03-26-2013, 07:13 PM
Last Post: Eric Smith
  OT: to support the polls Alex S 3 991 12-07-2012, 07:56 AM
Last Post: Walter B
  Two PPC ROMs with the same serial# Michael Craig 10 2,124 06-25-2012, 12:10 PM
Last Post: Jake Schwartz
  USB support for the 48GX? Matt Agajanian 4 1,094 05-26-2012, 03:45 PM
Last Post: Tom Sauntry
  Acrilic Support for the HP-2225 printer dinamarco 0 523 10-24-2011, 11:41 AM
Last Post: dinamarco
  Is HP tech support clueless ? Michael de Estrada 30 4,998 09-29-2011, 02:45 PM
Last Post: Tim Wessman
  Disassembly of HP41C ROMs Prabhu Bhooplapur 3 1,142 06-09-2011, 03:23 AM
Last Post: Prabhu Bhooplapur
  Documentation for ROMs in the 41CL ... link included...help needed Gene Wright 4 1,176 05-28-2011, 09:08 AM
Last Post: Geir Isene
  Some minimal information about roms in the upcoming 41CL library... Gene Wright 6 1,567 05-25-2011, 06:13 PM
Last Post: Monte Dalrymple

Forum Jump: