JPC ROM F01 source notes

This release is a new version built by me (J-F Garnier) that merges all the bug fixes and improvements of versions X and E together, plus a few specific changes. It is based on the source files I collected during the past years to rebuild the original versions X and E.

This version includes the extended HPIL messages and the unrestricted PEEK$/POKE functions, but not the KEYWAIT$ function because it was coming from HP. It was included in previous versions of the JPC ROM for convenience only but is not part of the JPC LEX.

List of JPC LEX modules, in order of appearance in the binary code:

Name		Description (see notes below)
----		-----------------------------
tables		headers, main table, text table (1)
msg		message table (1)
decomp		decompile routines (1)
parse		parse routines (1)
jumper		HPIL ROM jumper routine (2)
ppoll		NLOOP, PPOLL, SRQ, SLEEP
mmlex		MAXD, MEMM, MEMD, MAXM
rw		WREC, RREC
ddir		DCAT, PCAT (3)
files		FILESIZE
polhnd		poll handler (1)
finput		FINPUT (4)
adfcn		ADSIZE, ADFIND, ADCREATE, ADDELETE, ADGET, ADPUT (3)
attn		ATTN
blist		PBLIST, DBLIST, RENUMREM
combarr		PERM, COMB
date		DATESTR$, DATEADD, DDAYS, DOW$, DOW, DMY, MDY
des		INVERSE, PAINT, CONTRAST
desal		HTA$, ADBUF$, ASC$, ATH$, RED$
div		PHI, LCM, GCD, FPRIM, NPRIM, PRIM
drive		LXON, LXOFF
endup		ENDUP, EXECUTE, STARTUP$, ENDUP$
exit		EXIT
fkey		FKEY
find		FIND
forma		SPACE$, REDUCE$, CENTER$, FORMAT$, CESURE$
frac		FRAC$
graph		GPSET, GLINE
hms		HR, HMS, HMSSUB, HMSADD
ka		KA (5)
maplex		MAP$, MAP
marge		MARGIN
menu		MENU
print		BELL, BOLD, PCR, ESC$, PFF, PLF, MODE,
                PERF, PAGELEN, UNDERLINE, WRAP
rep		REPLACE$
roman		ROMAN (3)
rplc		alternate replace (former RPCL$)
scan		TOKEN, ENTRY$
stk		STACK
struc2		SELECT, CASE, LEAVE, END, WHILE, REPEAT, LOOP, UNTIL, IF, ELSE
swap		VARSWAP
shrink		SHRINK
sysop		NEXTOP$, OPCODE$ (5)
sysed		SYSEDIT (5)
posi		POSI
edit		EDIT (allows to EDIT a LEX file in order to merge 2 LEXs)
pk		unrestricted PEEK$/POKE functions
ilmsg		HPIL extended messages


Notes:
1. The tables, msg, decomp, parse and polhnd modules were rebuilt from the JPC LEX binary and from the various JPC source files.
2. The jumper module is the original public code from HP to access the HPIL ROM.
3. The adfcn, roman and ddir modules are based on the JPC LEX disassembly made by Rodger Rosenbaum, as no source files are available.
4. The finput module source is based on the listing published in the JPC Journal #43.
5. The source file of the ka module is based on a personal private archive file of an early version. The source files of the sys modules are based on a private file kept by Jan Buitenhuis.

All the other source files are based on published material. Note that most comments are in French, I wrote new comments in English when needed but I didn't attempt to translate the original ones, it would be too much work for too little benefit.

Many modules actually include bug fixes or enhancements that were never published in the JPC Journal nor made available in the Swap Disks. Minor changes and code packing have been done on almost all modules in version F.

Minor changes were done in order to assemble the JPC LEX with the Sasm/Sload tools from HP. The build batch file (bldjpc.bat) and the loader command file (jpclex.m) are provided. I didn't bother with a makefile because the complete build just takes a few seconds on modern PC. You have also to assemble the hp71 entry points definition file, see the comment lines in bldjpc.bat file.
The JPCSHORT assembly symbol allows to build a short version without the adfcn, ka and roman modules (see bldjpcs.txt).
See more details on Saturn Developement Tools for the HP-71B in the Tools71.zip file.


The JPC ROM source files were collected and edited from various sources (Swap Disks, JPC Journals, personal archives, private communications, JPC ROM disassembly from Rodger Rosenbaum, JPC ROM E binary provided by Claude Marcoin) by Jean-Francois Garnier during the years 2005-2006. The JPC ROM version F was built in 2006-2007 and released in September 2007.

For additional information on the JPC ROM, please visit:
http://membres.lycos.fr/jeffcalc/jpcrom.html

