HP Forums

Full Version: Hepax Emulation under V41
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

I know that for certain reasons (legal? historical? personal?) TOS and V41 aren't discussed much around here, but I hope that someone can shed some light on this.

In deciding to get a NoVRAM from Diego I have been trying to play around with loading HEPAX into V41. I can get it to do basic things of interest to me, like copy directly accessible programs into HEPAX memory and the like. I did want to experiment with the COPYROM function, since I will be doing that sort of thing with NoVRAM, but I really don't know much about addressing to have any idea what parameters to put on the stack.

I have learned, however, that if I turn off the emulator or close V41 altogether, any changes made to HEPAX RAM are cleared. Indeed, if I turn off the emulator it won't turn back on, and I have to close and restart the program to do so. If I close the program with the emulator on, when it restarts it is turned off and in turning it back on HEPAX memory is cleared (i.e., HEPDIR gives "H:DIR EMPTY") and anything I stored there in the last session is lost. Standard program memory, registers, and the stack seem fine.

I don't know if anyone has spent a lot of time experimenting with HEPAX in this emulated form, but if so I would like to know about your observations. I may or may not let Warren know. He advised me about 18 months ago or so that he isn't doing any major overhauls anymore to V41.

As an aside, recent i41CX+ converts will be disappointed to know that Hepax doesn't load at all there. There seem to be some other issues with other modules--I have discovered that the T>BS function in SandMath-III gives gibberish (works fine in V41) and there is the bug with the combined MathStat module I posted earlier. I won't make a big issue of this with Anthony Lagana--I think that most of us are eager to see the printer working normally and the irksome user key assignment bug sorted out.

If anyone has to insight into the emulation of Hepax, I would like to know.

Les

Hi Les,

Using HEPAX with V41 is somewhat tricky...

First of all I would recommend you to reinstall your V41 to ensure you have a clean copy of the three HEPAX related .MOD files, namely: hepax.mod hep-mem.mod and hep-2mem.mod, as it may happen that some of them get corrupted while you're playing with the emulation. Save a copy of these files into a different folder and even set them as "read only".

Make sure that the ones you're going to load into V41 emulator are not "read only" as they are writen during normal use.

Paradoxically V41 freezes because it's a perfect replica of the HP-41 behavior.

HEPAX assumes it's plugged into a physical port (usually Port1) thus it tries to start its auto-relocation process from an even page: 8, A, C, of E; and requires RAM in the immediate following odd page to perform the task.

As there is no such physical port in V41 and therefore no real start-up sequence for HP-41 power-up (involfing physical signals in the I/O port interface, HEPAX can only relocate when it's first "plugged-in" (loaded into the configuration window).

Once it has found a suitable page, it remains in that page as long as it remains in such configuration.

When you run HP-41CX emulation the first available page is page 6 and there is where HEPAX will place itself. Regrettably, page six is an even page, thus HEPAX will try to relocate. However it can not find any RAM into page 7, wich is needed to the process... the result is a frozen V41.

To avoid this, you can either use HP-41C/CV emulation, wich makes HEPAX to load into page 5, or load the printer module into HP-41CX emulation, which forces HEPAX to re-locate into page 7.

The good part is that once HEPAX has been allocated into an odd page, it won't try furter relocations, so you can switch your V41 OFF and ON without loosing a bit.

There is a drawback though, the HEPAX file system will not be recovered when a RAM page is cleared. If you want HEPAX file system to be restored, you'll need to re-load the modules again.

Hope this helps.

Best from the Canaries.

Diego.

Quote:
As an aside, recent i41CX+ converts will be disappointed to know that Hepax doesn't load at all there. There seem to be some other issues with other modules--I have discovered that the T>BS function in SandMath-III gives gibberish (works fine in V41) and there is the bug with the combined MathStat module I posted earlier. I won't make a big issue of this with Anthony Lagana--I think that most of us are eager to see the printer working normally and the irksome user key assignment bug sorted out.

I reported the HEPAX bug awhile back. i41CX+ is based primarily on Nonpareil's 41CX emulation. Same bugs too, e.g. the "ASN bug if printer attached" happens with Nonpareil as well. Hopefully Eric's new Nonpareil will help Anthony with post 1.0.1.

Another option for you is EMU41. It supports HEPAX and HP-IL. You could test COPYROM and READROM that way. If you want to try this let me know and I'll send you a 9114B image for EMU41.

EMU41 runs from DOSBox.

Can you give me a key sequence that fails on Nonpareil, starting from "Memory lost"?

I had assumed Anthony Lagana already told you about this.

  1. cd ~/.nonpareil
    rm 41CX.nst
    nonpareil 41cx
  2. Configure
  3. Load Module
  4. 82143a.mod
  5. Create any program.
    LBL FOO
    *
    +
    END
  6. ASN FOO LOG
  7. USER
  8. 1 ENTER
  9. 2 ENTER
  10. 3 LOG
    Screen now reads:
    3          
    Hung.


Edited: 14 Sept 2008, 2:35 p.m.

Quote:
To avoid this, you can either use HP-41C/CV emulation, wich makes HEPAX to load into page 5, or load the printer module into HP-41CX emulation, which forces HEPAX to re-locate into page 7.

The good part is that once HEPAX has been allocated into an odd page, it won't try furter relocations, so you can switch your V41 OFF and ON without loosing a bit.

There is a drawback though, the HEPAX file system will not be recovered when a RAM page is cleared. If you want HEPAX file system to be restored, you'll need to re-load the modules again.


Diego, this is brilliant! I installed the printer module and all works fine.

I must admit it took me a bit to figure out why I wasn't seeing directory listing when executing HEPDIR. It appears that with the printer module installed the default is to send that info to (nonexistent) printer, not display. I have to execute CF 21 every time I start up since with HEPAX installed the emulator starts up with the calc in off position and turning it on sets flag 21.

I see what you mean about the hepax files being written. I didn't think any of those mod files ever got modified, but, sure enough, the time stamps do indeed change.

I find that once I get this all set up and leave it alone, the hepax ram memory does not get cleared when opening and closing V41. Programs I HSAVEP show up in CAT 2 under HEPAX 1D just like they should, and they are still there when I close and reopen the thing. Doesn't this contradict at all what you say about a RAM page being cleared, or am I misunderstanding?

Now, I need to mouse my way through the HEPAX manuals on TOS to see if I can do some stuff more fun and interesting than just copying programs to HEPAX RAM and running them from there ;)

Many thanks,

Les

Quote:
There is a drawback though, the HEPAX file system will not be recovered when a RAM page is cleared. If you want HEPAX file system to be restored, you'll need to re-load the modules again.

I think I deduced the practical implication of this. Basically, I have learned that if I set up a HEPAX files system with hepax.mod, hep-mem.mod, and hep-2mem.mod, and initialize this by powering the calculator ON, those three files are linked together once modified and must be unloaded and reloaded as a unit if I want to preserve access to all 5200 registers. If I unload one or both memory modules, if I load it back it won't be seen, and HEPROOM will return a value much lower than 5200. I can restore this register count by reinstalling and reinitializing fresh copies of the ORIGINAL Hepax mem files, but not the ones the have been already "corrupted" by previous use. It is like they are out of sync with their siblings and can't be "seen" again. So I see the wisdom of maintain unmodified back up copies of the original hepax MOD files, just in case.

So, I have basically learned that if I take up 3 virtual ports and need room for other modules, I have to take out all three of the user modified hepax modules and add them back later as a unit if I want to have my files and register count preserved.

I don't know if this is how the actual calculator behaves.

Les

Thanks! After much wailing, gnashing of teeth, tearing out of hair, and staring at traces until I thought my eyes would bleed, I've found the problem. It will be fixed in an upcoming release of Nonpareil.