HP Forums
Genesis 41 Emulator by Laurent Spohr - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not quite HP Calculators - but related (/forum-8.html)
+--- Thread: Genesis 41 Emulator by Laurent Spohr (/thread-4466.html)

Pages: 1 2


RE: Genesis 41 Emulator by Laurent Spohr - Sylvain Cote - 06-22-2021 02:21 AM

(06-22-2021 01:35 AM)Neve Wrote:  Is there a command I can use to check what version my CL is?
The procedure should work with any hardware version.

I any case, you can find the information in the 41CL Extreme Functions Manual page 36.
41CL Extreme Functions - function 41CL reads board Flash size/organization and return an ALPHA message, here is the hardware version table
Code:
Version         Device  Flash       ALPHA
--------------  ------  ----------  ------------
V2 "top"        0x22C4  M29W160ET   41CL 2MB TOP
V2 "bottom"     0x2249  M29W160EB   41CL 2MB BOT
V3/V4 "top"     0x2256  M29W160ET   41CL 4MB TOP
V3/V4 "bottom"  0x2257  M29W320EB   41CL 4MB BOT
V5 "top"        0x227E  M29W640GT   41CL 8MB TOP
V5 "top"        0x227E  S29GL064NT  41CL 8MB TOP

Sylvain


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-22-2021 08:38 AM

(06-22-2021 02:21 AM)Sylvain Cote Wrote:  
(06-22-2021 01:35 AM)Neve Wrote:  Is there a command I can use to check what version my CL is?
The procedure should work with any hardware version.

I any case, you can find the information in the 41CL Extreme Functions Manual page 36.
41CL Extreme Functions - function 41CL reads board Flash size/organization and return an ALPHA message, here is the hardware version table
Code:
Version         Device  Flash       ALPHA
--------------  ------  ----------  ------------
V2 "top"        0x22C4  M29W160ET   41CL 2MB TOP
V2 "bottom"     0x2249  M29W160EB   41CL 2MB BOT
V3/V4 "top"     0x2256  M29W160ET   41CL 4MB TOP
V3/V4 "bottom"  0x2257  M29W320EB   41CL 4MB BOT
V5 "top"        0x227E  M29W640GT   41CL 8MB TOP
V5 "top"        0x227E  S29GL064NT  41CL 8MB TOP

Sylvain

Awesome. Mine returns 41CL 8MB TOP

Thanks again Sylvain. I will be testing the previous procedure today.

Regards


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-22-2021 09:39 PM

Sylvain,

I have a V5.
The procedure worked like a charm. Thank you so much.

Do you think it would be possible to reverse it?
Let’s say I write a new program on Genesis and want to transfer it to the CL, would that be possible?


RE: Genesis 41 Emulator by Laurent Spohr - Sylvain Cote - 06-22-2021 09:41 PM

(06-22-2021 09:39 PM)Neve Wrote:  The procedure worked like a charm. Thank you so much.
My pleasure!

(06-22-2021 09:39 PM)Neve Wrote:  Do you think it would be possible to reverse it?
Let’s say I write a new program on Genesis and want to transfer it to the CL, would that be possible?
Sure, easy! 8-)


RE: Genesis 41 Emulator by Laurent Spohr - Sylvain Cote - 06-23-2021 01:33 AM

So ... this is the procedure to transfer a program from Genesis-41 to a 41CL using RAMBox32 and the serial port.

Genesis-41 - Configuration Mode:
Code:
Show context menu → Select Memory Layout Managers -> ROM Layout ...
ROM Layout : Select page 8 - Load          -> RAMBOX32.ROM
ROM Layout : Select page 9 - Insert EEPROM -> EEPROM-9.ROM
ROM Layout : Close

Genesis-41 - Emulator Mode:
Code:
3                   // QROM XROM:3 (Y register)
9                   // QROM page   (X register)
"MY-PROGS 3C"       // ROM name
INITPG              // RB32 Init Page
CAT 2               // "MY-PROGS 3C" should be displayed at some point
                    // For each program that we want to copy from main RAM into QROM
"PROG1"             //   Enter program name in ALPHA
9                   //   Specify QROM page
LDPGM               //   RB32 Copy program from main RAM into QROM
                    // For-end
CAT 2               // When "MY-PROGS 3C" is displayed, press R/S, then ENTER and you should see all your programs that you have uploaded into QROM
9                   // QROM page   (X register)
"MP3C"              // ROM Revision (here: My Programs 3C)
ENDPG               // RB32 Close the page, save the ROM revision and calculate page checksum and write it to AFFFB-AFFFF, you should see "MP-3C BROKEN" at the end, it is normal
9                   // QROM page   (X register)
PGSUM               // RB32 Calculate page checksum, write it to AFFFF and display the result, you should see "PG:09  MP-3C"

Genesis-41 - Configuration Mode:
Code:
Show context menu → Select Memory Layout Managers -> ROM Layout ...
ROM Layout : Select page 9 -> Export → {to-your-working-directory}/mp3c.rom

On your 41CL
Code:
MMUDIS              // MMU Disable
MMUCLR              // MMU Clear, I always include this step in my procedures to avoid conflict with other configurations, but you can skip this line if you know what you are doing
"YFNX"              // 41CL Extreme Function ROM ID (XROM:15)
PLUG1L              // Plug module to page 8
                    // Plug your serial cable into your 41CL and into your computer before enabling the MMU
MMUEN               // MMU Enable 
SERINI              // Initialise 41CL serial port
48                  // Communication speed 4800 baud (X register)
PBAUD               // Activate comm speed
50                  // Speed up needed for data communication, otherwise buffer OVERWRITE message will show up and transfer will fail
PTURBO              // Activate 41CL 50x speed-up
"821000-0FFF"       // QROM address where the ROM image will go to and number of bytes to transfer
[XEQ][ALPHA]YIMP    // Ready ROM importation by partially entering the YIMP command and let it dangling

On your Mac, from the command line type:
Code:
cd {to-your-working-directory} [return]
java -jar clupdate-1.1.0.jar --upload mp3c.rom /dev/tty.usbserial 4800 [return]

You should see:
Code:
HH:MM:SS --upload    [fileName: mp3c.rom] [portName: /dev/tty.usbserial4] [baudRate: 4800]
HH:MM:SS File       mp3c.rom loading ...  done [YCRC=0x195F528A Rev:2021-06-22]
HH:MM:SS Serial     /dev/tty.usbserial4 opened.
HH:MM:SS Sleeping   5 seconds before starting file transfer

On your 41CL and within 5 seconds of seeing the sleeping message:
Code:
[ALPHA]             // Press ALPHA to complete YIMP command and start receiving the ROM image
"821"               // QROM address
YCRC                // Calculate CRC and verify that it match the one calculated on your computer (in my case: 195F528A)
"-821 9"            // Map a 4K QROM at address 0x821 to page 9
PPLUG               // Plug the module
CAT 2               // "MY-PROGS 3C" should be displayed at some point

You see, I told you, easy! Cool ... well almost Dodgy

Sylvain

Note 1: the above procedure was successfully tested with a 41CL v5, macOS Big Sur (11.4) and Java 11 (OpenJDK Runtime Environment AdoptOpenJDK, build 11.0.7+10)
Note 2: to see all the steps in one block, click on the "View a Printable Version" at the bottom of this page.

Edit 1: added {to-your-working-directory} tags
Edit 2: typos


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-23-2021 01:17 PM

Thanks again Sylvain,

I’ll try that and will report back.

CL V5, MacOS Catalina 10.15.7


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-23-2021 01:19 PM

I’m glad I resurrected this old post.


RE: Genesis 41 Emulator by Laurent Spohr - Sylvain Cote - 06-24-2021 01:39 PM

Small modifications have been made to post 19 (41CL to Genesis-41) and to post 25 (Genesis-41 to 41CL)


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-24-2021 02:10 PM

(06-24-2021 01:39 PM)Sylvain Cote Wrote:  Small modifications have been made to post 19 (41CL to Genesis-41) and to post 25 (Genesis-41 to 41CL)

OK,

I’ll look and reprint them.

Thanks again Sylvain.


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-24-2021 02:16 PM

A few quick questions though:
1- The programs do not go into RAM apparently (PRMG still shows 219)
2- Maybe it’s my computer, but I canuse en to be able to map any of the modifier key on my keyboard (SHIFT, CTRL, Etc…)
3- Where can I find a program that extracts .MOD files to .ROM files? I’ve looked everywhere. And the manual is not clickable.
4- I can seem to be able to transfer the “Byte Grabber”, that I have on a card, to Genesis using the above method.

Regards


RE: Genesis 41 Emulator by Laurent Spohr - rprosperi - 06-24-2021 02:39 PM

Warren's MODFile utility will examine and extract .rom files from a .mod file, however it is a windows program only. But the source is also available, so you might be able to get it working on macOS, in which case, please share it with both Warren and here for other Mac users.

http://www.ho41.org/LibView.cfm?Command=View&ItemID=608

Copy the above url, paste it to your address bar, change 'ho41' to 'hp41' and proceed.


RE: Genesis 41 Emulator by Laurent Spohr - Sylvain Cote - 06-24-2021 02:53 PM

(06-24-2021 02:16 PM)Neve Wrote:  1- The programs do not go into RAM apparently (PRMG still shows 219)

No, there are located in an Application ROM, you can copy them back into main RAM with the COPY function.
Look in HP-41C Owner's Handbook and Programming Guide, pages 260 and 261, COPY function description.

(06-24-2021 02:16 PM)Neve Wrote:  2- Maybe it’s my computer, but I canuse en to be able to map any of the modifier key on my keyboard (SHIFT, CTRL, Etc…)

I am not following you, could you please rephrase.

(06-24-2021 02:16 PM)Neve Wrote:  3- Where can I find a program that extracts .MOD files to .ROM files? I’ve looked everywhere. And the manual is not clickable.

Download and install Joachim Siebold's LIF utilities.
It contains lots of command line binaries that can convert multiple file formats. (see the online manual HERE)

Download and install Meindert Kuipers's MLDL2000 Windows program.
This is a very easy to use program that is able to create, read, extract and update MOD file.

If you can get a copy of Windows, VMware Fusion Player is now free for home use.
You will have to create an account to get your free license though.

I would suggest that you read the reference section of my Diego Díaz Clonix & NoV Module, HPCC 2020 Presentation.
It covers HP-41 RAM, ROM, file types and other stuff as well.

(06-24-2021 02:16 PM)Neve Wrote:  4- I can seem to be able to transfer the “Byte Grabber”, that I have on a card, to Genesis using the above method.

I am not sure I follow you here, the phrase say "you can" but the way I read it suggest that "you cannot", could you please rephrase.

Sylvain


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-24-2021 03:50 PM

(06-24-2021 02:39 PM)rprosperi Wrote:  Warren's MODFile utility will examine and extract .rom files from a .mod file, however it is a windows program only. But the source is also available, so you might be able to get it working on macOS, in which case, please share it with both Warren and here for other Mac users.

http://www.ho41.org/LibView.cfm?Command=View&ItemID=608

Copy the above url, paste it to your address bar, change 'ho41' to 'hp41' and proceed.

Thank you very much. I may try to compile it if I find the time.

Regards


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-24-2021 03:56 PM

(06-24-2021 02:53 PM)Sylvain Cote Wrote:  
(06-24-2021 02:16 PM)Neve Wrote:  2- Maybe it’s my computer, but I canuse en to be able to map any of the modifier key on my keyboard (SHIFT, CTRL, Etc…)

I am not following you, could you please rephrase.

I mean that when I use the keyboard mapper that comes with Genesis, those Mac keyboard keys do not register at all.
Let’s say I wan to to map the “shift” key of the Genesis-41 to the “shift” key of the Mac keyboard, that key is not registering at all. None of the modifier keys on the Mac Keyboard are registering with the keyboard mapper.
By “modifier keys” I mean SHIFT, CTRL, COMMAND, etc…
Am I clear enough?

(06-24-2021 02:53 PM)Sylvain Cote Wrote:  
(06-24-2021 02:16 PM)Neve Wrote:  4- I can seem to be able to transfer the “Byte Grabber”, that I have on a card, to Genesis using the above method.

I am not sure I follow you here, the phrase say "you can" but the way I read it suggest that "you cannot", could you please rephrase.

Sylvain

Typo.

4- I CAN’T seem to be able to transfer the “Byte Grabber”, that I have on a card, to Genesis using the above method.


RE: Genesis 41 Emulator by Laurent Spohr - Sylvain Cote - 06-24-2021 05:04 PM

(06-24-2021 03:56 PM)Neve Wrote:  
(06-24-2021 02:53 PM)Sylvain Cote Wrote:  I am not following you, could you please rephrase.
I mean that when I use the keyboard mapper that comes with Genesis, those Mac keyboard keys do not register at all.
Let’s say I wan to to map the “shift” key of the Genesis-41 to the “shift” key of the Mac keyboard, that key is not registering at all. None of the modifier keys on the Mac Keyboard are registering with the keyboard mapper.
By “modifier keys” I mean SHIFT, CTRL, COMMAND, etc…
Am I clear enough?
Crystal clear!
Modifier keys are not supported by the application.
Keyboard mapping is kept in this file: /Applications/Genesis-41.app/Contents/Resources/keyboard.xml
To go back to default mapping, exit the application, delete keyboard.xml and restart the application, upon restart Genesis-41 will create the file if missing.

(06-24-2021 03:56 PM)Neve Wrote:  
(06-24-2021 02:53 PM)Sylvain Cote Wrote:  I am not sure I follow you here, the phrase say "you can" but the way I read it suggest that "you cannot", could you please rephrase.
Typo.
4- I CAN’T seem to be able to transfer the “Byte Grabber”, that I have on a card, to Genesis using the above method.
HP-41 user defined keys are kept in an internal buffer and active mapped keys are kept in two status registers, so they are not part of program space.
You ask for programs transfer not for status registers and/or internal buffers transfer, so I gave you program transfer. Dodgy

Sylvain


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-24-2021 05:11 PM

It’s very clear Sylvain. Thank you.
I realized my question about BYTE GRABBER was dumb after I posted it.
You’re absolutely right.

Too bad about the modifier keys though.

Thanks again.


RE: Genesis 41 Emulator by Laurent Spohr - Sylvain Cote - 06-24-2021 05:32 PM

I just looked in the RAMBox32 manual and there is a way to transfer system buffer and/or user defined keys to/from RAM from/to QROM.

The functions related to user defined keys (UDK) are: KEYAS? , CRFLKEY , LDKEY and GTKEY.

RAM to QROM procedure:
Code:
KEYAS?     // find the number of registers used by the UDK internal buffer
10         // page where QROM is located
"MYKEYS"   // UDK filename to create in QROM
CRFLKEY    // create an empty key file in QROM using ALPHA (QROM UDK filename) , X (QROM page) & Y registers (QROM UDK file size)
LDKEY      // copy UDK from internal buffer to QROM file

QROM to RAM procedure:
Code:
"MYKEYS"   // UDK filename in QROM
GTKEY      // copy UDK from QROM file to internal buffer

Sylvain

PS: the RAMBox 32 manual is available on the same site that Robert gave you in post #31

edit 1: typos
edit 2: PS


RE: Genesis 41 Emulator by Laurent Spohr - rprosperi - 06-24-2021 10:39 PM

(06-24-2021 02:53 PM)Sylvain Cote Wrote:  ...<snip>...
Download and install Joachim Siebold's LIF utilities.
It contains lots of command line binaries that can convert multiple file formats. (see the online manual HERE)

I never realized the lifmod utility could extract .rom images from a .mod file, in addition to just listing contents. Thanks for the tip/reminder.

This set of utilities is an amazingly complete set of tools for using the 41/71/75, if you dabble even only a little bit with these machines it's well worth getting these (and apparently reading the docs better than I did)


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-26-2021 08:02 PM

(06-24-2021 05:32 PM)Sylvain Cote Wrote:  I just looked in the RAMBox32 manual and there is a way to transfer system buffer and/or user defined keys to/from RAM from/to QROM.

The functions related to user defined keys (UDK) are: KEYAS? , CRFLKEY , LDKEY and GTKEY.

RAM to QROM procedure:
Code:
KEYAS?     // find the number of registers used by the UDK internal buffer
10         // page where QROM is located
"MYKEYS"   // UDK filename to create in QROM
CRFLKEY    // create an empty key file in QROM using ALPHA (QROM UDK filename) , X (QROM page) & Y registers (QROM UDK file size)
LDKEY      // copy UDK from internal buffer to QROM file

QROM to RAM procedure:
Code:
"MYKEYS"   // UDK filename in QROM
GTKEY      // copy UDK from QROM file to internal buffer

Sylvain

PS: the RAMBox 32 manual is available on the same site that Robert gave you in post #31

edit 1: typos
edit 2: PS

Thank you again Sylvain. I’ll see how this works for me.


RE: Genesis 41 Emulator by Laurent Spohr - Neve - 06-26-2021 08:05 PM

(06-24-2021 02:53 PM)Sylvain Cote Wrote:  
(06-24-2021 02:16 PM)Neve Wrote:  1- The programs do not go into RAM apparently (PRMG still shows 219)

No, there are located in an Application ROM, you can copy them back into main RAM with the COPY function.
Look in HP-41C Owner's Handbook and Programming Guide, pages 260 and 261, COPY function description.

(06-24-2021 02:16 PM)Neve Wrote:  2- Maybe it’s my computer, but I canuse en to be able to map any of the modifier key on my keyboard (SHIFT, CTRL, Etc…)

I am not following you, could you please rephrase.

(06-24-2021 02:16 PM)Neve Wrote:  3- Where can I find a program that extracts .MOD files to .ROM files? I’ve looked everywhere. And the manual is not clickable.

Download and install Joachim Siebold's LIF utilities.
It contains lots of command line binaries that can convert multiple file formats. (see the online manual HERE)

Download and install Meindert Kuipers's MLDL2000 Windows program.
This is a very easy to use program that is able to create, read, extract and update MOD file.

If you can get a copy of Windows, VMware Fusion Player is now free for home use.
You will have to create an account to get your free license though.

I would suggest that you read the reference section of my Diego Díaz Clonix & NoV Module, HPCC 2020 Presentation.
It covers HP-41 RAM, ROM, file types and other stuff as well.

(06-24-2021 02:16 PM)Neve Wrote:  4- I can seem to be able to transfer the “Byte Grabber”, that I have on a card, to Genesis using the above method.

I am not sure I follow you here, the phrase say "you can" but the way I read it suggest that "you cannot", could you please rephrase.

Sylvain

Will look at the manual. It’s been quite a while since I’ve read it….

I have Parallels Desktop, so I’m good.
I’m gonna have to learn these new programs.
But so far MODfile has been good.

As always, THANK YOU ALL!

Regards