HP21MX/7906 Disk Simulation

This package contains a bootable SimH HP2100 7906 disk image containing a HP-IPL/OS-based disk menu and several old-comp and old-comp-style programs to run. The disk image can also be directly copied to an IDE disk, connected to a HP2113E or compatible CPU using an 8052-based interface, and booted without change other than reconfiguring the software/hardware to use the same device slots.

Here's the main menu... (in Xterm running under Ubuntu)

An antique chess game written in ALGOL/assembly...

The Sea Battle program...

A pair of Treks...

HPBASIC doing color... (a new hack for a 40 year old interpreter)

The operating system can run just about any "absolute" HP21xx minicomputer application that restricts itself to 31KW or less, including suitably prepared BCS apps such as the chess program. An enhanced version of HPBASIC and the vintage assembler and compilers are included on the disk image for restoring old code and writing new code using the old development tools.


3/9/21 - While on my mind and messing with stuff, added a few more BASIC games to the disk image... OTHPT2 is an older (non-ANSI) version of my Reversi program with one level of look-ahead (minor mod from OTHPT to add a random seed prompt so it wouldn't play the same game every time), HAMERABI is an old classic, FTBLOV is a conversion of the old FTBL football program using the overlay hack's CALL(7,x) and CALL(8,x) to implement string input and output (still didn't get backspace exactly right but works well enough for this), and PTSTRK is a papertape basic conversion of an old Altair Trek program.

3/7/21 - switched to using PuTTY for the Windows Telnet scripts, lots easier than trying to make Hyperterminal work.

3/6/21 - Fixed it! there was a bug in the 7906.ipl driver - the STC 6,C instruction that starts a DMA transfer was missing the ,C part... in the driver changed 102706 to 103706 in both the boot build and the SFS utility build, now it works with the latest hp2100 simulator as well as old versions. The patch is simple enough to apply to existing installs based on the previous 7906 disk sim, after booting and exiting to HP-IPL/OS, enter 33032 GET PNUM and if it says 102706 then enter 33032 103706 PUT then do 33032 GET PNUM again and make sure it now says 103706. If so DGEN to update the boot system. The SFS utility build is also affected, to update it, after running SFS UTILITY do the same patch then enter "@ SFS UTILITY" XDEL "@ SFS UTILITY" XSAVE to update it. No other changes were made to the disk image other than bumping the versions to 1.66 and adding a note at the end of the DISK NOTES file. The hpiplos_main_testing.zip archive has been updated with the new version and also modified the build scripts and MKBCS utility to be compatible with the latest hp2100 simulator. I haven't fully tested MKBCS yet but it appears to be doing the right thing now, doesn't affect the 7906 disk simulation so if I find an issue with it I'll fix it in the archive.

2/28/21 - The 7906 Disk Simulation is Not Working with the new hp2100 simulator from the SimH HP Simulator page... it boots but the binaries don't run, they crash when run using the menu or manually loaded with XLOAD with almost random effects. Works fine with my old modified hp2100 binaries and works with an older beta version of the github version 4 branch but it does not work with the current "Release 29" version from there or the current "Release 30" version. [... fixed, was a typo that happened to still work with old simulator versions, so added my old hp2100 binaries to keep it working]

6/12/11 - Updated the simulation to use a modified HPBASIC rather than MSUBASIC, the updated BASIC permits using a regular backspace to correct mistakes rather than the old "rubout" character ("_"), and has an overlay added to provide calls for peek/poke, character I/O and other features. Dropped menu programs HAMURABI, MANDPLOT, 31-ODD, 1DCA, and ECAL. Replaced OTH with OTHOV, REVERSIX with REVRSI, BEASI with BEASIOV and SFS/EDIT with SFS UTILITY. Added menu programs SEA BATTLE and OREGON. Chess and REVRSI source code now menu entries for reading. Removed some of the optional IPL files, added vintage assembler, FORTRAN, ALGOL and BCS linker with words to run them in the SFS utility build. BCS was built with an experimental modified TTY driver that eliminates having to switch to CRLF enters or press control-M control-J to enter lines. Manually hacked the boot build to alter a text message about that, and changed the BASIC re-enter vector to 2027 to properly display READY, incremented the boot system version to 1.61 (not really a new version yet, next real version should be 1.64). This new version of the simulation focuses less on HP-IPL/OS and removes dubious IPL's like the "printer" driver and SFS library stuff, and instead focuses more on vintage and vintage-style applications made using minorly adapted versions of the original HP21xx software. Everything that was removed can be added back by importing files from the HP-IPL/OS archive, nothing is lost just makes room for including better and more interesting apps.

This is a fairly drastic change so keeping the previous MSUBASIC-based version around in the 7906sim_101002.zip archive, at least for now.

These links are pretty outdated, but may still contain useful info...

binpatch.txt (3/25/08) - How to patch binaries using HP-IPL/OS
simextra.txt (4/18/08) - Additional "technical" notes
update151p.txt (8/12/08) - How to update an existing sim (covers an older version)

10/2/10 - Updated the simulation to version 1.60 with dictionary overflow protection and an ERASE word that erases the last package loaded, both are very useful when making new builds. The boot system includes an updated menu that fixes a bug that kept menu option Z from being used, this version permits 6 more entries past Z using ascii characters ("[" through "`") and can save HPBASIC as well as MSU BASIC programs. Added TTY TREK and MANDPLOT programs (MSU BASIC), updated DM2.IPL, added SIOBCS.IPL, updated SUMMARY and NOTES. The readme.txt file was updated to include KDE4-compatible bash running scripts (I hope:-), updated the scripts in mkdisk.zip to be compatible with the "testing" archive in hpiplos_main_testing.zip, upon which this update is based upon.

3/16/09 - The previous printer driver worked under simulation but not with real hardware. Updated PRINT.IPL and SUMMARY to fix (file dates 3/15/09). The new printer driver renames the words, MSPRN etc is now MSLPT to match other LPT references in CONFIG etc, and adds stand-alone print words so things can be printed directly without involving MS redirection. The printer driver is of limited use under simulation but +PE function is handy for logging all console I/O to a file.

12/4/08 -  Added a throttle setting to the sim script so it won't load the CPU to 100%, presently set to 80% which on my systems actually uses about 66% of the CPU. Reduce for very fast machines or laptops but if set too slow can interfere with pasting code into MSU BASIC. No changes to the simulation disk itself, added this line because some (in my opinion broken) machines cannot sustain 100% CPU usage without problems.

9/14/08 - Updated EDIT.IPL to a new version that uses machine code (faster), updated SUMMARY to match. Added information about running on real hardware to the readme file.

9/1/08 - Replaced the lib2.ipl and a2l.ipl library packages with the new sfslib.ipl library system, updated SUMMARY and NOTES to describe.

8/20/08 - Updated the sim's boot system and DM2.IPL source for the menu (8/19/08, now 1.52A). The new menu fixes the import text from PTR function so that it properly skips the leader, not really an issue under sim but this is for real hardware too and some PTR emulators require a leader of zeroes. Dropped an empty string if just enter pressed at the save binary file name prompt. Now displays the HP-IPL/OS version string in the title rather than a generic title. Better handling of invalid keypresses at the main menu by backing up and reprinting the prompt. PC keyboards still cause inadvertent running if cursor keys etc pressed due to capitol letters in the escape sequence but would take too much code to ignore that, just don't do it. The load ABS function now has a way out if inadvertently selected (without having to halt and restart). DM2.IPL no longer requires (but still uses) MSUPATCH to reduce requirements when using for other apps. Added a conversion of the classic LANDER game, updated NOTES and SUMMARY docs.

8/12/08 - Updated the sim's boot system and DM2.IPL source for the menu (8/11/08, now 1.51P). While playing with it on my HP2113E I used the Load ABS from PTR option to copy over the another build, then saved it to disk using the Save binary option, got 7Filename: for the prompt... oops... moved a CRLF.

8/10/08 - Updated the sim's SFS/EDIT build and associated files with the latest version of SFS from HP-IPL/OS v1.52 (previous version could destroy a directory if the required buffer memory wasn't present, now the DIRECTORY word does a memory test). Added A2L.IPL to use with the SFS library system (in LIB2.IPL) to permit using the editor to craft multi-word library applications. Added instructions to the NOTES file for creating and using a SFS library system to provide quick access to utilities without having to inflate the dictionary or disturbing alternate memory during the loading process. Also added CONALT.IPL and BKFILE.IPL for dumping and restoring files to and from the console as encoded text. These are mainly for me so I can back up files from my HP2113E which doesn't have a PTP connection. No changes to the boot system or other included software.

4/18/08 - Added MSU BASIC binaries containing GOLF, BEASTI and GOMOKU. Edited simextra.txt linked above to clarify how the SFS disk layout derives a file's location, added more technical docs to the sim's NOTES file.

4/11/08 - Cleaned out and condensed this section... no need for all the editor update notes, the boot system was barely touched and the editor problems probably wouldn't have been noticed except for pushing it hard in the preperation of the IPL and NOTES files included with the sim (that's a good thing, bugs got found and fixed). Technical notes are now in a separate text file.

4/7/08 - Imported the new FED.IPL "standard" editor for the FED on the menu, and AEDIT.IPL for the "experimental" version that's in the SFS/EDIT build, now version 1.51L and all appears well. With any luck there are no more bugs to fix and the next update can be to actually add additional content. Or at least sneak in fixes along with new content... I'm ready to get back to BASIC.

3/27/08 to 4/6/08 - [condensed] various fixes to the editor and SFS/EDIT build, took a few tries.

3/27/08 - [condensed] Renamed +IRQ to !IRQ to enable interrupts in the boot system, now version 1.51F. Interrupts are not necessary here but can cause problems if used as a base to make other builds. In particular SFS requires that interrupts be enabled (even if only briefly then disabled) or file writes fail.

3/22/08 - [condensed] Updated the menu program (DM2.IPL) to avoid renaming files to no name if just enter pressed at the new name prompt, now it does nothing in that situation. Boot system is now version 1.51E. Here's the bootup menu from the original 3/15/08 1.51D version...

The new menu is fancier than the original dmenu.ipl version [in the HP-IPL/OS archive]...

...but it's much more bloated and specific to MSU BASIC. No plans to replace the simpler menu in the main archive which directly supports saving HP paper-tape BASIC programs with an extra trick - can patch them to automatically run the embedded program. But I don't mind entering RUN. The most useful aspect of the new menu (and the cause of most of the bloat) is the inclusion of common operations - renaming, deleting, punching and loading ABS binaries and a submenu for importing and exporting files. The menu's text import function does not require knowing the byte-size of the file (unlike the stock MS2F command), instead it just stops when the first zero byte of the trailer is detected, which later versions of the HP2100 simulator automatically add by default. Of course this limits it to text but I'll take it, beats having to do ! ls -la file.ipl (! dir file.ipl for Windows) then after attaching the file doing DECIMAL [bytes] OCTAL "FILE" MS2F. Now it's just press a key, press Y to halt, attach ptr file, c, c, done. By the way... to avoid creating a 0-byte file if the file doesn't exist, attach -e ptr file instead of just attach ptr file.

Page created 3/22/08, last modified 6/12/11, 2/27/21
Terry Newton (wtnewton@infionline.net)