HP Forums
DBNUT - The ROM builder project - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: DBNUT - The ROM builder project (/thread-2008.html)



DBNUT - The ROM builder project - cgh - 08-23-2014 07:34 PM

Hello,

For several monthes, I started to write a ROM builder for the HP-41C. What is it ? The context is that we have a lot of ROM available, but in several cases, we just use some of the functions provided by the ROM. Also, some ROM are incompatible with another (PANAME vs HEPAX, ADVANTAGE vs HP-ILDEV, ...) and last several may have same functions and when inserted at the same time, we duplicate the functions: EXT-IO and HPILDEV for the ALPHA manipulation, ...

Last year, I was interested by growing down the PANAME ROM by removing the HP-IL peripherals stuff (PLOTTER, VIDEO, PRINTER), and adding some functions for synthetic programming (RAMEDIT, ...) and finally enhance the ALPHA offer by some functions from the ALPHA BOX. I did the job by hand and I found that hardly.

Because I am a lazy guy, I found that it will be nice to "split" the ROM into functions (or group of-) and I started to develop a ROM builder able to pick-up some functions into a data-base and write a source code as input of an assembler. The aim is to reach as far as possible the granularity of the function, but sometimes, it is not possible, and so a source file contain a group of functions.
The most important job was to "split" the ROM into functions (with their sub-program) in separate NUT asm source files and also to modify and adapt them in a way to build a ROM... automatically. Once the ROM builder developped and functionnal, the remaining was the work on the ROM. At this time, my data-base is filled up to 500 functions taken from the following ROM:
- HPILDEV, EXT-IO, XFUNCS (+CX), CARDREADER,
- ASSEMBLER3, MLROM, PARIO, PPC-MELB, ZENROM,
- SANDBOX, SANDMATH, BUFFERLAND, ALPHABOX, TOOLBOX,
- Some code from myself (XTRABOX),
- and HEPAX (for the HEPAX/HEPAXA multi-functions scheme).
The choice I made when extracting the functions was only because these are I am using.

Now, the ROM builder, with a simple script or a command line, will build the ROM directly as .ROM file - Ready for Clonix. Note the ROM builder handles the packed format .MOD, .r41 (WWRambox) and .sda (Hepax).
I expect to distribute it in the coming days.

For the DBNUT (the data-base of functions), except for the ROM coming from HP stuff and the functions I wrote myself, the copyright is not really clear at this time.

So, now a ROM for Coconut may be released as a set of source code and a script to build it directly. If some user just have interest in a couple of functions, they just need to developp their own script to build their "cutomized" ROM.


And know, the limits are just your imagination !

Christophe


RE: [HP41] bldrom - The ROM builder project - d b - 08-23-2014 09:06 PM

(08-23-2014 07:34 PM)cgh Wrote:  Because I am a lazy guy

You clearly have a different definition of lazy than I do.


RE: [HP41] bldrom - The ROM builder project - cgh - 08-23-2014 11:09 PM

(08-23-2014 10:56 PM)Geir Isene Wrote:  I am certainly interested. And you are free to add my ROMs to any database you like. They are GPL-ed :-)

Hi Geir,

Welcome on board Smile

Thank you for your interest and your reply. I have also discussed and the only ROM not clear about copyright is the PANAME. The ROM within I started the project ! The DISASM4D is also under copyright but the functions I extracted are currently not working... So, no problem at this time. All other ROM are under GPL or HP.

Today, I have not splitted your ROM. Are you interested to help me to do it, or to do it yourself ? Because I do not have a lot of time, and my aim is also that developpers deliver their ROM directly.

Christophe


RE: [HP41] bldrom - The ROM builder project - Sylvain Cote - 08-23-2014 11:21 PM

(08-23-2014 07:34 PM)cgh Wrote:  So, if you are interested by this project, please let me know.
A very nice idea, I am interested! 8-)
Sylvain


RE: [HP41] bldrom - The ROM builder project - Diego Diaz - 08-24-2014 01:12 AM

Agreed. This sounds *really* interesting! :-)

Look forward to reading more details.

Diego.


RE: [HP41] bldrom - The ROM builder project - Ángel Martin - 08-24-2014 05:33 AM

(08-23-2014 07:34 PM)cgh Wrote:  At this time, my data-base is filled up to 500 functions taken from the following ROM:

- SANDBOX, SANDMATH, BUFFERLAND, ALPHABOX, TOOLBOX,

So, now a ROM for Coconut may be released as a set of source code and a script to build it directly. If some user just have interest in a couple of functions, they just need to developp their own script to build their "cutomized" ROM.

Interesting to say the least, it's like having an "a la carte" module taking your functions from source chunks of source code. Two difficulties that's you'll be likely to encounter are:

1. sometimes the source chunks will be very large, as functions are sub-routinized and imbricated in complex dependencies. Think for instance on the Polling points, or the bank-switched calls...

2. as a result of that the redundancy will be unavoidable, thus using up valuable space. Also you mentioned the XROM and the FAT order will be different from the original arrangements, which in some instances it has a bearing in the functionality as well.

The amount of testing required is not to be underestimated but sure it's a fun and interesting project, hope to see some examples soon - thanks for sharing.

Cheers,
'AM


RE: [HP41] bldrom - The ROM builder project - Raymond Del Tondo - 08-25-2014 08:26 PM

(08-24-2014 06:37 AM)cgh Wrote:  My dream: the CCD OS as a source code... that you can put into your ROM with a simple "-i CCDOS.SRC"
Hi, actually the CCD OS exists as single closed block, see the CCD OS/X . Angel made a variation of the CCD OS/X, and documented the source text disassembled from the CCD OS/X core. This also shows the various dependencies (code and addresses). However since the CCD OS core is a big block of code, which includes some local address-dependent parts, and which will take about half of the space within a single 4K block, it will rather be that you add some utility functions to a CCD OS ROM based on the CCD OS/X, than adding the CCD OS core to another ROM;-)

Cheers


RE: [HP41] bldrom - The ROM builder project - Ángel Martin - 08-26-2014 05:23 AM

(08-25-2014 08:26 PM)Raymond Del Tondo Wrote:  ... it will rather be that you add some utility functions to a CCD OS ROM based on the CCD OS/X, than adding the CCD OS core to another ROM;-)

Absolutely true; any attempt to break up the CCD OS/X functionality into more modular code segments and objects is not only going to be of a paramount effort, but will do doubt increase its size dramatically.

Which of course does not reduce the attractiveness of the "a la carte" concept - just sets some of its natural boundaries, like with any other approach. The ICODE from Paul Cooper comes to mind, as it somehow has a similar conceptual sources.


RE: [HP41] bldrom - The ROM builder project - Massimo Gnerucci - 09-02-2014 07:23 PM

Thank you very much, Christophe!


RE: DBNUT - The ROM builder project - David Hayden - 02-15-2018 10:54 PM

My interest is, I like to think, more widespread.

I have a 41CL. It's a wonderful machine with plenty of room for additional ROM images. I also have a collection of programs in .raw files. It would be great to be able to load them onto the 41CL.

So what I'd really like is a program that can take a collection of ordinary FOCAL programs and create a ROM image from them. Is that something that your project could do?


RE: DBNUT - The ROM builder project - cgh - 02-16-2018 09:42 AM

(02-15-2018 10:54 PM)David Hayden Wrote:  My interest is, I like to think, more widespread.

I have a 41CL. It's a wonderful machine with plenty of room for additional ROM images. I also have a collection of programs in .raw files. It would be great to be able to load them onto the 41CL.

So what I'd really like is a program that can take a collection of ordinary FOCAL programs and create a ROM image from them. Is that something that your project could do?

Currently, not. My ROM builder (asmnut/romnut) only deals with MCode. But, it may a new improvement for the next release. Thanks for the idea Smile

The main issue is that I do not understand how FOCAL code is "compiled" into ROM. Some bits (8bits to 10bits) are set to "1" is the 8th and 9th bits, and I do not know why.
Also, I do not know how the linkage is done between several FOCAL program in ROM. There are some pointers added into the ROM, and I do not how that works.
If someone can give me more information about compiling FOCAL code into a ROM image, this will be very nice.


RE: DBNUT - The ROM builder project - David Hayden - 02-25-2018 01:14 PM

(02-16-2018 11:57 AM)Geir Isene Wrote:  This is actually fairly easy to do with Håkan Thörngren's NutStudio.
NutStudio sounds great but I can't seem to find it. The links that I've found are all broken. Does anyone know where it might be downloaded?

Dave