Post Reply 
HP 41(CX) - ADDING MEMORY
05-15-2019, 01:25 PM
Post: #1
HP 41(CX) - ADDING MEMORY
Hi, people

Recently I'm using a lot my 41CX for programming, as my faculty doesn't accept graphical calculators.

I have seen great projects for 41 series, even the 41CY, but all of them are expensive to me.

The 41 searches for labels into ROM ports. Well, if so, I was wondering if I couldn't connect some Arduino to a port and load it with programs. It would simulate some ROM pluged to a port. So, I could use it's large memory to hold my programs, not ROM (or even them).

The program should be input to Arduino by a microcomputer but preferable in ASCii legible caracters, not in byte instructions (as we read on hp41 display).

Any help? Any material to read and understand better how to try this?

ARTUR MARIO JUNIOR
BRAZIL
+55 31 99850-2280
arturmariojr@gmail.com
Find all posts by this user
Quote this message in a reply
05-15-2019, 01:39 PM
Post: #2
RE: HP 41(CX) - ADDING MEMORY
Just complementing my thoughts...
I can't understand how a company so big like HP deviated so much - and in my opinion, for bad - in scientific calculators (not considering the graphical series: 48, 49, 50 and Prime).
After the 41 series, they launched the 32, 42; after, for short, 43. Not considering the 42s, which kept the program structure from 41, all others lost labels with alpha reference, replacing them with letters from A to Z, same for registers. A joke for a calculator wih 32KB of memory!
I believe that, once you reach some level in developing products, the best way is go ahead and up, not down...
Well, just some thoughts from someone that searched some replacement for 41 and did not find one (from the same company).

ARTUR MARIO JUNIOR
BRAZIL
+55 31 99850-2280
arturmariojr@gmail.com
Find all posts by this user
Quote this message in a reply
05-15-2019, 02:14 PM
Post: #3
RE: HP 41(CX) - ADDING MEMORY
I doubt the ATmega on an Arduino would have tight enough timings over the GPIO lines to bit bang the module bus, but I'm sure an FPGA would be able to pull it off.
Visit this user's website Find all posts by this user
Quote this message in a reply
05-15-2019, 04:20 PM (This post was last modified: 05-15-2019 04:35 PM by Artur - Brasil.)
Post: #4
RE: HP 41(CX) - ADDING MEMORY
(05-15-2019 02:14 PM)Dave Britten Wrote:  I doubt the ATmega on an Arduino would have tight enough timings over the GPIO lines to bit bang the module bus, but I'm sure an FPGA would be able to pull it off.

I hope someone could tell contrary of you, as my knowledge is limited. I heard about FPGA last seculus... Working in such plane with Arduino would already be a challenge to me!!

In this mean time I read something about FPGA - now they are programmable and reprogrammable.. interesting!
And they are expensive too ...

Thanks!

ARTUR MARIO JUNIOR
BRAZIL
+55 31 99850-2280
arturmariojr@gmail.com
Find all posts by this user
Quote this message in a reply
05-15-2019, 04:25 PM
Post: #5
RE: HP 41(CX) - ADDING MEMORY
Well, it seems that you want to do with an Arduino what is being done by a PIC microcontroler in the Clonix module. You'll find some info about the Clonix module in this article.
Find all posts by this user
Quote this message in a reply
05-15-2019, 04:52 PM
Post: #6
RE: HP 41(CX) - ADDING MEMORY
Actually, according to this old post, the 41C bus speed is approximately 355 KHz, with a single machine cycle being 56 clock pulses. A 20 MHz ATmega328 (aka Arduino Uno) could probably keep up with that.
Visit this user's website Find all posts by this user
Quote this message in a reply
05-15-2019, 05:28 PM
Post: #7
RE: HP 41(CX) - ADDING MEMORY
people have used PICs and ATmegas and arduinos to emulate roms and io for processors such as the 6502, so I bet it could be done for hp calcs.
Find all posts by this user
Quote this message in a reply
05-15-2019, 07:43 PM
Post: #8
RE: HP 41(CX) - ADDING MEMORY
(05-15-2019 04:25 PM)Didier Lachieze Wrote:  Well, it seems that you want to do with an Arduino what is being done by a PIC microcontroler in the Clonix module. You'll find some info about the Clonix module in this article.

Let's read a little more!
Why they don't allow a simple 50G in exams, I'm not even asking for Prime!...

ARTUR MARIO JUNIOR
BRAZIL
+55 31 99850-2280
arturmariojr@gmail.com
Find all posts by this user
Quote this message in a reply
05-16-2019, 01:27 AM
Post: #9
RE: HP 41(CX) - ADDING MEMORY
One limitation to interfacing to the HP41 bus, particularly for an Arduino, is the 6 Volt (I measure around 6.3V) operating voltage. Only a few PIC processors are rated 7V max. You could use level translators as Monte did with the 41CL or resistive dividers as he did with his fpga module.

That's a lot to squeeze into a little module housing, which makes Diego's Clonix/NoV implementations all the more amazing. You would probably want to start by making a breakout cable from an old memory module so you could work at the breadboard level.

Who decides?
Find all posts by this user
Quote this message in a reply
05-16-2019, 03:26 AM
Post: #10
RE: HP 41(CX) - ADDING MEMORY
Well, I believe I'll let this for those who know what they are doing ...
Some years ago, I sent to Diego some memory modules in order to help him to produce his beautifull modules. He gave me one NovRAM.
Your comments and the word RAM made me to reflect about my complete ignorance and give his NovRAM a chance.
I removed the Stat module from my machine and pluged the NovRAM. Voilá!!!
This is what I was looking for: it has the HEPAX saved on it!! After reading HEPAX manual I could save a simple program in its RAM and execute it from main memory.
I hope when I get one Memory Lost the programs in NovRAM remain intact, as I have the X-Memory (a double one) installed but it cleans everything when I get the Memory Lost (nothing is perfect...).
Well, I was using the RCLP instruction to get programs from X-memory and run them. This is time consuming and very dangerous, in my opnion. Now, even this isn't anymore necessary: I'll run programs directly in Diego's module!! Great!!
For ending these letter: any advise to ports configuration for the double X-Memory, one Advantage and space for Wand, HP-IL (printer and cassette) plus the NovRAM? I'm using: 1 - NovRAM;2 - X-Memory (I suspect won't need it anymore...); 3 - Advantage; 4 - empty (HP_IL) or card reader).

ARTUR MARIO JUNIOR
BRAZIL
+55 31 99850-2280
arturmariojr@gmail.com
Find all posts by this user
Quote this message in a reply
05-16-2019, 02:30 PM (This post was last modified: 05-16-2019 02:33 PM by Diego Diaz.)
Post: #11
RE: HP 41(CX) - ADDING MEMORY
Hi Arthur,

Good to know you've managed to put your NoVRAM module at work. ;-)

On the other hand your statement reagarding RAM contents erased by a [MEMORY LOST] is not consistent with the fuctionality of the NoVRAM (or the HEPAX module for that matter).

To transfer a program from user memory to HEPAX RAM you must use the HEPAX command "HSAVEP". (As described on page 22 vol 1 HEPAX manual)

Once the program is transferred it can be erased from user memory by CLP command.

After that the program will no longer appear on CAT 1, but on CAT 2.

Footnote on said page 22:
"Note that the HP-41CX only displays ROM headings in CATALOG 2. To see programs in HEPAX, stop the catalog before the HEPAX module, and press ENTER to list all functions and programs."

Hope this helps.

Diego.

PS: Your port module usage is the correct one: 1-NoVRAM, 2-X-MEM, 3-*ANYROM*, 4-Free.

"Do not suppose, check it twice."
Find all posts by this user
Quote this message in a reply
05-16-2019, 03:11 PM
Post: #12
RE: HP 41(CX) - ADDING MEMORY
Hi, Diogo!!

You're a genius!!!
What a great work in such a small space! Unbelievable!!

I read all ZEMROM manual yesterday late night. It needs to be read a few more times to get understandin everything.

In particular, I have necessity to put some ROMs in it, if possible: the Advantage and maybe the Extended IO. I can do this just pluging the original modules and copying their content? If so, again, my compliments!!!

Also, I saw some special Math module - SandMath , 41-Z - or others that implements somethings like RCL+ RCL- etc.
If you have some suggestion, please, talk to me!!

About the Memory Lost, I understand your module has flash memory and, beyond this, all written into NovRAM is "ROM" - so, no risk to lose my hard to make programs! ;>)

The functions for listing contents are ok - looks like the X-Functions for extended memory. Very, very clever!!

(05-16-2019 02:30 PM)Diego Diaz Wrote:  Hi Arthur,

Good to know you've managed to put your NoVRAM module at work. ;-)

On the other hand your statement reagarding RAM contents erased by a [MEMORY LOST] is not consistent with the fuctionality of the NoVRAM (or the HEPAX module for that matter).

To transfer a program from user memory to HEPAX RAM you must use the HEPAX command "HSAVEP". (As described on page 22 vol 1 HEPAX manual)

Once the program is transferred it can be erased from user memory by CLP command.

After that the program will no longer appear on CAT 1, but on CAT 2.

Footnote on said page 22:
"Note that the HP-41CX only displays ROM headings in CATALOG 2. To see programs in HEPAX, stop the catalog before the HEPAX module, and press ENTER to list all functions and programs."

Hope this helps.

Diego.

PS: Your port module usage is the correct one: 1-NoVRAM, 2-X-MEM, 3-*ANYROM*, 4-Free.

Many thanks!

ARTUR MARIO JUNIOR
BRAZIL
+55 31 99850-2280
arturmariojr@gmail.com
Find all posts by this user
Quote this message in a reply
Post Reply 




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