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!
... well almost
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