HP 32033G MPE-V/E Operating System Software Kit =============================================== J. David Bryan Last update: 2024-06-10 This package contains a bootable disc image of an HP 3000 MPE-V/E version G.3P.00 operating system. The image is in SIMH format, with each 16-bit disc word in little-endian format, i.e., lower-order byte first. It is provided for use with the SIMH HP 3000 Series 58 simulator that is available at: http://simh.trailing-edge.com/hp/ This package requires Release 13 or later of the simulator. Earlier releases, or releases based on SCP 4.x will not work. Please refer to the following documents from the simulator distribution archive file when using this kit: Filename Title ----------------------- ------------------------------------ doc/hp3000_guide.pdf the "HP 3000 Simulator User's Guide" doc/simh_doc.pdf the "SIMH Users' Guide" doc/simh_supplement.pdf the "SIMH Users' Guide Supplement" doc/hp3000_release.txt the "SIMH/HP 3000 Release Notes" Problems with the simulator or this software kit should be reported as indicated in the Release Notes document. This kit includes the following files: Filename Description ------------------------- ------------------------------------------------------ mpe.7914.disc the bootable MPE disc image mpe-ve-auto.sim a script to cold load the disc and perform a COOLSTART mpe-ve-man.sim a script to cold load the disc for manual startup mpe-ve-1-reload.sim a script to RELOAD the system from the FOS tape mpe-ve-2-restore.sim a script to RESTORE compilers and examples from tape mpe-ve-3-sysdump.sim a script to SYSDUMP the disc to tape for alteration mpe-ve-4-coldstart.sim a script to COLDSTART the system to load the changes configure-disc.inc an included script to configure the system disc model mpe-ve-1-reload.log the console log for the mpe-ve-1-reload.sim script mpe-ve-2-restore.log the console log for the mpe-ve-2-restore.sim script mpe-ve-3-sysdump.log the console log for the mpe-ve-3-sysdump.sim script mpe-ve-4-coldstart.log the console log for the mpe-ve-4-coldstart.sim script mpe-ve-1-reload.lst the line printer output for the AUTOINST process mpe-coldload-G.3P.00.tape the system cold-load tape readme.txt this documentation file PDF manuals describing MPE commands are available from Bitsavers and the HP Computer Museum at: http://www.bitsavers.org/pdf/hp/3000/ https://www.hpmuseum.net/exhibit.php?catdoc=32 -------------------- Using the Disc Image -------------------- After unpacking the archive into a directory, the disc image is ready to run using the HP 3000 simulator and either the "mpe-ve-auto.sim" or "mpe-ve-man.sim" simulator command file. "mpe-ve-auto.sim" sets up the simulation environment, attaches the "printer.txt" file to a simulated HP 2617 line printer, attaches the disc image to the simulated HP 7914 disc drive, cold loads the system, requests a COOLSTART, and supplies the date and time to MPE (see the usage note below). At the conclusion of the script, the system operator is logged on at the simulation console, and the Asynchronous Data Communications Channel (ADCC) is configured to listen for Telnet connections on local port 1054. "mpe-ve-man.sim" performs the same setup but stops after cold loading the system. The user must perform the remainder of the startup interaction manually -- choosing a WARMSTART or COOLSTART, etc. Both command files assign "localhost" port 1054 to the ADCC. If you use a firewall, you may have to allow the "hp3000" executable to receive incoming connections. If port 1054 is in use or is otherwise unsuitable, you may edit the command files to use any available local port. Once the HP 3000 simulator has been compiled, running: hp3000 mpe-ve-auto ...should produce this output on the simulation console: USER VERSION: G.3P.00 WHICH OPTION ? COOLSTART ANY CHANGES? NO **WARNING** AFTER THIS POINT DO NOT INTERRUPT THE STARTUP PROCESS UNTIL AFTER THE MESSAGE " *WELCOME* " APPEARS DIRECTORY MAINTENANCE COMPLETED PART 1 OF 6 COMPLETED - MEMORY RESIDENT TABLES SET UP PART 2 OF 6 COMPLETED - SL BINDING PART 3 OF 6 COMPLETED - SYSTEM I/O PROCESS CREATION PART 4 OF 6 COMPLETED - DRIVER LOADING PART 5 OF 6 COMPLETED - DISC RESIDENT TABLES SET UP PART 6 OF 6 COMPLETED - SYSTEM PROCESS CREATION DATE (M/D/Y)?03/17/24 TIME (H:M)?02:26 SUN, MAR 17, 2024, 2:26 AM? (Y/N)Y LOG FILE NUMBER 6 ON *WELCOME* :HELLO OPERATOR.SYS;HIPRI 2:26/13/SP#6/SPOOLED OUT 2:26/#S1/15/LOGON FOR: OPERATOR.SYS,OPERATOR ON LDEV #20 HP3000 RELEASE: G.3P.00 USER VERSION: G.3P.00 SUN, MAR 17, 2024, 2:26 AM MPE V HP32033 G.12.00 Copyright Hewlett-Packard 1984. All Rights Reserved. : ...where the date and time reflect the current date and time of the host system (starting in 2028, the year will be selected from range 2000-2027 whose days of the week and leap-year status match those of the current year, as MPE does not support dates after December 31, 2027). Two example BASIC programs are provided in the OPERATOR.SYS account. The "TEN" program calculates and prints the square roots of the numbers from 1 to 10 in both single- and double-precision. It may be run from the BASIC interpreter at the system console: :BASIC HP32101B.00.26(4WD) BASIC (C)HEWLETT-PACKARD CO 1979 >GET TEN >RUN TEN HELLO FROM HP 3000 BASIC! HERE ARE SOME SQUARE ROOTS: 1 1 1.000000000000000L+00 2 1.41421 1.414213562373095L+00 3 1.73205 1.732050807568877L+00 4 2 2.000000000000000L+00 5 2.23607 2.236067977499790L+00 6 2.44949 2.449489742783178L+00 7 2.64575 2.645751311064591L+00 8 2.82843 2.828427124746190L+00 9 3 3.000000000000000L+00 10 3.16228 3.162277660168379L+00 >EXIT END OF SUBSYSTEM : The TEN program can also be compiled by the BASIC compiler and prepared to produce an executable program that may be run directly from the command prompt: :BASICPREP TENCMD,TENRUN PAGE 0001 HP32103B.00.24(4WD) BASICOMP (C)HEWLETT-PACKARD CO 1979 $CONTROL SOURCE,USLINIT,LABEL,MAP,LIST,WARN $COMPILE TEN 10 LONG J 20 PRINT "HELLO FROM HP 3000 BASIC! HERE ARE SOME SQUARE ROOTS:" 30 PRINT 40 FOR I=1 TO 10 45 J=I 50 PRINT I,SQR(I),SQR(J) 60 NEXT I 110 END SYMBOL MAP TEN NAME TYPE STRUCTURE ADDRESS I REAL SIMPLE VAR Q+ 4 J LONG SIMPLE VAR Q+ 3,I LABEL MAP ENTRY POINT 0 STACK 9 LABEL LOCATION LABEL LOCATION LABEL LOCATION LABEL LOCATION 10= 20 31 20 31 30 46 40 50 45 63 50 70 60 113 110 124 $EXIT NO. ERRORS=000 NO. WARNINGS=000 PROCESSOR TIME=0:00:00 ELAPSED TIME=0:00:00 END OF COMPILE END OF PREPARE :RUN TENRUN HELLO FROM HP 3000 BASIC! HERE ARE SOME SQUARE ROOTS: 1 1 1.000000000000000L+00 2 1.41421 1.414213562373095L+00 3 1.73205 1.732050807568877L+00 4 2 2.000000000000000L+00 5 2.23607 2.236067977499790L+00 6 2.44949 2.449489742783178L+00 7 2.64575 2.645751311064591L+00 8 2.82843 2.828427124746190L+00 9 3 3.000000000000000L+00 10 3.16228 3.162277660168379L+00 END OF PROGRAM : The other example program is "SQR", which calculates the square root and sine of the numbers from 1 to 10 and 0.1 to 1.0, respectively, in an infinite loop. It can be used to show the speed of the simulator in multiples of a real HP 3000 Series III machine, as follows: :BASIC HP32101B.00.26(4WD) BASIC (C)HEWLETT-PACKARD CO 1979 >GET SQR >RUN SQR A COMPUTE-BOUND PROGRAM TO DEMONSTRATE THE SIMULATOR'S 'SHOW CPU SPEED' COMMAND LET IT RUN FOR SEVERAL SECONDS TO MEASURE THE SPEED AND THEN PRESS CTRL+E TO OBTAIN THE SCP PROMPT AND ENTER 'SHOW CPU SPEED' TO DISPLAY THE SPEED IN MULTIPLES OF THE SPEED OF A REAL SERIES III THEN INTERRUPT BASIC BY PRESSING CTRL+Y AND ENTER 'ABORT' TO STOP THE PROGRAM AND RETURN TO THE BASIC COMMAND PROMPT Once the program is started, let it run about ten seconds on an otherwise quiescent host system to allow the speed to be calculated. Then press CTRL+E (i.e., control-E, ^E) on the simulation console to obtain an SCP prompt and enter the "show cpu speed" command: scp> show cpu speed Simulation speed = 13x This shows that the simulator is executing machine instructions approximately 13 times faster than a real Series 58. Finally, press CTRL+Y to interrupt the program, enter ABORT to abort program execution and return to the BASIC interpreter, and then enter EXIT to return to the command prompt: *CONTROL-Y BREAK IN LINE 150 IN SQR >ABORT >EXIT END OF SUBSYSTEM : Note that if you try a SHOW CPU SPEED command while MPE is idle (e.g., while sitting at the CI prompt), you will get an unrealistic reading: : scp> show cpu speed Simulation speed = 210x This is because MPE executes a PAUS instruction while idle, and PAUS is implemented as a tight, two-word microcode loop with no memory accesses and no instruction fetches. Consequently, it appears to execute very rapidly to the simulator, which results in the invalid report. CPU speed is accurately measured only when MPE or a user program is busy. Two example COBOL programs are also provided in the OPERATOR.SYS account. "COBINT" calculates interest payments, while "COBTAX" calculates a 6% sales tax on a purchase. They may be run as follows with the COBOL-II compiler: :COBOLIIGO COBINT PAGE 0001 HP32233A.02.05 [74] Copyright Hewlett-Packard CO. 1989 [...] LINE # SEQ # COL ERROR SVRTY TEXT OF MESSAGE ------ ----- --- ----- ----- --------------- 00040 035000 80 050 W ARITHMETIC OVERFLOW MAY OCCUR. 0 ERROR(s), 0 QUESTIONABLE, 1 WARNING(s) DATA AREA IS %000370 WORDS. CPU TIME = 0:00:00. WALL TIME = 0:00:00. END OF PROGRAM END OF PREPARE ENTER THE PRESENT VALUE (999999): 001000 ENTER THE NUMBER OF TERMS (999): 036 ENTER THE ANNUAL INTEREST RATE PERCENTAGE (99V99): 0400 PRESENT VALUE ... $ 1000 TERMS ........... 36 INTEREST RATE ... 4.00% THE PAYMENT AMOUNT IS $ 29.52 END OF PROGRAM :COBOLIIGO COBTAX PAGE 0001 HP32233A.02.05 [74] Copyright Hewlett-Packard CO. 1989 [...] 0 ERROR(s), 0 QUESTIONABLE, 0 WARNING(s) DATA AREA IS %000245 WORDS. CPU TIME = 0:00:00. WALL TIME = 0:00:00. END OF PROGRAM END OF PREPARE ENTER COST OF SALE (BEFORE TAX) NO DECIMAL PT (4 DIGITS MAX) INCLUDE LEADING ZEROS! 1200 TOTAL COST OF PURCHASE = $ 12.72 ARE YOU FINISHED? (Y OR N) Y END OF PROGRAM : Connecting a terminal emulator (e.g., Reflection or QCTerm) via Telnet to local port 1054 will connect the session to the next available ADCC channel. Pressing RETURN or ENTER will bring up the MPE colon prompt from which, for example, the system manager may be logged on: Connected to the HP 3000 simulator ADCC device, line 1 :HELLO MANAGER.SYS HP3000 RELEASE: G.3P.00 USER VERSION: G.3P.00 MON, MAR 18, 2024, 2:10 AM MPE V HP32033 G.12.00 Copyright Hewlett-Packard 1984. All Rights Reserved. : Up to fifteen concurrent terminal sessions may be started independently of the operator's session running on the system console. Before exiting the simulator, MPE must be shut down to ensure that the in-memory tables are written to the disc. First log off any additional terminal emulator sessions connected via Telnet with the "BYE" command. Then log off the operator's session at the system console: :BYE CPU=15. CONNECT=25. MON, MAR 18, 2024, 2:21 AM 2:21/#S1/15/LOGOFF ON LDEV #20 Press RETURN or ENTER to get the MPE colon prompt and then press CTRL+A to get the system console prompt ("="), enter the SHUTDOWN command, and then exit the simulator after the CPU halts: : =SHUTDOWN 2:22/1/ALL JOBS LOGGED OFF 2:22/13/SP#6/STOPPED SHUT Programmed halt, CIR: 030377 (HALT 17), P: 104553 (BR P-1) sim> exit Goodbye Log file closed A log of the system console session has been saved in the "mpe-ve-auto.log" file. ------------------------- Creating a New Disc Image ------------------------- The supplied disc image was created by running the simulator with the four numbered simulator command files (mpe-ve-1-reload.sim, mpe-ve-2-restore.sim, mpe-ve-3-sysdump.sim, and mpe-ve-4-coldstart.sim) in order, i.e.: hp3000 mpe-ve-1-reload hp3000 mpe-ve-2-restore hp3000 mpe-ve-3-sysdump hp3000 mpe-ve-4-coldstart "mpe-ve-1-reload" performs a RELOAD from the MPE V/E Fundamental Operating Software (FOS) tape image to a new, blank disc image, producing the bootable image file "mpe-ve-reload.7914.disc". This process also creates the system cold-load tape that can be used to restore the bootable operating system if the system disc is corrupted. "mpe-ve-2-restore" performs a RESTORE to load the compilers and example programs onto the disc. "mpe-ve-3-sysdump" performs a SYSDUMP from disc to tape to change the code segment size from 12K to 16K. "mpe-ve-4-coldstart" performs a COLDSTART to load the changed configuration and update the system. The four console logs and the printer listing containing the job commands executed by the AUTOINST process are provided and may be examined to see how MPE was configured. Finally, the new disc image was renamed manually from "mpe-ve-reload.7914.disc" to "mpe-ve.7914.disc", which is the name used by the "mpe-ve-auto" and "mpe-ve-man" command files to boot MPE. This name change allows a new system to be generated without disturbing the existing system. The four command files expect these tape images to be present in the same directory: 32033-10452_Rev-3419.tape subsys-compilers.tape examples.tape The FOS installation tape image is available from the HP Computer Museum at: https://www.hpmuseum.net/display_item.php?sw=442 It is contained in the "MPE_Tapes.zip" file that is accessed via the "Download software" link on that page. The other two files may be recreated from the supplied disc image as described below. -------------------------- Recreating the Tape Images -------------------------- The "subsys-compilers.tape" and "examples.tape" image files used by the "mpe-ve-2-restore" simulator command file are not supplied with the kit. They may be recreated by submitting the COMPJOB and EXAMJOB jobs to MPE. After starting MPE, the system operator must first enable job streaming by entering the "STREAMS 10" command. Then the "STREAM COMPJOB" command may be submitted to recreate the "subsys-compilers.tape" image: 18:42/#S1/15/LOGON FOR: OPERATOR.SYS,OPERATOR ON LDEV #20 HP3000 RELEASE: G.3P.00 USER VERSION: G.3P.00 MON, MAR 18, 2024, 6:42 PM MPE V HP32033 G.12.00 Copyright Hewlett-Packard 1984. All Rights Reserved. :STREAMS 10 :STREAM COMPJOB #J1 : 18:43/#J1/17/LOGON FOR: COMPTAPE,MANAGER.SYS,PUB ON LDEV #10 ?18:43/#J1/18/LDEV# FOR "MT" ON TAPE (NUM)? At this point, press CTRL+E to obtain an SCP prompt and attach a new, blank tape image file to the tape drive configured as unit 0: scp> attach -N MA0 subsys-compilers.tape 18:44/9/Vol (unlabelled) mounted on LDEV# 7 MPE detects the tape load and reports it to the operator. Pressing RETURN or ENTER will bring up the MPE colon prompt. Enter a REPLY command to inform process ID number 18 (determined from the console query above) that the tape was just mounted on LDEV 7. :REPLY 18,7 : 18:45/#J1/18/STORE reel # 1 finished on LDev 7 (S/R 9018) 18:45/#J1/17/LOGOFF ON LDEV #10 The job then stores the files to the tape image and completes. In a similar manner, the "STREAM EXAMJOB" command may be used to recreate the "examples.tape" image using the same procedure as above: :STREAM EXAMJOB #J2 : 18:46/#J2/19/LOGON FOR: EXAMTAPE,OPERATOR.SYS,OPERATOR ON LDEV #10 ?18:46/#J2/20/LDEV# FOR "MT" ON TAPE (NUM)? scp> attach -N MA0 examples.tape 18:46/9/Vol (unlabelled) mounted on LDEV# 7 :REPLY 20,7 : 18:47/#J2/20/STORE reel # 1 finished on LDev 7 (S/R 9018) 18:47/#J2/19/LOGOFF ON LDEV #10 Finally, detach the tape from the tape drive by pressing CTRL+E and entering: scp> detach MA0 The two tape images are now ready for use by the "mpe-ve-2-restore" command file. ------------------------------------------ Specifying Different System Configurations ------------------------------------------ Each of the "mpe-ve-*.sim" command files accepts an optional disc drive model parameter. MPE V/E supports the HP 7911, 7912, 7914, 7933, 7935, 7936, 7937, 7945, 7957B, 7958B, and 7959B CS/80 drives as system discs (although the system RELOAD will run out of disc space when using a 7911). For example, this command line: hp3000 mpe-ve-1-reload 7912 ...will reload the FOS tape and create a new, bootable system disc named "mpe-ve-reload.7912.disc". Running the other three system configuration command files in order and specifying the "7912" parameter to each will result in a fully configured system, which may be run by renaming the "mpe-ve-reload.7912.disc" file to "mpe-ve.7912.disc" and then doing: hp3000 mpe-ve-auto 7912 ...to COOLSTART the system. Any of the supported disc drive model numbers may be used to reload, configure, and run the system, and the various systems can co-exist. For all command files, if the model is omitted, the 7914 drive is used. ----------- Usage Notes ----------- 1. MPE V/E is year-2000 compliant but accepts dates only through 2027. For 2028 and after, the boot scripts select a year whose days of the week and leap-year status are identical to the current year. For example, February 29, 2028 is a Tuesday, as is February 29, 2000. 2. ADCC port 0 is the system console. It has its internal CAPS LOCK key down by default to accommodate stand-alone diagnostics that require input in upper case. The other ports have CAPS LOCK up by default. These defaults may be changed by placing the appropriate SET ADCCn commands either in the command file used to cold load the system or the global "simh.ini" command file. See the "HP 3000 Simulator User's Guide" section describing the ADCC unit options CAPSLOCK and NOCAPSLOCK and the "SIMH Users' Guide Supplement" section "Global Initialization File" for details. 3. ADCC ports 1-6 are configured as HP terminals. As such, they require the use of ENQ/ACK protocol. By default, the ADCC simulator is configured to handle ENQ/ACK locally, i.e., the ENQ is discarded, and the ACK is supplied to MPE by the simulator. This allows the use of non-HP terminal emulator clients. If you use an HP terminal emulator, you may disable the local ENQ/ACK handling and allow the emulator to perform the handshaking, although typically this slows down output to the terminal and is not necessary. If you use a real HP terminal, e.g., an HP 2645A, connected to a serial line, remote ENQ/ACK handling is required; the ADCC will overrun the terminal if local handling is configured. See the "HP 3000 Simulator User's Guide" section describing the ADCC unit options LOCALACK and REMOTEACK for details. 4. ADCC port 1 (LDEV 21) is configured as a full-duplex modem connection, rather than the hardwired connections used by the other ADCC ports. MPE will use the Data Terminal Ready (DTR) signal to drop the connection when the user logs out or is forcibly logged out by the system operator. This demonstrates the modem control capability. 5. The LPA device (LDEV 6) is configured as an HP 2617 line printer. The "mpe-ve-auto" and "mpe-ve-man" command files attach this device to the "printer.txt" file, and any output directed to the LP device will be written there. The file is cleared of previous contents each time the command file is run. If the contents is to be kept after a simulator session, rename the file before starting the next session. 6. The languages preinstalled on the disc image are: - BASIC (interpreter and compiler) - COBOL 74/85 - FORTRAN 66 - Pascal - RPG - SPL The COBOL 74 compiler is invoked with the COBOLII command. A supplied User-Defined Command file, COBUDC.PUB.SYS, may be installed to run the COBOL 85 compiler with COBOLIIX, COBOLIIXPREP, and COBOLIIXGO commands. The COBOL 68 compiler, invoked with the COBOL command, is obsolete. 7. File transfers using the Reflection terminal emulator and its associated PCLINK2.PUB.SYS program are supported under simulation. The simulator must be configured to use 8-bit transfers, remote ENQ/ACK, and no alphabetic upshifting on the ADCC port to be used for file transfer. In addition, MPE must be configured to use 8-bit transfers for the port, e.g., by specifying the TERM=12 parameter when logging on. See the "Terminal Data Interface" subsection of the ADCC section in the "HP 3000 Simulator User's Guide" for further configuration details.