Good description of what to do to create a ROM image - i have archived this thread in my favorite links for 71B.
I was not aware of the challenge with the 64k EPROM (have 3 of those as CMT Front port) - underlined below - I can't recall having seen how to modify the HHP 96k into one 64k and one 32k, fixed.
Need to get that done before I start filling the 64k Space - they are nearly ready to go get burned.
Do you or someone on this forum mind giving me a hint?
(11-06-2020 09:58 PM)rprosperi Wrote: I want one when they're ready!!
The following assumes you want to make ROM images in the same format as are used with emu71/DOS and emu71/WIN, and not true EPROM images as would be used to burn a classic EPROM chip as used with the HHP chip carrier that mounts in the Card Reader port.
To make your image, the basic steps are:
A. Assemble the contents
B. Prepare the image (to write the checksum and 'chain' the BASIC programs)
C. Copy the image to the PC to load into the ROM emulator
A. Assemble the image
1. Create an IRAM of the same size as the ROM image you want (e.g. FREE PORT(2)). Note that for a 64KB image you CANNOT use 2 x 32k ports, as found in most RAM modules, you would need an HHP 96k RAM module, modified to create a genuine single 64k IRAM.
2. Copy the files that you want in the ROM image into the target IRAM.
3. Purge all other copies of any of the LEX files you will be putting in ROM and run commands from the LEX files and the BASIC programs to verify and ensure access, versions, etc.
B. Prepare the image
Use the PTGENC$() command from the CMT EPROM tools to calculate and write the port checkum and also chain all BASIC files (verify GOTOs are legal, etc.). This is done with the target port as follows: PTGENC$(':port(2)')
C. Copy the image to the PC to load into the ROM emulator
Copy the image to your PC using a BASIC program to send the stream of bytes to ILPer (or pyILPER) as explained in the emu71/Win manual from Christoph Gissielink, quoted verbatim here:
Code:
3. ROM Images
You need ROM images. The necessary ROM images are copyrighted by
Hewlett Packard and I have no license to distribute them.
Please don't ask me, I will not send you mine.
This is a ROM dump program from Jean-François Garnier reading the
HP-71B ROM content and sending the data to a HP-IL printer device.
In this case I prefer using his PIL-Box with ILPer for capturing the data
in the ILPer Printer area.
10 DIM A$[64]
20 A=HTD("0") ! start address of ROM to transfer
30 FOR I=0 TO 64*32-1 ! length of ROM (here for 64Kb)
40 A$=PEEK$(DTH$(A+I*64),64)
50 OUTPUT :1 ;A$
60 NEXT I
The output format is a memory dump file like used by Derek S. Nickel's
Voyager program. With the program Dmp2rom.exe from the file tool package
the memory dump file can be converted to the necessary ROM file format.
If you made the ROM dump, you may also modify the program above to
read the HP-IL ROM module content.
10 DIM A$[64]
20 A=IP(HTD(ADDR$("HPILROM"))/256)*256 ! start address of HPIL ROM to transfer
30 FOR I=0 TO 16*32-1 ! length of ROM (here for 16Kb)
40 A$=PEEK$(DTH$(A+I*64),64)
50 OUTPUT :1 ;A$
60 NEXT I
ROM images are valid in a packed (even address lower nibble, odd address higher nibble)
or unpacked (one nibble per byte with even address first) form. Files in the packed form
have the same format like the files used in Emu71 for DOS from Jean-François Garnier.
They can be validated with the TITANCHK.EXE command line utility. TITANCHK.EXE
is part of the Emu71 installation package or binary distribution or can be downloaded
separately here. To do that, start a Command Prompt while running Windows,
and type:
Titanchk <image-file>
where <image-file> is the ROM image you want to test. As result you will get a report
of the Checksum check.
The results of the copy go to the printer window in ILPer; once completed, copy the program output to a text file, to then convert to the binary image you will load.
Here's a link to the file tool package for converting the text output to the binary format file:
http://hp.giesselink.com/Pcuti/FILETOOL.ZIP
It can sound onorous, but it's really pretty straightforward.