213 lines
10 KiB
Text
213 lines
10 KiB
Text
SIMH/HP 3000 RELEASE NOTES
|
|
==========================
|
|
Last update: 2016-03-06
|
|
|
|
|
|
This file documents the release history of the Hewlett-Packard 3000 simulator.
|
|
|
|
The SIMH project does not issue discrete releases. Instead, the current
|
|
simulator code base is available at:
|
|
|
|
https://github.com/simh/simh
|
|
|
|
...and may be downloaded at any time. A code snapshot is identified by the "git
|
|
commit ID" that is displayed by the simulator welcome banner.
|
|
|
|
Therefore, HP 3000 releases are simply documentation checkpoints that describe
|
|
the changes that have occurred since the last checkpoint. Generally, a release
|
|
is written when one or more major changes have been incorporated. Minor bug
|
|
fixes will be available immediately but only noted as part of the next release
|
|
document.
|
|
|
|
|
|
|
|
===================
|
|
General Information
|
|
===================
|
|
|
|
The simulator passes the HP 32230 offline diagnostic suite with some expected
|
|
failures due to unimplemented features. For example, the disc diagnostic
|
|
error-correction logic tests and the tape diagnostic CRCC and LRCC tests fail,
|
|
as these features are not supported. However, all features that are required
|
|
for MPE operation pass their respective diagnostic tests.
|
|
|
|
The simulator has been tested with MPE-V/R version E.01.00. Specifically:
|
|
|
|
- MPE can be RELOADed to generate a new disc-based system from a FOS tape.
|
|
|
|
- MPE can be COOLSTARTed to run from a previously generated disc.
|
|
|
|
- The MPE system console operates (by default) through the simulation console,
|
|
and additional sessions may be connected to the ATC via Telnet or host
|
|
serial ports.
|
|
|
|
- MPE FOS programs (EDITOR, QUERY) and SUBSYS programs (SPL, BASIC, BASICOMP)
|
|
run properly.
|
|
|
|
- The SYSDUMP program produces a valid tape image, and the system may be
|
|
COLDSTARTED from it.
|
|
|
|
- The operator and system manager can be logged in and out, and MPE can be
|
|
SHUTDOWN through to a HALT 17.
|
|
|
|
The user's manual for the simulator is provided in Microsoft Word format in the
|
|
"doc" subdirectory of the code base snapshot downloaded from the github site. A
|
|
PDF version of the same manual is available at:
|
|
|
|
http://alum.mit.edu/www/jdbryan/hp3000_doc.pdf
|
|
|
|
A preconfigured MPE-V/R disc image containing the Fundamental Operating Software
|
|
(FOS), selected SUBSYS language processors (BASIC, BASICOMP, COBOL, COBOLII,
|
|
FORTRAN, PASCAL, RPG, and SPL), and example programs is available from Bitsavers
|
|
at:
|
|
|
|
http://www.bitsavers.org/bits/HP/HP_3000/
|
|
|
|
The archive contains instructions and simulator command files that allow
|
|
ready-to-run operation.
|
|
|
|
Manuals describing MPE operation are also available from Bitsavers at:
|
|
|
|
http://www.bitsavers.org/pdf/hp/3000/
|
|
|
|
HP created MPE-V/R-specific manuals. However, very few of them survive. In
|
|
general, the MPE-IV manuals will describe a subset of MPE-V/R commands, whereas
|
|
the MPE-V/E manuals describe a superset. Relying on the MPE-IV manuals and the
|
|
online help available within MPE for those commands that do not appear in the
|
|
manuals is perhaps the best compromise.
|
|
|
|
|
|
-----------------------
|
|
Bugs in MPE V/R E.01.00
|
|
-----------------------
|
|
|
|
Testing during simulator development revealed the presence of several bugs in
|
|
the MPE version used:
|
|
|
|
- After a cold load from tape (COLDSTART/RELOAD/UPDATE), if a non-HP terminal
|
|
such as the simulation console is used as the system console, MPE prints DATE
|
|
(M/D/Y)? and then WED, NOV 1, 1972, 12:00 AM, as though RETURN had been
|
|
entered, but it wasn't. If an HP terminal emulator is used instead, MPE
|
|
waits for the user to enter the date before proceeding.
|
|
|
|
The problem is incorrect coding in the SPEEDSENSE procedure in module
|
|
INITIAL. As a result, the console baud rate is set to an invalid value, so
|
|
console reads fail. The resulting zero-length read is interpreted as though
|
|
RETURN had been entered.
|
|
|
|
This is MPE V/R SSB KPR Number 5000187104, "Foreign devices as SIII system
|
|
consoles do not work correctly on V/R." HP issued a patch for this, but it
|
|
does not seem to have survived. A simple workaround is to set local ENQ/ACK
|
|
processing on ATC channel 0 (SET ATCD0 LOCALACK) when the system console is
|
|
not an HP terminal. This is the default setting, so the bug only manifests
|
|
itself when SET ATCD0 REMOTEACK is done before booting. An alternate
|
|
workaround that does not depend on the ATC setting is to set memory location
|
|
01.112247 to octal value 021360. This changes the "LOAD P+22,I,X"
|
|
instruction at that location to "LDI 360" to set the detected speed to 2400
|
|
baud unconditionally.
|
|
|
|
|
|
- If a SHUTDOWN is performed while a logon read is pending on the system
|
|
console, e.g., by pressing RETURN to obtain the colon prompt after logging
|
|
OPERATOR.SYS off, the expected "ALL JOBS LOGGED OFF" message does not print.
|
|
Instead, the first few characters of the message (which begins with the
|
|
current time) are printed, followed as expected by SHUT and a HALT %17. If
|
|
no read is pending, either because RETURN was not pressed before entering the
|
|
SHUTDOWN command or because the read timed out, the message is printed
|
|
normally.
|
|
|
|
The problem is that while the message is being send to the ATC character-by-
|
|
character, the I/O abort issued to cancel the logon read also cancels the
|
|
message write. The timing is such that only the first few characters of the
|
|
message are printed before the rest of the output is cancelled.
|
|
|
|
No SSB KPR has been located, but a later MPE version inserts an ABORTIO call
|
|
for the system console immediately before logging all sessions off. This
|
|
clears any logon read that might exist, and therefore an abort will not be
|
|
performed after the "ALL JOBS LOGGED OFF" message is output. It is
|
|
impossible to patch memory to add this call, so the only workarounds when
|
|
shutting down are to avoid requesting the logon prompt, wait until the logon
|
|
timeout expires (nominally two minutes), log on and then back off again,
|
|
enter "=ABORTIO 20" to abort the read before entering SHUTDOWN, or accept
|
|
that the message will be truncated. The only consequence of this bug is the
|
|
partial message; MPE shuts down properly otherwise, so it may be safely
|
|
ignored.
|
|
|
|
|
|
- After a RELOAD, running DPAN4.PUB.SYS produces a "CODE SEGMENT TOO LARGE
|
|
(LOAD ERR 33)" error. This is because MPE defaults to an 8K code segment
|
|
size limit, and DPAN4 has three segments between 8K and 12K in size. If the
|
|
limit is subsequently raised via a SYSDUMP and COLDSTART reconfiguration,
|
|
running DPAN4 produces a "FILE IS NOT A VALID PROGRAM FILE" error. However,
|
|
if the reconfiguration is done before running DPAN4, it will run properly
|
|
thereafter.
|
|
|
|
The problem is that MPE incorrectly modifies the executable file's Segment
|
|
Transfer Tables when it encounters a code segment that is larger than the
|
|
configured limit. This leaves the file in an inconsistent state, leading to
|
|
the "NOT A VALID PROGRAM FILE" message after reconfiguration to raise the
|
|
segment size limit. If the limit is raised before running DPAN4, the file is
|
|
internally consistent when the STTs are patched, and each segment's load
|
|
succeeds, allowing the program to run.
|
|
|
|
No SSB KPR has been located, but a later MPE version ensures that code
|
|
segment size aborts occur before any of the STTs are modified, so the program
|
|
file remains internally consistent. A memory patch is impossible, but
|
|
workarounds are to increase the code segment limit before running DPAN4 and
|
|
to restore DPAN4.PUB.SYS from the FOS tape if it has been damaged.
|
|
|
|
|
|
|
|
=====================
|
|
Release 1, 2016-03-07
|
|
=====================
|
|
|
|
This is the initial release of the HP 3000 simulator. The following devices are
|
|
currently simulated:
|
|
|
|
- 30003B Series III computer with up to 1024 KW of memory
|
|
- 30003B I/O Processor
|
|
- 30036B Multiplexer Channel
|
|
- 30030C Selector Channel
|
|
- 30033A Selector Channel Maintenance Board
|
|
- 30032B Asynchronous Terminal Controller data interface
|
|
- 30061B Asynchronous Terminal Controller control interface
|
|
- 30135A System Clock/Fault Logging Interface
|
|
- 30215A Tape Controller with four 7970B/E drives
|
|
- 30229B Disc Controller with eight 7905/7906/7920/7925 drives
|
|
|
|
The "HP 3000 Simulator User's Guide" manual describes the configuration and
|
|
operation of each of these devices in detail.
|
|
|
|
|
|
--------------------
|
|
Implementation Notes
|
|
--------------------
|
|
|
|
- IMPORTANT: There is no line printer simulation. MPE cannot be configured to
|
|
run without a printer; attempting to delete LDEV 6 produces "ERROR #115
|
|
UNDEFINED CLASS LP USED AS OUTPUT DEVICE", and class LP cannot be deleted.
|
|
With LDEV 6 present, MPE will boot and run, but doing, e.g., :STOPSPOOL 6
|
|
causes "NON-RESPONDING DRT #14" and "SYSTEM FAILURE #201" when the printer
|
|
doesn't respond. Entering :OUTFENCE 14 at the console operator's session
|
|
immediately after bootup is a workaround. The LP simulator should be present
|
|
in the next release.
|
|
|
|
- The CPU is a hybrid of the Series II instruction set microcode and the Series
|
|
III memory size and hardware behavior, because the Series III microcode is
|
|
not available.
|
|
|
|
- The CPU is currently missing a few "difficult" instructions (the CMD
|
|
instruction, the Series II LOCK and UNLK instructions, and the entire
|
|
Extended Instruction Set). Although the EIS is not present, MPE has a
|
|
software emulator for these instructions that is invoked transparently by the
|
|
Unimplemented Instruction traps that occur when attempted execution of EIS
|
|
instructions occurs.
|
|
|
|
- The main memory Fault Logging Interface section of the 30135A is currently
|
|
not simulated. Although fault-control memory was standard on the Series II
|
|
and later, the memory fault logger is smart enough to realize that the FLI is
|
|
not there, so MPE will run without it.
|
|
|
|
- Symbolic entry of CPU instructions, CPU status, and I/O instructions are not
|
|
currently supported.
|