HP-41CL & NoV-64 (or its siblings)


I transcended to Nerdvana when I got my first NoV module from Diego, progressed to the Second Circle when I got the CL board and now moving into the Third Circle of Nerdvana with the CL/NoV combo.

I thought I'd share my views on this amazing combination.

First some specs; I have the HP-41CL loaded with the YFNS 2A in page #F, CLUTILS 2G in page #E and CCD OS/X in page #D. This leaves the full 4 blocks of wonderful HEPAX RAM from the NoV-64 module in pages #8-#B as well as the NOV CHAP burned into the ROM of the NoV-64 at page #C. The reason for the latter is that none of the NOV CHAP write-to-h4100 works if the module resides in the CL. These functions work only if the module is inside the NoV-64 module. Also, the NOV CHAP module is essential in the NoV-64 whenever I take the module out and plug it into another HP-41.

The advantage with using the NoV-64 to host the HEPAX are:

  1. It saves one 4K page as the NoV module gets HEPAX into page #6, something that the CL cannot do.
  2. The HEPAX RAM is permanent in the NoV - despite MEMORY LOST or flat batteries. To get the same permanency on the CL alone, you will have to write the HEPAX RAM to flash, something that takes a lot of time and is risky.

In addition, the NoV-64 provides a full 4 sets of 4*4K of HEPAX blocks. These blocks are easily swapped by writing the configuration into address h4100 - 10X, where "X" (from 0-3) indicates the block to use. This gives you a full 64K of HEPAX RAM for use - some 32 times the usual program memory on your HP-41. Programs can be saved permanently and run from HEPAX RAM. XM files can be saved, manipulated and used from HEPAX RAM. Calculator memory can be saved and retrieved easily (in a couple of seconds using the NOV CHAP command SAVEN and GETN). Unlike the WRALL from the CLUTILS module on the HP-41CL, the SAVEN doesn't save XM. For that, you have the NOV CHAP program BACKUP.

Switching the blocks of HEPAX RAM is done in less than a second with the functions NX (write the number in X to h4100 - such as 103 to switch to the forth HEPAX 4*4K block) or the direct switching functions N100, N101, N102 and N103. These makes it possible to assign the switching functions to keys for lightning fast block switching. Doing this on the CL alone is "possible" but extremely cumbersome and time consuming - taking minutes to do with permanent HEPAX saves - and it becomes increasingly risky.

You can of course save a copy of your favorite modules to the permanent HEPAX ram in the NoV as well. This makes it easy to have 4 different environments with both a couple of modules and plenty of HEPAX RAM to use for each - and even a memory save for each environment. What joy!

I use the 100 HEPAX block as my default and have the ISENE ROM in page #B while retaining pages #8, #9 and #A as HEPAX RAM with lots of programs, a memory save and a few XM files. My 101 environment contains pure math related programs in 4 HEPAX RAM pages. The 102 environment contains my Role-Playing programs with lots of XM files, while my 103 environment hosts my MCODE project(s). Switching between them is with the blink of the eye.

A simple RESTORE program loads the YFNS to page #F, the CLUTILS to #E and the CCD OS/X to page #D whenever the CL needs new batteries or I manage to lock up the machine with some funny MCODE. Nothing is ever lost with this - I keep an additional backup of RAM and XM on a cassette tape (using the Extended IL ROM) for ultra safety.

With this I have leveled to Nerdvana 3rd Circle.


Having the HEPAX code in the NOV64 could you get DISASM to work properly in the 41CL environment?


What exactly is the problem you encounter with MCODE on the CL?


DISASM doesn´t seem work on the CL, not sure why.

This should not have any impact on the NoVRAM-32-64 or the real HEPAX plugged to the CL, which obviously don´t use the CL image, nor rely on the CL board to operate.


Are you talking about the DISASM 4D module here?


DISASM is not a module, it's a command within the HEPAX module used for disassembly of MCODE. As Ángel said, this command does not work in the CL, more precise, if the HEPAX module from the CL flash is used.

I wonder whether this command will work from within the NOV64 when it's attached to the CL, i.e. if the HEPAX module stored in the CL is bypassed.


Ah, got it. I will check.


The DISASM in the HEPAX module does not work in the CL environment even though the HEPAX resides in the NoV-64 module (the screen simply goes blank, and I have to press ON to get it back). I also checked the DISASM 4D module - end there seems to be an issue there too (will check more).

However, the disassembler in the David Assembler module does work - at least when the module is copied onto the NoV-64 module. It may still work on the pure CL as well (will check that later).

Edited: 20 Jan 2012, 12:31 p.m.


I seem to remember that there was a mechanism preventing the HEPAX disassembler to disassemble itself, as a kind of source code protection, so this may be causing the problems.



The HEPAX module is in page #6 and I try to disassemble the HEPAX RAM in page #8. Would it prevent the user from also disassembling HEPAX RAM altogether?


Good question ;) I do not know how this mechanism works, but the implementation of HEPAX support in the 41CL could prevent disassembly in other pages as well. Will it refuse to work on any page?


The HEPAX itself resides in page #6 and is on board the NoV-64, not in the CL itself. It refuses to disassemble HEPAX RAM on the NoV-64. I will check later tonight whether it will disassemble another page - like the CCD OS/X on board the CL plugged into page #D.

Update: No, DISASM does not work on the CL regardless if HEPAX is on a NoV module or not and regardless of the target for the disassembling is on the NoV or on board the CL. Upon running DISASM, the function asks for the start address and the end address. Upon entering the end address, the calculator actually turns off (nothing else happens)

Edited: 20 Jan 2012, 3:19 p.m.


I assume if you remove the NoV-64 module from 41CL and plug it into another HP-41, NoV-64 DISASM "will" disassemble MCODE resides in HEPAX RAM correct?

I wonder it has some mismatch that prevents MMU to work with DISASM to fully function during Logical to Physical address conversion on the 41CL.


You might try with the MMU disabled.


Hi all,

Also tested with real HEPAX, but DISASM still doesn't work on CL.

And yes, DISASM works into NoVRAM-32-64, on any other HP-41C/CV/CX.

Will keep on investigating...

Cheers from the Caribbean Sea.



I have duplicated the behavior in the simulator. I think that it has something to do with the value returned from the keyboard scanner when no key is down. The keyboard is read at location 088 in Bank 4, and a branch to the OFF routine is taken at location 08E in the same bank. I will post more information as I discover it.

I think that I also found where the test for disassembling the HEPAX code is, and I'll post that information after I have verified it also.



Here is what I have found: http://systemyde.com/pdf/hepax_fix.pdf


Hi Monte, all,

Thanks a lot for the patch!

A modified version of HEPAX bank 4 is available for NoVRAM, NoV-32 and NoV-64 users here.

This version only patches the keyborad bug, but does not remove the limitation on self-dissasembling HEPAX.

Just un-zip in your working directory. You may want to keep the original copy of HEPX1D-3.ASM in a safe place, so rename it before you replace it with the new patched one.

You'll need to run ClonixConfig and configure your module as usual for the update to take place.

Enjoy your 41's


Edited: 21 Jan 2012, 12:18 a.m.


Thank you Monte and Diego for such quick response and resolution!

Diego, do you recommend this HEPAX patch on NoVRAM for modules used with 41CL or can be use used for all HP-41c/cv/cx safely?

Great work, thanks again.


Hi Kerem,

The modified image can be safely used both in CL and standard 41's.

I've tested it both in a CL and a CX, the only drawback I've found so far is that you can't stop the DISASeMbling command by presing ON.

However, in case you enter a long memory block to disasemble and want to stop it middleway, just press R/S; so not a big issue whatsoever.

Hope you find it useful.




Fantastic news! Thanks Monte, once again the CL delivers on the promise to be the 21st-century premier calculator !

Hahhh, yes this is a very biased personal opinion, so pls. don't let the dogs loose on me :-).


It never amazes me how quick on its feet this community can be. And heavy weighters like yourself, Monte end Diego (and many others) on board, it's a joy to be in your vicinity.


Hi Geir,

Thanks a lot for your kind words, your appreciation of the features in the NoV-64 and your many contributions like the ICEBOX and NOV-CHAP.

It's great to count with you in our small community of HP-41 enthusiats.

Cheers from Dominican Republic.


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP-41CL setup troubleshooting Xavier A. (Brazil) 2 787 12-02-2013, 06:29 AM
Last Post: Xavier A. (Brazil)
  HP-41 Clonix&NoV's SW Update. (For the non-Primer's guys out there... :-) Diego Diaz 21 2,377 11-13-2013, 09:00 AM
Last Post: Ángel Martin
  [41CL] New Extra Functions version Monte Dalrymple 0 468 11-08-2013, 04:32 PM
Last Post: Monte Dalrymple
  So, latest 41CL / Library 4 config is... Gene Wright 4 871 09-22-2013, 02:59 AM
Last Post: Ángel Martin
  HP-41CL anyone? Matt Agajanian 8 1,213 08-31-2013, 12:27 AM
Last Post: Sylvain Cote
  [41CL] A couple more rhetorical questions Monte Dalrymple 1 518 07-12-2013, 09:28 AM
Last Post: Ángel Martin
  41CL :TROUBLE IN FILE TRANsFER aurelio 22 2,600 06-18-2013, 03:44 PM
Last Post: aurelio
  [41CL] Another question for users Monte Dalrymple 28 3,174 06-03-2013, 10:04 AM
Last Post: Geir Isene
  [41CL] Updated Manual Monte Dalrymple 1 523 05-14-2013, 10:22 PM
Last Post: Matt Kernal
  HP-41CL & NoV(-64): Race condition? Geir Isene 11 1,465 05-03-2013, 01:59 PM
Last Post: Diego Diaz

Forum Jump: