Creating EPROM Image files for HHP 71B EPROM Modules
03-19-2020, 01:03 AM
Post: #1
 rprosperi Super Moderator Posts: 5,201 Joined: Dec 2013
Creating EPROM Image files for HHP 71B EPROM Modules
The genesis of this post started in another thread (https://www.hpmuseum.org/forum/thread-14...#pid129168) but I created this new post to not hijack that thread, and also to make it easier to find in the future.

Below are 2 programs for creating an image file on the PC to burn a normal 27256 32KB EPROM Chip to use in the HHP Card Reader Port carrier modules.

I acquired an HHP EPROM Module a couple years ago and wondered about how to burn the vanilla EPROM chips one inserts into the carrier. I recalled vaguely that this had been presented at an HHC about a thousand years ago so went searching through Jake's Collection of PPC Journals, then CHHU journals, etc, and after 2 weeks eventually found the article by Dave Conklin of Firmware Specialists in the 1985 Atlanta HHC Conference proceedings, pp. 105-111.

The original article was aimed at connecting an EPROM burner via RS-232 on the HP-IL loop, then copying the contents of a 71B ROM/IRAM port to the burner's buffer, and also formatting the bytes as needed to burn (nibble reversing each byte and inverting bits). Today, instead of using an HP-IL or RS-232 based burner we simply dump the contents via PIL-Box/IL-Per to a virtual printer (or DOSLINK device), then copy/paste the contents to a text file on the PC and then use normal burners and tools to burn the text file to a 32KB EPROM chip.

I did not have an EPROM burner so I contacted Paul Berger to explain the challenge and he not only had one, but within a few short days made better progress than I had hacking the program to dump to IL-Per and after a few rounds of testing and tweaking back and forth, the utilities listed below, ported by Paul, do the trick.

Essential Ingredients:

71B with module to copy in a :PORT
Forth/Assembler ROM
HP-IL Module
PIL-Box and IL-Per (or pyILPer)
27256 (32KB) EPROM chips (erased)
EPROM Burner and s/w to import/convert text files

The procedure is pretty evident, though if you've not used FORTH before, you will need to enter and verify that program works before you can run the BASIC program.

Code:
 Based on Dave Conklin's article in the Atlanta 1985 HHC Proceedings, modified to copy to DOS file on HPILLINK (vs. to serial-attached burner) >LIST NOTC ( EPFORTH 3/29/85 ) ( COPYRIGHT 1985 FIRMWARE SPECIALISTS, INC. ) ( FORTH SOURCE FOR HP71 EPROM BURNER CODE ) DECIMAL VARIABLE STEPSIZE  VARIABLE BUFADR VARIABLE BUF 520 ALLOT  VARIABLE CKSM : @NOTC ( ADR - PARTIALCKSM BFADR ) BUF BUFADR ! 0 CKSM ! DUP STEPSIZE @ + SWAP DO   I 1+ N@ NOT BUFADR @ N!   I N@ NOT BUFADR @ 1+ !   I C@ NOT 255 AND CKSM +!   2 BUFADR +! 2 +LOOP CKSM C@ BUF ; >LIST PHBDATA 10 INPUT "Enter HEX starting address of IRAM ";B1$20 INPUT "Enter HPIL link address of DOS file device ";A2 30 CALL EXPDATA(A2,B1$,32768,32) 40 END  200 SUB EXPDATA(A,B$,N,R) 210 ! EXPDATA 3/29/85 220 ! COPYRIGHT 1985 FIRMWARE SPECIALISTS, INC. 230 ! SUBROUTINE TO TRANSMIT ROM IMAGE TO EPROM BURNER 240 ! MODIFIED BY PAUL BERGER 03/31/2018 TO PROCESS 250 ! A WHOLE 32K IRAM AND DUMP RESULTS TO A HPIL 260 ! DOS FILE DEVICE 270 ! A=LOOP ADDRESS 280 ! B$=HEX STARTING ADDR IRAM USE MEMBUF TO DETERMINE ADDRESS 290 ! N=NUMBER OF BYTES OF DATA 300 ! R=RECORD SIZE IN BYTES 310 R$=":"&DTH$(R)[4] 320 DIM H$[9+R*2+2] 330 S=R*2 ! STEPSIZE 340 DISP TIME$ 350 B=HTD(B$) 360 E=B+N*2-1 365 FORTHX "STEPSIZE !",S 367 FOR I=B TO E STEP S 370 FORTHX "@NOTC",I 380 A1=(I-B)/2 390 H$=R$&DTH$(A1)[2]&"00"&PEEK$(DTH$(FORTHI),S) 400 C=FORTHI+R+A1 DIV 256+MOD(A1,256) 410 C=MOD(C,256) @ IF C#0 THEN C=256-C 420 C$=DTH$(C)[4] 430 OUTPUT :A ;H$&C$ 440 NEXT I 450 OUTPUT :A ;":00000001FF"; 460 DISP TIME\$ 470 END SUB

2 files are attached, the above listing and also a .LIF volume with the 2 programs (FORTH and BASIC) listed above, so you don't have to type them in. The 2nd file is a .LIF file renamed to .txt to coerce the Forum s/w to let it be attached. Save it to your PC then rename it by removing the ".txt" at the end.

Attached File(s)