Post Reply 
Help identifying 41C custom ROM module
02-17-2022, 09:39 AM
Post: #1
Help identifying 41C custom ROM module
As per the video below, does anyone know anything about this module?

TIA, dmh



Find all posts by this user
Quote this message in a reply
02-17-2022, 01:30 PM
Post: #2
RE: Help identifying 41C custom ROM module
The 2 best places to look are:

Matthias' 41 ROM Database, here:

http://www.hp-collection.org/41database.html

and the ROM listing in Monte's 41CL manual, available here:

http://www.systemyde.com/pdf/sy41cl.pdf

In Mathias's database, it's probably easiest to search by ROM ID, assuming you can get that with Diags or another utility module (PPC, ZENROM, etc.)

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
02-18-2022, 01:29 AM (This post was last modified: 02-18-2022 01:30 AM by dmh.)
Post: #3
RE: Help identifying 41C custom ROM module
The module uses XROM ID 15 and 16 and I can't find it in these places.

I guess I'll extract it and have a closer look.

(02-17-2022 01:30 PM)rprosperi Wrote:  The 2 best places to look are:

Matthias' 41 ROM Database, here:

http://www.hp-collection.org/41database.html

and the ROM listing in Monte's 41CL manual, available here:

http://www.systemyde.com/pdf/sy41cl.pdf

In Mathias's database, it's probably easiest to search by ROM ID, assuming you can get that with Diags or another utility module (PPC, ZENROM, etc.)
Find all posts by this user
Quote this message in a reply
02-18-2022, 02:53 AM
Post: #4
RE: Help identifying 41C custom ROM module
(02-18-2022 01:29 AM)dmh Wrote:  The module uses XROM ID 15 and 16 and I can't find it in these places.

I guess I'll extract it and have a closer look.

Since it's an EPROM, its possible that it's a one-of-a-kind module. OTOH, there are both FOCAL and MCODE routines in there, so it's not just a bunch of user programs thrown together into a module in an MLDL or anything like that. It will be interesting to see what you find, but it's not easy to figure out what it does by simply examining the code.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
02-18-2022, 04:03 AM
Post: #5
RE: Help identifying 41C custom ROM module
Here's a copy of the catalog for the module.

Code:
**K-41EC**  
`P          
`>          
`           
`RR         
`VS         
`VV         
`a          
`7          
`DL         
`RS         
`FR         
`PXM        
`GK         
`DS         
`FSR        
`LR         
`ERR        
`F+         
`ER         
`K?         
`NF         
`FSs        
`SPT        
`TV         
`SRS        
`SC         
`RES        
`DI         
`DC         
`=C         
`RE         
`TH         
`RA         
AVA         
C55         
S55         
PC          
PF          
UPC         
UPF         
UPFS        
NREM        
`AI         
`GEO        
`TSI        
`TOP        
`TX         
`TRN        
`KLR        
`VTC        
`GF         
`CFL        
`JN         
`IB         
`DDL        
`DO         
`TF         
`XYZ        
`MBD        
`A-A        
`CS         
`AS         
`NB         
`IN         
`EDP
Find all posts by this user
Quote this message in a reply
02-18-2022, 05:09 AM
Post: #6
RE: Help identifying 41C custom ROM module
So what is the best way to extract the FOCAL and machine code from the ROM and making it human readable?

I ended up using lifutils and then rom2raw and there's lots of XROM calls and it doesn't appear to have a mapping option to the actual name to make it more readable like decomp41 and decomp41 just lists the first program.

Interestingly the FOCAL code also includes synthetic programming.

I want to extract and disassemble the machine code too.

Sample output from rom2raw:
Code:
37▸LBL "JN"
38 CLA
39 ARCL 00
40 ALENG
41 X=0?
42 STO 00
43 RCL 00
44 SIGN
45 XROM 25,32                 Non-local XROM
46 "◆◆◆)◆α◆"
47 X<> M                      Synthetic
48 STO d                      Synthetic
49 CLX
50 X<> M                      Synthetic
51 XROM 25,45                 Non-local XROM
52 SF 25
53 ARCL L
54 XROM 25,15                 Non-local XROM
55 FC? 25
56 GTO 08
57 "JOB:""
Find all posts by this user
Quote this message in a reply
02-18-2022, 06:39 AM (This post was last modified: 02-18-2022 06:40 AM by Massimo Gnerucci.)
Post: #7
RE: Help identifying 41C custom ROM module
(02-18-2022 05:09 AM)dmh Wrote:  So what is the best way to extract the FOCAL and machine code from the ROM and making it human readable?

I ended up using lifutils and then rom2raw and there's lots of XROM calls and it doesn't appear to have a mapping option to the actual name to make it more readable like decomp41 and decomp41 just lists the first program.

Interestingly the FOCAL code also includes synthetic programming.

I want to extract and disassemble the machine code too.

Sample output from rom2raw:
Code:
37▸LBL "JN"
38 CLA
39 ARCL 00
40 ALENG
41 X=0?
42 STO 00
43 RCL 00
44 SIGN
45 XROM 25,32                 Non-local XROM
46 "◆◆◆)◆α◆"
47 X<> M                      Synthetic
48 STO d                      Synthetic
49 CLX
50 X<> M                      Synthetic
51 XROM 25,45                 Non-local XROM
52 SF 25
53 ARCL L
54 XROM 25,15                 Non-local XROM
55 FC? 25
56 GTO 08
57 "JOB:""

Those XROM 25 should be X functions: 25,32=RCLFLAG, 25,45=STOFLAG and 25,15=FLSIZE

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
02-18-2022, 07:07 AM
Post: #8
RE: Help identifying 41C custom ROM module
Yes, I can manually translate these but that’s time consuming and makes it harder to read which is already difficult enough without any documentation or idea of what each program is for / intended to do.

(02-18-2022 06:39 AM)Massimo Gnerucci Wrote:  
(02-18-2022 05:09 AM)dmh Wrote:  So what is the best way to extract the FOCAL and machine code from the ROM and making it human readable?

I ended up using lifutils and then rom2raw and there's lots of XROM calls and it doesn't appear to have a mapping option to the actual name to make it more readable like decomp41 and decomp41 just lists the first program.

Interestingly the FOCAL code also includes synthetic programming.

I want to extract and disassemble the machine code too.

Sample output from rom2raw:
Code:
37▸LBL "JN"
38 CLA
39 ARCL 00
40 ALENG
41 X=0?
42 STO 00
43 RCL 00
44 SIGN
45 XROM 25,32                 Non-local XROM
46 "◆◆◆)◆α◆"
47 X<> M                      Synthetic
48 STO d                      Synthetic
49 CLX
50 X<> M                      Synthetic
51 XROM 25,45                 Non-local XROM
52 SF 25
53 ARCL L
54 XROM 25,15                 Non-local XROM
55 FC? 25
56 GTO 08
57 "JOB:""

Those XROM 25 should be X functions: 25,32=RCLFLAG, 25,45=STOFLAG and 25,15=FLSIZE
Find all posts by this user
Quote this message in a reply
02-18-2022, 07:57 AM
Post: #9
RE: Help identifying 41C custom ROM module
(02-18-2022 07:07 AM)dmh Wrote:  Yes, I can manually translate these but that’s time consuming and makes it harder to read which is already difficult enough without any documentation or idea of what each program is for / intended to do.

You can use the HP41UC tool from Leo Duran which supports the following XROM modules in Compiler and Decompiler:
  • [ 17 ] PLOTTER 1A-
  • [ 18 ] PLOTTER 2A-
  • [ 22 ] -HP-IL DEV
  • [ 23 ] -X MASS 1A
  • [ 23 ] -X EXT FCN
  • [ 23 ] -X CTL FNS
  • [ 23 ] -ADV CTL FN
  • [ 24 ] -HP-IL DEV
  • [ 25 ] -EXT FCN 2D
  • [ 25 ] -CX EXT FCN
  • [ 26 ] -TIME 2C
  • [ 26 ] -CX TIME
  • [ 27 ] -WAND 1F
  • [ 28 ] -MASS ST 1H
  • [ 28 ] -CTL FNS
  • [ 29 ] -PRINTER 2E
  • [ 30 ] CARD RDR 1E
Find all posts by this user
Quote this message in a reply
02-18-2022, 09:31 AM
Post: #10
RE: Help identifying 41C custom ROM module
You can use my ROMHandler here in My DropBox

This is an intermediate version and the manual does not ,match this program. Works well to disassemble both mcode and Focal

Regards, Meindert
Find all posts by this user
Quote this message in a reply
02-18-2022, 11:27 AM
Post: #11
RE: Help identifying 41C custom ROM module
Wow - this looks fantastic!!!

Couple of questions...

How do I get it to disassemble the whole 8Kb module, I ticked the 8K ROM option but it only did the first half?

Once (if) it disassembles the whole ROM, will the XROMs referencing the other ROM half show the name (eg lower half, ROM ID 15 references upper half, ROM ID 16 but shows as unknown)?

Thank you :-)


(02-18-2022 09:31 AM)MeindertKuipers Wrote:  You can use my ROMHandler here in My DropBox

This is an intermediate version and the manual does not ,match this program. Works well to disassemble both mcode and Focal
Find all posts by this user
Quote this message in a reply
02-18-2022, 12:18 PM
Post: #12
RE: Help identifying 41C custom ROM module
To disassemble an 8K ROM, you need to do the following:
- first open the 2nd 4K of the ROM, and click the button Move to 2n 4K
- then open the first 4K of the ROM
- tick the Disasm 8K ROM box

You may now list the FAT or do a disassemble and it will do both pages, including references between the ROM's.

Good luck with this. I actually just copied a newer build of the program in the same DropBox location. This is a large executable because the debug information is still in there, and there was an issue with 8K roms, not certain if that was already fixed in the earlier available version

Good luck and let us know what you have discovered

(02-18-2022 11:27 AM)dmh Wrote:  Wow - this looks fantastic!!!

Couple of questions...

How do I get it to disassemble the whole 8Kb module, I ticked the 8K ROM option but it only did the first half?

Once (if) it disassembles the whole ROM, will the XROMs referencing the other ROM half show the name (eg lower half, ROM ID 15 references upper half, ROM ID 16 but shows as unknown)?

Thank you :-)


(02-18-2022 09:31 AM)MeindertKuipers Wrote:  You can use my ROMHandler here in My DropBox

This is an intermediate version and the manual does not ,match this program. Works well to disassemble both mcode and Focal

Regards, Meindert
Find all posts by this user
Quote this message in a reply
02-18-2022, 12:28 PM
Post: #13
RE: Help identifying 41C custom ROM module
Thank you again ?.

just to clarify, I extracted the 8K ROM in 1 file (using HEPAX). Does it need to be in 2 separate files?

(02-18-2022 12:18 PM)MeindertKuipers Wrote:  To disassemble an 8K ROM, you need to do the following:
- first open the 2nd 4K of the ROM, and click the button Move to 2n 4K
- then open the first 4K of the ROM
- tick the Disasm 8K ROM box

You may now list the FAT or do a disassemble and it will do both pages, including references between the ROM's.

Good luck with this. I actually just copied a newer build of the program in the same DropBox location. This is a large executable because the debug information is still in there, and there was an issue with 8K roms, not certain if that was already fixed in the earlier available version

Good luck and let us know what you have discovered

(02-18-2022 11:27 AM)dmh Wrote:  Wow - this looks fantastic!!!

Couple of questions...

How do I get it to disassemble the whole 8Kb module, I ticked the 8K ROM option but it only did the first half?

Once (if) it disassembles the whole ROM, will the XROMs referencing the other ROM half show the name (eg lower half, ROM ID 15 references upper half, ROM ID 16 but shows as unknown)?

Thank you :-)
Find all posts by this user
Quote this message in a reply
02-18-2022, 01:02 PM
Post: #14
RE: Help identifying 41C custom ROM module
Correct, you need 2 seperate .ROM files, there is no option to read as one file.

(02-18-2022 12:28 PM)dmh Wrote:  Thank you again ?.

just to clarify, I extracted the 8K ROM in 1 file (using HEPAX). Does it need to be in 2 separate files?

(02-18-2022 12:18 PM)MeindertKuipers Wrote:  To disassemble an 8K ROM, you need to do the following:
- first open the 2nd 4K of the ROM, and click the button Move to 2n 4K
- then open the first 4K of the ROM
- tick the Disasm 8K ROM box

You may now list the FAT or do a disassemble and it will do both pages, including references between the ROM's.

Good luck with this. I actually just copied a newer build of the program in the same DropBox location. This is a large executable because the debug information is still in there, and there was an issue with 8K roms, not certain if that was already fixed in the earlier available version

Good luck and let us know what you have discovered

Regards, Meindert
Find all posts by this user
Quote this message in a reply
02-19-2022, 03:35 AM
Post: #15
RE: Help identifying 41C custom ROM module
Hi there Meindert,
I just downloaded your RomHandler.exe & parts. It is well made & functions better than the older MLDL2K, with its 41CL updates & HexDump.
Great offering & effort on your part - thank you. DA
Find all posts by this user
Quote this message in a reply
02-21-2022, 01:07 AM
Post: #16
RE: Help identifying 41C custom ROM module
Thanks - this worked perfectly!!! :-)

BTW, does anyone have the equipment to rewrite these EPROM modules these days?


(02-18-2022 01:02 PM)MeindertKuipers Wrote:  Correct, you need 2 seperate .ROM files, there is no option to read as one file.

(02-18-2022 12:28 PM)dmh Wrote:  Thank you again ?.

just to clarify, I extracted the 8K ROM in 1 file (using HEPAX). Does it need to be in 2 separate files?
Find all posts by this user
Quote this message in a reply
02-21-2022, 02:36 AM
Post: #17
RE: Help identifying 41C custom ROM module
(02-21-2022 01:07 AM)dmh Wrote:  BTW, does anyone have the equipment to rewrite these EPROM modules these days?
Your module is not a ZEPROM, so it's either an CMT OTP/EPROM module or an HP custom ROM.

HP custom ROM and CMT OTP module cannot be reprogrammed.
CMT EPROM and ZEPROM can be erased and reprogrammed.

To my knowledge, very few, if any, working CMT EPROM programmer still exist today.
Some member of this forum still have a working ZVC programmer for the ZEPROM module.

Sylvain
Find all posts by this user
Quote this message in a reply
02-21-2022, 02:48 AM
Post: #18
RE: Help identifying 41C custom ROM module
(02-21-2022 02:36 AM)Sylvain Cote Wrote:  
(02-21-2022 01:07 AM)dmh Wrote:  BTW, does anyone have the equipment to rewrite these EPROM modules these days?
Your module is not a ZEPROM, so it's either an CMT OTP/EPROM module or an HP custom ROM.

HP custom ROM and CMT OTP module cannot be reprogrammed.
CMT EPROM and ZEPROM can be erased and reprogrammed.

To my knowledge, very few, if any, working CMT EPROM programmer still exist today.
Some member of this forum still have a working ZVC programmer for the ZEPROM module.

Sylvain

Is the "65" black label on the module case covering a hole/window in the case, which would be directly above the EPROM chip? If so, this is very likely a CMT module, which I have seen in the past with the exact same "8K" paper label on the "handle" end of the module.

OTOH, I think all the ZEPROM modules from Zengrange either have a "ZENGRANGE" label, or no label at all on the "handle" end.

Once you identify it, it's easier to figure out options for burning it again.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
02-21-2022, 03:12 AM
Post: #19
RE: Help identifying 41C custom ROM module
I can't feel any edge or change under the 65 sticker by pressing or sliding a finger nail over it and not sure I want to remove it as it probably won't go back on.

There are small slits on each side which I assume are for opening it if that helps determine which type it is.

(02-21-2022 02:48 AM)rprosperi Wrote:  
(02-21-2022 02:36 AM)Sylvain Cote Wrote:  Your module is not a ZEPROM, so it's either an CMT OTP/EPROM module or an HP custom ROM.

HP custom ROM and CMT OTP module cannot be reprogrammed.
CMT EPROM and ZEPROM can be erased and reprogrammed.

To my knowledge, very few, if any, working CMT EPROM programmer still exist today.
Some member of this forum still have a working ZVC programmer for the ZEPROM module.

Sylvain

Is the "65" black label on the module case covering a hole/window in the case, which would be directly above the EPROM chip? If so, this is very likely a CMT module, which I have seen in the past with the exact same "8K" paper label on the "handle" end of the module.

OTOH, I think all the ZEPROM modules from Zengrange either have a "ZENGRANGE" label, or no label at all on the "handle" end.

Once you identify it, it's easier to figure out options for burning it again.
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)