HP 3000 Simulator Status ======================== -------------- Release Status -------------- The current release is Release 14. For this release: - All devices are feature-complete. - Diagnostics generally pass with some expected failures in tape simulations due to unimplemented features (e.g., NRZI CRCC/LRCC handling). - MPE can be RELOADed to generate a new disc-based system from the FOS tape. - MPE can be COOLSTARTed to run from a previously generated disc. - The operator and system manager can be logged in and out, and MPE can be SHUTDOWN through to a HALT 17. - MPE FOS programs (EDITOR, QUERY) and SUBSYS programs (SPL, BASIC, BASICOMP) run OK. - 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 the Series II LOCK and UNLK instructions. As such, the option to change the CPU to a Series II is disabled. ------------------ Development Status ------------------ The next release is under development. It will add the following features: - in-memory tracing - symbolic instruction entry --------------------- Development Completed --------------------- The latest development snapshot currently possesses these feature conditions: - ADCC, 7970E HP-IB, Series 58, MPE V/E, CST expansion firmware, 26069A/261xline printer. - The IMB, IMBA, CPP, and DC (CS/80 disc) simulators are complete. - The GIC works with multiple address support and simultaneous access. - The GIC offline diagnostic passes except for Section 18, which tests memory parity error detection (needs FLI). - The CS/80 offline diagnostic passes Sections 1-5. - DUS-III will boot, and AID can access the CS/80 disc through the Starfish. - MPE can read and write to a CS/80 disc as a foreign disc (but see the MPE bug report in the release notes). - MPE can use a CS/80 disc as a system volume (LDEV 2). - MPE can configure a CS/80 disc as the system cold-load device (LDEV 1), and cold loading from CS/80 drives is implemented. - Support for more than one GIC and DC device is provided. + The ADCC passes its diagnostic and some extra tests I wrote. + Copy the 7970E HP-IB diagnostics (AID programs D7970S13, D7970S45, and D7970S68) from the DUS 3.06 (rev. 2913) tape to the DUS-III tape. Documentation is "HP 3000/33 Diagnostic Manual Set, Volume II (30070-60068, December 1983), starting on page 260. + Implement the HP-IB 7970E (MA device, hp3000_gic_ma.c). This will be an amalgamation of the MS device (parallel 7970E) and HP2100 DA device (Amigo ICD discs) interfaced via the new HP-IB routines in the GIC device. The 7970E functionality from the MS device will replace the disc functionality in the DA device while retaining the latter's Amigo framework but with the new HP-IB interface as implemented in the GIC device. The 7970E HP-IB command set is well documented (07970-90919), so this should be straightforward. + Get the MA device to pass the diagnostics via DUS-III and the Starfish. + Modify the CPU device firmware interrupt handler to use the HP-IB DRT layout when the S58 CPU is selected. + Modify the CPU so that IMB interrupts are recognized. + Modify the CPU to implement the HP-IB CPU clock and process clock behavior and the associated CPU instructions (RCCR, SCIN, TON, TOFF). + Modify the CPU to implement direct cold-loading from IMB devices. At this point, the Starfish should no longer be needed for HP-IB work. + Boot and run DUS, revs. 2913, 3130, and 3303. + Run the GICDIAG, ADCCDIAG, and D7970 diagnostics under DUS to ensure that they work on the S58. + Allow up to 4 MW of memory with the Series 58. + Boot and run MPE V/P. + Boot and run MPE V/E (non-expanded microcode). + Add a Series 58+ for Gavin. + Implement a full cpu_configuration and use it to determine instruction mnemonic decoding for EXAMINE. + Setting the CPU between Series III and Series 58 should select the I/O device sets that should be enabled. Selecting a Series III should enable all of the SIO devices and disable all of the IMB devices, and vice versa. For example, things fail if the ATC is enabled with the ADCC, as both try to process SIMH console I/O. + Implement cold dump. I think that this is simply a matter of reading the channel program from a different disc sector than cold load. + Add SET CPU LOAD=[;] along with DUMP and START. These set the LOADDEV, DUMPDEV, and STARTDEV registers. These take the place of the thumbwheel switches on the S58. They also need defaults set when switching from III to S58. + Add a START [] command and modify LOAD and DUMP to take their settings from their respective registers and transfer to the switch register. + Test mag tape unit 1-3 operation. + Ensure that the Series III and the Starfish still work properly with MPE V/R and the DUS-III diagnostics. + Update the diagnostics suite to run SDUP, DUS-III, and DUS diagnostics. --------------------- Development Remaining --------------------- - Confirm that interrupt priorities work properly. Note that cpp_service clears CPP interrupt enable when servicing an interrupt for the Starfish only. Is this correct? In a 4x/5x machine, this would clear the I bit in STA, which would be reinstated when the IXIT is done. Nothing like that happens in the CPP, so, e.g., the cold load routine must reenable interrupts explicitly after every one occurs. Maybe this isn't correct? Also, verify that SMSK works properly; it needed a hack for the Starfish in the INIT instruction (I think). + Implement the Status and Interrupt Register (SIR) that replaces the CPX1 and CPX2 registers on the Series 58. + Test cartridge tape operation. + Review registers for DC, MA, GIC, ADCC, and CPP. + Review traces to ensure that, e.g., DEBUG=CMD produces useful info by itself. + Lots of code cleanup. - Update the user manual and release notes.