41CL Serial Port Transfer


Hi, after the accidental deletion of some of my flash files with YFERASE (and some panic!),
I set out using the Serial port of my 41CL to restore things back to normal. I used a PC with Win 7 (32bit)installed.
Firstly, I would like to thanks both Monte and Angel for answering my queries and supplying me with the required ROM modules.
Monte's "after sales service" is outstanding, with prompt replies to my queries and requests for help - thanks Monte :-)
Angel tirelessly answered my "41CL newbie" questions, always with full explanations - thanks Angel, your patience is appreciated).

I used R Wilker's CLWriter .NET program to do the download
My procedure was as follows:
  1. Connect the serial cable to the calculator and the PC.
  2. On the PC, using the Command or Dos window, type
    clwriter [filename.rom] com1 1200 10 (I used com1 and found 10ms avoided "timeout" problems)Don't hit "Enter" yet!!
  3. With 007>80C in Alpha, XEQ YMCPY (I used ram addr 0x80C000)
  4. With 80C-RAM in alpha, XEQ PLUG1L
  5. On the 41CL, execute SERINI, BAUD12 and TURBO50
  6. On the 41CL, with 80F000-0FFF in alpha, XEQ YIMP and then only hit Enter on the PC.
  7. Once the transfer is complete, place the Flash address into Alpha and XEQ YFWR
  8. Repeat this for all downloads

I had a few "glitches" with the serial comms, but generally it worked really very well (after overcoming my initial trepidation). As pointed out by others, use Fresh Batteries
That's all there is to it (I hope I have not left out anything important)
I certainly know and feel a lot more comfortable with this machine now. Thanks again for all the help.
Best Regards


I am creating a solution with Ruby to facilitate serial transfer (both ways), but currently I have run into a challenge. I wrote to Antti Louko - but I guess he's rather busy, so I will see if anyone here have any light to shed on this:

Ok, so I came up with a Ruby solution (see the forum).

Then I thought I would go on and create a similar solution to your Python programs for the CL, but in Ruby so that I can better extend it.

But the problem is that, although I get the serial connection running, with YEXP (pointing at a plausible address, like 800000-0030), I only get zeros transmitted. I do get the right amount of zeros depending on the size of the last part (the 0030 in the above example)... but only zeros.

Maybe something about the stop bits? The parity?

The code is dead simple, as you can see:

-----------------Begin code---------------------


require "serialport"

#params for serial port
port_str = "/dev/ttyUSB0"
port_str = ARGV[0] if ARGV.length > 0
baud_rate = 4800
data_bits = 8
stop_bits = 1
parity = SerialPort::NONE

sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity)

loop do
print sp.getc


------------------End code----------------------


Have you tried a lower baud rate?


Right. I had different baud rates on the PC and the 41. Fixed now.


Hi John, thanks for your nice words - truth is I just answered a couple of questions on a great topic to talk about, so I really enjoyed it too.

Glad to read you´re getting things to work as supposed to; yes this system is amazing!

I´ve been wondering about a method to EXPORT ROM pages to the PC using the serial connection, maybe if we ask nicely Raymond will oblige :-)




Hi Ángel,

Exporting ROM pages to the PC is already soved by the USB-41 interface module. The other way around is not.

The PC side interface is written in Python 2.7 and the module's code is (obviously) preliminary; but it works as expected.

You need HEPAX or NoV in order to execute COPYROM from the desired page to page #7. The process is monitored by the code in the USB-41 and a copy of every word is sent to the PC where they're arranged in a standard .ROM file which can be used to load any Clonix/NoV/CL page.

The file is built on the fly so the whole process takes just 5 or 6 seconds.

Not the best moment now but we can get back to this issue in a couple of weeks in case you're interested.




Thanks Diego, somehow that had gone totally under my radar screen!

I'll give it a try asap - No need to load the HEPAX, since the Library#4 contains the SAVEROM/GETROM code, so any Library#4-aware module will do the job: the function name is WRTPG - "write page"



Sorry I didn't read correctly - you say COPYROM, which is different and it's not included in the Library#4 (although it might in the future for this very reason, still plenty of room available there...)

CPYPG is available on the ToolBox_4, it'll be interesting to check it out as well.

the usage is as follows:

X: FROM page

Prompt: TO page (in decimal)


Edited: 5 June 2012, 8:25 a.m.



do you mean that only the USB-41 interface is not able to load a ROM into the HP-41, or that this is a general problem?

I use EMU41, the PILBOX together with ILPER and an HP-IL, of course, and am able to transfer ROMs in either way using the HEPAX functionality.


Possibly Related Threads…
Thread Author Replies Views Last Post
  HP-41CL setup troubleshooting Xavier A. (Brazil) 2 1,887 12-02-2013, 06:29 AM
Last Post: Xavier A. (Brazil)
  HP-41 module covers and side port cover Nate Martin 1 1,530 12-02-2013, 01:51 AM
Last Post: Giancarlo
  [41CL] New Extra Functions version Monte Dalrymple 0 1,098 11-08-2013, 04:32 PM
Last Post: Monte Dalrymple
  Yet another benchmark port on the wiki: Savage Pier Aiello 35 9,533 09-26-2013, 03:22 AM
Last Post: Pier Aiello
  So, latest 41CL / Library 4 config is... Gene Wright 4 2,000 09-22-2013, 02:59 AM
Last Post: Ángel Martin
  HP-41CL anyone? Matt Agajanian 8 2,926 08-31-2013, 12:27 AM
Last Post: Sylvain Cote
  [41CL] A couple more rhetorical questions Monte Dalrymple 1 1,238 07-12-2013, 09:28 AM
Last Post: Ángel Martin
  41CL :TROUBLE IN FILE TRANsFER aurelio 22 6,110 06-18-2013, 03:44 PM
Last Post: aurelio
  HP 50G serial port programming Chris Smith 2 1,395 06-15-2013, 02:47 PM
Last Post: Chris Smith
  [41CL] Another question for users Monte Dalrymple 28 8,149 06-03-2013, 10:04 AM
Last Post: Geir Isene

Forum Jump: