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 system in operation... (in Konsole running under Ubuntu)


The letter A had been pressed to run BASIC, a program entered then BYE given to return to the menu, at which point options 7 to 9 became visible (and whenever there's a binary system in "alternate memory", a buffer for 31KW memory images). If option 7 is selected the menu asks to run MSUPATCH (if MSU BASIC detected) which can be used to change the text displayed when it starts (among things), then it prompts for a name to save the file to. If a name is given the program is saved and displayed on the menu. When the newly saved program is selected to run it still contains the program that was entered, ready to RUN or edit further. Pretty nifty stuff for a system that has no knowledge of disk files, but that doesn't matter - HP-IPL/OS binary files are simply 31KW chunks of memory that are loaded and run from 2.

Before running the binary HP-IPL/OS copies itself to alt mem and puts a short program in memory at location 77000, when run this "swapper" program swaps alt and main memory and runs from 2, rerunning HP-IPL/OS and leaving whatever was running in alt mem where it can be saved or otherwise processed. MSU BASIC has been patched to not clear memory, and to run 77000 when BYE is given (if the swapper exists). "BCS" binaries such as the CHESS, 31-ODD and REVERSIX programs have no knowledge of this so after using them they have to be halted to run 77000 manually to return to the menu. These programs also require CRLF enters or control-J has to be pressed to enter data, so option 2 for halting is handy for entering set tty autolf and set tty noautolf and other sim commands.

The SUMMARY text file is a copy of summary.txt that comes with the main HP-IPL/OS archive. Not everything described is included or is able to run under sim, and doesn't describe everything that is included, but it's the best reference available for IPL programming. IPL, assembly and text files from the main HP-IPL/OS archive can be browsed from the Files Index. The NOTES file was created using the provided FED editor and describes the included programs and the operating system. Refer to the readme.txt file in the 7906sim.zip file for startup instructions for Windows and Linux. The zip also contains another zip containing the sim scripts and source used to make the simulation, and if needed can be used to make a version of the operating system for the smaller 7900 disk. I don't know if this software actually works on real 7900 or 7906 disks, it has only been tested under simulation and running from an IDE disk.


Notes...

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 (older version, same procedure for newer)

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 3/16/09
Terry Newton (wtnewton@infionline.net)