Post Reply 
Transferring programs to and from an HP41CL
11-23-2017, 01:46 PM (This post was last modified: 11-23-2017 01:48 PM by Sylvain Cote.)
Post: #2
RE: Transferring programs to and from an HP41CL
(11-23-2017 01:03 PM)Neve Wrote:  What is the best way to transfer programs to and from the HP41CL using the serial port, and a Macintosh (no PC, no Linux).
By using the clupdate program of course Wink

Extract from the clupdate-1.0.0-readme.txt included in the clupdate-1.0.0.zip file.
Code:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
H) loading UPDAT-2B.ROM ROM image into the 41CL  /////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

This section will show you how to load the UPDAT-1G.ROM image into the 41CL

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::​::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

1) you must find which communication port your 41CL serial cable is connected to
2) once found, replace the SERIAL_PORT tag by its appropriate value.
   Windows: find your serial port name with DeviceManager and use that name instead of the SERIAL_PORT tag. (ex.: COM4)
   Linux..: find your serial port name in /dev folder and use that name instead of the SERIAL_PORT tag. (ex.: /dev/ttyUSB0)
   macOS..: find your serial port name in /dev folder and use that name instead of the SERIAL_PORT tag. (ex.: /dev/tty.usbserial)
3) start a shell (aka command line)
4) go to the working folder
5) load the update ROM image into the 41CL

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::​::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Type_on_CL: MMUDIS                                                               // disable 41CL memory management unit
Type_on_CL: MMUCLR                                                               // clear 41CL memory management unit configuration

Type_on_CL: "YFNX"                                                               // enter in ALPHA the 41CL Extreme Functions rom image ID
Type_on_CL: PLUG1L                                                               // plug it to the lower address of port 1 (page 8)

Type_on_CL: MMUEN                                                                // enable 41CL memory management unit

Type_on_CL: SERINI                                                               // initialize the serial port
Type_on_CL: BAUD then 48                                                         // set communication speed to 4800 bauds

Type_on_CL: ON                                                                   // (optional) deactivate calculator sleep mode
Type_on_CL: CF 26                                                                // (optional) deactivate calculator sound

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::​::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Type_on_CL: "80F000-0FFF"                                                        // Physical destination address 0x80F000 and length 0x0FFF in RAM where the ROM image will be loaded
Type_on_CL: [XEQ][ALPHA]YIMP                                                     // Here we need to prepare the next function by pressing [XEQ] [ALPHA] [Y] [I] [M] [P]

Type_on_PC: java -jar clupdate-1-0-0.jar --upload UPDAT-2B.ROM SERIAL_PORT 4800 [ENTER] // WARNING: see SERIAL_PORT comment above 

Disp_on_PC: HH:MM:SS --upload   [fileName: UPDAT-2B.ROM] [portName: SERIAL_PORT] [baudRate: 4800]
Disp_on_PC: HH:MM:SS File       UPDAT-2B.ROM loading ...  done [YCRC=0x158BFD51 Rev:2017-08-14]
Disp_on_PC: HH:MM:SS Serial     SERIAL_PORT opened.
Disp_on_PC: HH:MM:SS Sleeping   5 seconds before starting file transfer

Type_on_CL: [ALPHA]                                                              // Pressing [ALPHA] within the time allowed, executes the YIMP function and start the CL serial importation
Disp_on_CL: "RECEIVING"                                                          // see the clupdate execution result below

Disp_on_PC: HH:MM:SS Sending    8192 = 8192 bytes sent
Disp_on_PC: HH:MM:SS Serial     /dev/tty.usbserial closed.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::​::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Type_on_CL: "80F"                                                                // Selecting RAM page 0x80F000
Type_on_CL: YCRC                                                                 // Validating CRC of the RAM page

Disp_on_CL: WORKING
Disp_on_CL: 158BFD51                                                             // Expecting YCRC=0x158BFD51 for UPDAT-2B.ROM

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::​::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Type_on_CL: "-80F 9"                                                             // Map UPDAT-2B.ROM image at RAM physical address 0x80F000 to port address 9
Type_on_CL: PPLUG                                                                // Activate the virtual module

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::​::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Type_on_CL: CAT 2                                                                // Validating configuration

Disp_on_CL: -TIME 3A                                                             // Time module
Disp_on_CL: -CL TIME                                                             // CL Time module
Disp_on_CL: -YFNX 2C                                                             // CL Extreme Functions module - MMU functions
Disp_on_CL: -SYS FNS                                                             // CL Extreme Functions module - System functions
Disp_on_CL: -SER FNS                                                             // CL Extreme Functions module - Serial functions
Disp_on_CL: -MISC FNS                                                            // CL Extreme Functions module - Miscellaneous functions
Disp_on_CL: UPDAT 2B                                                             // CL Update Functions module
Disp_on_CL: -EXT FCN 3B                                                          // Extended Functions module
Disp_on_CL: -CL EXT FCN                                                          // CL Extended Functions module

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::​::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Assuming YFNX is mapped and activated, the minimum do to is ...
Code:
calculator: SERINI
calculator: BAUD then 48
calculator: "820000-0FFF"           // physical destination address and length in RAM where the ROM image will be loaded, you can choose another address if you want
calculator: [XEQ][ALPHA]YIMP        // not pressing the last [ALPHA] will leave the 41CL in wait state 
computer..: java -jar clupdate-1.0.0.jar --upload YOUR_ROM_FILENAME /dev/tty.usbserial 4800 [RETURN]
                                    // wait until you see -> HH:MM:SS Sleeping   5 seconds before starting file transfer
calculator: [ALPHA]                 // this activate the YIMP function, you should see "RECEIVING" on the LCD
calculator: "820"                   // physical address to CRC
calculator: YCRC                    // calculating the CRC of the module, you should see the same CRC displayed on the computer of the file transfered 
calculator: "-820 9"                // physical address and port to activate
calculator: PPLUG                   // activating the module

Sylvain

edit: typo
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Transferring programs to and from an HP41CL - Sylvain Cote - 11-23-2017 01:46 PM



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