HP-41 2*X-MEM emulation for NoV-64 & Clonix-D


Hi all,

Another emulation for the NoV-64 users. This one can also be of interest to the Clonix-D users.

The title says it all, this new code turns your NoV-64 or Clonix-D into a Double Extended Memory module.

Needless to say that non-volatile RAM contents inside the NoV-64 is preserved and the user will get every page back, as they were before programming the 2*X-MEM emulation, as soon as the NoV-64-H (HEPAX) emulation is reprogrammed.

As with the latest files I've build, this is also experimental. Since I'm away from home, and have only got one 41CX with me; I cannot guarantee that this emulation will work in the whole range of HP-41 speeds or hardware. It won't run on 2x speeded up 41's.

The XM-NoV64.HEX file can be dowloaded as usual from here.

Comments and questions are welcome.

Enjoy your toys! :-))


Edited: 21 May 2010, 6:11 a.m.


Wow, now this is cool!

So, we can have a 41cx with hepax, say sandmath, sandbox and a page for mcoding, plus 2x xm in one NoV64? Does this emulation allow the full range of synthetic manipulation of the program counter to eg run programs in xm, direct memory access to change file types, names, etc?

That would be awesome!




Hi Peter...

I hate to cool your mood down... :-( but... this is "just" a 2*X-MEM emulation. You can have all what you mention and even HP-41CY emulation... but (sorry) not simultaneously.

So, when programmed with the referred XM-NoV64.HEX file, your NoV-64 or Clonix-D will become a double Extended Memory module and therefore it won't keep HEPAX emulation. I'll will keep HEPAX RAM contents as stated above.

In fact, both fuctions are incompatible within NoV-64 (or any other microcontroller based arquitecture...) at current clock rates (12 MIPS)

The requirements for the module to handle the 5 intructions set that X-MEM modules respond to (just the same as any other 41 D/S RAM chip) are certainly very tight; at a given point, the "gap" for HP-41 clock sinchronization is <200nS (in theory)... ;-)

To this extent, I've not tested it using Synthetics but assuming that the M-code instructions issued by Synthetics commands must be the same; the emulation should work as expected.

I've just tested it with some elemental file creation and data recovery. CAT 4 shows 600 registers when plugged (X-MEM empty), and a modified version of "AM" & "MA" M-code routines from "Emery's" book.

The module also implements the "gaps" into X-MEM (thus the 600 reg total). I may try to "close these gaps" and see if the X-FUNCS recognize the 34 "extra" registers... I think M-code will be able to gain access to them, but maybe not if they're filtered within the 41's OS Mainframe. Will let you know in the next few days.

Nontheless, and as in the case of the 41CY (W&W RAMbox 64 II) emulation posted a few days ago, this is sort of a "toy" more than a tool. I have plenty of spare time here, and the "minimal resources" to mess around with my little projects; so the .HEX emulation files I'm publishing these days are the combined result of all these... and the "resident question": What if...?

Best from the Caribbean Sea.


Edited: 21 May 2010, 3:03 p.m.



Thanks for the clarification. 200ns, wow, that's tight indeed! You're amazing...

I would suggest not to 'plug' the gap as the OS from the CX uses functions like 'NXTB' (or something like it) to get to the next byte or next register in the X/M files and for that it checks where you are currently and then calculates the next absolute address incl of all gaps etc. So while it might be interesting to have these gaps plugged one literally would have to write seperate routines to access them as none of the normal X/F routines could access them. So I'm not sure it makes much sense.

As you are in toy&tinker mode: Given the immense power and utility of the NoV64 it is a bit of pearls in front of swines to use it as an XM (despite the engineering feat of making it possible), especially as one can get 2 XM for quite reasonable sums and then double them up into one module to occupy still only one slot. Unless of course there is a way to have a cheap NoV-XM version built for a similar price as 2 X/M but with say 4 x 2x XM contents that can be switched/selected by use off a code word. That would be of interest to some users (especially as there are a couple of 'save HP-41 State to X/M' programs out there. So one could save a whole set of programs and data to X/M, switch to a new set in the NoV-XM and voila, has a new fresh set of XM available. Now that would offer some playground...







Though "wasting" a full NoV-64 potential to have "just" 2*X-MEM is undoubtly like "killing flies with a gun"... some users may still not have X-MEM module(s), or haven't dare to take them apart to build a double module. This file offers the possiblity to fiddle with X-MEM at zero cost (assumming the user already have a NoV-64 or Clonix-D)

And a Clonix-D is about the same price as 2 X-MEM and offers quite a wider range of possibilities... without the risk of damaging them in the "doubling" process... :-)

Regarding the gaps, you're absolutely right. I was testing this a minute ago, and found that this addresses are in use by some display routines. If the gaps are allowed in X-MEM you get weird display (missing or changed characters)

On the Nx 2*X-MEM modules propossal, I'm affraid that no such thing is feasible with current hardware. Note that X-MEM is build-up using internal microcontroller RAM since non volatile RAM is serially accessed thru I2C interface at 1MHz clock rate. Scrunching a few numbers soon reveals that building a 7 bytes registers structure is not possible with such speed constrains.

Does a 'Save/Get HP-41 staus to/from HEPAX RAM' exists/be possible? I think of this as a more interesting one... :-)

Cheers from the "now heavily rainy" Dominican Republic.



yes, save/get hp-41 status to QRAM (such as HEPAX-RAM) exists. I think for example the Profiset-OS has such a function.





Possibly Related Threads...
Thread Author Replies Views Last Post
  Reasonable price for a 41C, Quad Mem, Time, Navigation and Card reader module? Eelco Rouw 10 3,001 12-12-2013, 01:52 AM
Last Post: Eelco Rouw
  HP-41(CL): The easiest way to transfer FOCAL programs from a Linux PC to the HP-41 Geir Isene 13 3,509 12-05-2013, 02:40 AM
Last Post: Hans Brueggemann
  HP-41 Clonix&NoV's SW Update. (For the non-Primer's guys out there... :-) Diego Diaz 21 3,995 11-13-2013, 09:00 AM
Last Post: Ángel Martin
  Last HP emulation, 32 & 01 Olivier De Smet 0 683 09-07-2013, 08:27 AM
Last Post: Olivier De Smet
  HP-41CL & NoV(-64): Race condition? Geir Isene 11 2,254 05-03-2013, 01:59 PM
Last Post: Diego Diaz
  HP 50G emulation for android Olivier De Smet 3 1,189 04-14-2013, 12:01 PM
Last Post: CompSystems
  Warning: These are NOT Clonix! Diego Diaz 11 2,198 03-02-2013, 01:15 PM
Last Post: Diego Diaz
  Latest Clonix/NoV's SW update. Diego Diaz 5 1,426 02-15-2013, 12:12 PM
Last Post: Ángel Martin
  [41CL]Updating ROM images with a Clonix Dan Grelinger 14 2,741 02-13-2013, 10:41 AM
Last Post: Ángel Martin
  [Clonix/NOV] NoV-64 backwards compatibility Doug (NYC) 0 608 01-20-2013, 11:21 AM
Last Post: Doug (NYC)

Forum Jump: