HP Forums
V41 Rev9A emulator allows mCode programming - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: V41 Rev9A emulator allows mCode programming (/thread-12386.html)



V41 Rev9A emulator allows mCode programming - derekamos - 02-09-2019 07:18 AM

Hi 41c mCoders,
I wish to give some praise to the efforts of Christoph Giesselink for his new version of the V41 emulator. Having now used it for a week, with the HP-IL & ILPER update, I found it to be quite excellent for my uses.
Here is a discovery I made while testing it all out. Mcode RAM pages have always been missing from this emulator, but I have found a way to make it all work.
If the ILPER addon is used, this allows extended mcode programming as follows.
This whole section after the dashes could be copied & added to the HELP.TXT file in the V41 directory, for anyone who might need it to be online while trying out these methods.
--------------------------------------
PRINTER
--------------------------------------
The 82143A Thermal Printer is NOT SUPPORTED at this time. BUT using ILPer, it has a
Generic Printer output from ALPHA, X-REG, RPN, etc, sent by PRX, PRA, OUTA, PRP etc.
--------------------------------------
NEW SECTION ON (modified) HEXAX 1G MOD
- Programming mCode in the V41 -
--------------------------------------
A feature that is missing in the V41 is the ability to use an inserted RAM PAGE for
mcode programability. This feature has not been added on by anyones generous
programming yet.
# Here in this V41R9A it can be made to work, but the user will need to be quite
'HERE & NOW' aware. To allow this, load the freely available (modified) HEPAX 1G
module, using (File... Edit... Add...), just like any other module load.
This module has a 4Kb RAM bank, that loads immediately after the standard Hepax file
block. Here is a directory display of each block, showing Hepax 1G at Page C.
3 -EXT FCN 2D
4 EMU36
5 -TIME 2C
6 -PRINTER 2E
7 -MASS ST 1H
8 GEN12
9 HJ-ASM2
A HBO27+
B -DISASM- 4D
C -HEPAX'1G ;Xrom 7
No RAM PAGE is showing yet at Page D. Copy any 4Kb Page to Page D using say WMOV,
found in Doug Wilder's DISASM 4D module. Choosing to move Page 8 To Page D, would be
to put 80008FFFD000 into ALPHA & XEQ WMOV.
Take a look at the Page D bytes! Using David-Assembler's ASSM, or DISASM 4D's WROM, go
to Page D & there is found displayed, the whole of Page 8's code.
Now while the current instance of V41 is running, with no page edits that alter the
order of ROM pages, the copied Page will stay at Page D.
It can now be edited & updated with new programs, altering the FAT addresses, or adding
RPN programs, or changing the name of the MOD/ROM, its version, and checksum. In other
words the full range of mcode op's a programmer would normally do.
BUT IF THE V41 INSTANCE IS CLOSED OR ROM PAGE MODULE ORDER ALTERED, THEN ALL IS LOST.
A display of the moved Page from 8 to D follows:
3 -EXT FCN 2D
4 EMU36
5 -TIME 2C
6 -PRINTER 2E
7 -MASS ST 1H
8 GEN12
9 HJ-ASM2
A HBO27+
B -DISASM- 4D
C -HEPAX'1G
D GEN12 ;Successfully moved MOD page.
Here the earlier warning about 'HERE & NOW' programming comes into effect.
If you did some work on Page D, say altering the ROM number to 13d/0Dh, then ran the
DISASM 4D program SUMBL, this will recount the checksum & insert the new valid one into
the Page D final byte at DFFF. Making the whole page safe by checksum, also allows it
to be sent & be saved to the computer, as a B32 coded text file. To do this, first run
the old HEXKB, enter the rom page number 'D', press R/S & get a hex D in alpha. Then
run DISASM 4D's OUTROMQ program, it reads page D, sending it coded in Base 32 text to
the printer (preloaded via ILPER software).
This text in the generic printer buffer can be copied to a separate text file, adding
a .B32 extension (filename.B32).
From here the B32 can be run through the DosBox program, Doug Wilder's B32.EXE, to
generate the filename.ROM. This filename.ROM file, can then be run through MLDL2K.EXE
to get a working filename.MOD file. That .MOD file could be reloaded into the V41 for
any new programming session & added programs, at a later date (File... Edit... Add...).
The same process must be done every time, to get to the state of a finished 4Kb MODULE.
SO, THE ABILITY TO LOAD MCODE IN THE V41 IS HERE. IT ONLY NEEDS EFFORT, WHICH IS PRETTY
SIMILAR TO THE EFFORT OF ANY MCODER, USING ANY OTHER SYSTEM.
USE OF SOME DOS .BAT FILES WILL HELP SPEED THIS PROCESS UP.
--------------------------------------
There that's the whole section uploaded. Any queries anyone has, I will gladly answer, as best I can.
DA


RE: V41 Rev9A emulator allows mCode programming - Ángel Martin - 02-09-2019 09:57 AM

I need to read slowly your post, but using MCODE on V41 was already possible - simply using the HEPAX modules and removing some (or all) of their Q-RAM from the Hepax File System. I've been using it in that form & shape for years... or am I missing something?

ÁM


RE: V41 Rev9A emulator allows mCode programming - derekamos - 02-09-2019 11:43 PM

Yes Angel, the V41 always had the ability to do that, except I did not follow-up on the whole process until now.
Documenting details right through the process, is what I finally got around to doing, which as I mentioned can be added to the current HELP.TXT file that is displayed from the V41 MENU.
Basically I always did programming almost exactly the same, only with the older EMU41. The V41 however makes programming easier & more familiar, as its like a real HP41 on the screen.
DA


RE: V41 Rev9A emulator allows mCode programming - Ángel Martin - 02-10-2019 06:31 AM

(02-09-2019 11:43 PM)derekamos Wrote:  Basically I always did programming almost exactly the same, only with the older EMU41. The V41 however makes programming easier & more familiar, as its like a real HP41 on the screen.

Yup, specially the break point capability and single-step execution are a godsend to the MCoder!