Emu71/DOS is a software
emulator of the HP-71B machine and HP-IL system.
It runs under DOS or in a command box under various 32-bit Windows (95,98,2000,NT,...).
It can run on 64-bit OS using a virtual DOS environment (see below).
Note: in all this document, Emu71 means “Emu71/DOS”.
Emu71 Documentation (pdf file)
Emu71 2.45 Freeware Package without ROM images – 20th Anniversary Edition ! Oct. 2016
Emu71 2.45 Source Files released under GNU Public Licence – new Oct. 2016
Emu71 uses ROM images of HP-71B ROM and modules (Math, Forth, ...).
To help you, you will find here the necessary images of the HP-71B machine, as well as the Forth and HP-IL modules. Although I don't have a formal authorization from the Hewlett-Packard company, I considered that this is consistent with the publication by HP of the source listings of these ROM. If it happens that the Hewlett-Packard company should be opposed to this, I would immediately remove these files from my site. Don't ask me to provide other HP or third party ROM images.
Starting from version 2.44, Emu71 can manage large disc volumes up to 16 MB.
Now, INITIALIZE creates a 16
MB volume on HDRIVE1, and a standard
640 KB disc on HDRIVE2.
The volume size created by INITIALIZE is the only difference between HDRIVE1 and HDRIVE2, both drives can manage any disc image up to 16 MB.
When initializing HDRIVE1, I recommend to do INITIALIZE :HDRIVE1,2000 to limit the directory to 2000 entries (by default, INITIALIZE uses 1/32 of the disc size for the directory, that would be 16000 entries, consuming 512 KB).
The maximum size of a data or text file that can be created by the
HP-71B is 512 KB.
The example above shows the results of the MAXM (medium maximum size) and MEMM (medium available room) functions of the JPC ROM after creating 16 files of 512 KB.
Note that the JPC ROM revision F04 is needed for the MAXM, MAXD, MEMM and MEMD to work properly on volumes larger than 1 MB.
You can expand existing disc image files by using this small HP-71B
piece of code LDISC, but the directory size
will not be expanded.
It can be useful to expand the size of volume holding a small amount of large files such as ROM images.
Since most bare 64-bit Windows OS versions don’t support 16-bit DOS applications anymore, a virtual environment must be used.
version 0.74 has been successfully used to run Emu71/DOS on a Win8-64 bit
A limitation is that the cut&paste operation is not supported in DOSBox.
Emu71/DOS includes a native support of the PIL-Box, which works
“reasonably” well on native DOS, Win98 or Win2K systems.
These systems are now obsolete and Emu71/DOS has to run in a virtual DOS environment on modern 64-bit OS, making this native support no more effective.
I now recommend to use the ILPer software in conjunction with the PIL-Box as a
gateway between Emu71/DOS and a real HP-71B for program/data exchange.
This is done by sharing the same virtual drive HDRIVE1.DAT in Emu71/DOS and ILPer.
Emu71/Win is a native Windows HP-71B emulator with a much more realistic GUI and was written independently by Christoph Giesselink.
Emu71/Win has no direct relation with Emu71/DOS, except from a small part of the code (related to the HP-IL) and from the fact that the authors know each other.
LIF archives can be found on the Web. Somes examples are included here:
To use an archive, unpack it to put the LIF file image (size should be about 630K) to some directory, and declare the path to this file in HDRIVE1 or HDRIVE2 declaration (Emu71.ini file). Example: HDRIVE2 swap\jpc01.lif
The JPC ROM is a great HP-71B system enhancement. It was made by the former PPC-Paris Club and involved a number of active members (including myself).
To install JPC ROM into Emu71, just add a line in your emu71.ini file like: " 1 ROM 32 jpcf05.bin "
Refer to my JPC ROM page for more ROM images and documentation.
The LEX of ID#52, also known as the User Library 1, is a collection of
various keywords that were widely used in many HP or user programs.
The most well-known keywords are KEYWAIT$, REV$, MSG$, TRIM$, RPT$, but there are also several less-known but powerful keywords like SYSTEM$, BREAK, MODIFY/LIST$, PRINT TO, IMAGE$ and others.
Although a few functions duplicate some JPC ROM equivalent features (LINKLEX, CMDSTK for instance), the User Library keyword collection (LEX ID#52) is a great complement to the HP-71B / JPC ROM system.
These keywords come from HP or from the user community. They were
originally available as individual LEX files, see for instance a selection of
these LEX files on the Joe
Using multiple LEX files not only uses more memory, but also slows down the HP-71B operation by adding multiple table lookup and poll handler overhead. Some attempts to merge several keywords in a single LEX file have been done in the past, for instance the USERLIBA and USERLIBC LEX files provide partial keyword compilation.
With the ULIB52 Lex, I merged the latest known versions of almost all
the known keywords from the LEX ID#52 in a single definitive file.
The re-built source files come from the disassembly of individual LEX files (done by me and others) and a manual merge of the internal tables and poll handler code with a unique version string (VER$=”ULIB:c” for this beta version).
A few original commented source files are known (thanks to Bob Prosperi):
There are several missing keywords in the sequential token numbering (see the documentation for details).
Some of these missing tokens are mentioned the HP71 System Assignment document (SAR$, RPTBIT$, EXTRBIT, STUFFBIT) but no LEX corresponding to these keywords is known. Any information is welcome!
I’m also interested by any information on original source files of
any LEX ID#52 keywords.
Symbolix is a large (20KB) program written by J.K. Horn to do symbolic calculations on the HP-71B. Wlodek Mier-J. wrote about this program that "most users considered it faster and better than the symbolic operations of the contemporary HP-28C". And it's even faster and powerful in Emu71!
To install it in Emu71, just add a line in your emu71.ini file like: " 1 ROM 32 symbolix.bin "
Soft Forth is a special version of the HP-71B Forth kernel that runs in
RAM and can be burned into standard (soft addressed) ROM or EPROM modules. The
purpose of the Soft Forth was to allow third parties to distribute a Forth
application without the need for the customers to have the Forth module. But
developing a soft Forth application still requires the Forth module (and a 64KB
RAM port to hold the soft Forth kernel and application image). So Soft Forth is
not a substitute of the Forth module.
See also on page 2.2 of the documentation a problem related to the HP-71B ROM 1BBBB.
The C71 module is an example of a Forth application built with Soft-Forth (version SFTH:F), and actually the only known application of this type.
C71 implements a RPN calculator (note that g-ON is used to exit C71, no other documentation is available).
a classic board game. The HP-71B version below is an adaptation I made of a
HP-85 program around 1985, with minor changes for Emu71 done in 2003.
It run great on my Emu71/DOS in a 50-line mode command box on my old Win2k system. The screen size is too small to run it in 25-line mode such as in a DOSBox environment.
It is now possible to also run it in Emu71/Win using the ILvideo80 device (HP92198 emulation):
Reversi on Emu71/DOS Reversi on Emu71/Win with ILVideo
To load it into Emu71, use the DOSLink device. On Emu71/DOS, copy the reversi.b71 file to emu_in.dat. On Emu71/Win, just make the DOSLink infile point to reversi.b71. Then do COPY :DOSLINK in Emu71.
The original HP-85 game and documentation can be found here: http://www.series80.org/Programs/HP85-GamesPac/index.html
Pirate is a great adventure game written by Scott & Alexis Adams in the late '70s that was published in the BYTE magazine on December 1980. I found it so wonderful that I ported the original Basic program over the years on my Ohio Scientific system (1983), then on the HP71 (1985), and finally on the HP48 (1994) in system RPL (A HP48 version can still be found on hpcalc.org).
The original HP71 version needed a 32K RAM module and used a disc drive and a video display (both emulated by my ILPER system of the time).
The version below has been slightly modified for Emu71 and is provided as a 32K module (IRAM or ROM).
Pirate is much more fun and easy to play with Emu71 due to the faster response time.
More specific links about the HP-71B.
J-F Garnier, 2017