I don’t know how I missed it, but SIMH 3.9-0 was released!

SIMH, is Bob Supniks emulation package that includes:

  • Data General Nova, Eclipse
  • Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10, PDP-11, PDP-15, VAX
  • GRI Corporation GRI-909, GRI-99
  • IBM 1401, 1620, 1130,  7090/7094, System 3
  • Interdata (Perkin-Elmer) 16b and 32b systems
  • Hewlett-Packard 2114, 2115, 2116, 2100, 21MX, 1000
  • Honeywell H316/H516
  • MITS Altair 8800, with both 8080 and Z80
  • Royal-Mcbee LGP-30, LGP-21
  • Scientific Data Systems SDS 940
  • SWTP 6800
The changes from the previous version are:

0 01-May-2012 scp.c:
– added *nix READLINE support (Mark Pizzolato)
– fixed handling of DO with no arguments (Dave Bryan)
– fixed “SHOW DEVICE” with only one enabled unit (Dave Bryan)
– clarified some help messages (Mark Pizzolato)
– added “SHOW SHOW” and “SHOW <dev> SHOW” commands (Mark Pizzolato)
– fixed bug in deposit stride for numeric input (John Dundas)

– added support for BREAK key on Windows (Mark Pizzolato)

– major revision (Dave Hittner and Mark Pizzolato)
– fixed array overrun which caused SEGFAULT on hosts with many
devices which libpcap can access.
– fixed duplicate MAC address detection to work reliably on switch
connected LANs

– made telnet option negotiation more reliable, VAX simulator now
works with PuTTY as console (Mark Pizzolato)

– fixed bugs in MPY, DIV introduced in 3.8-1 (from Theo Engel)
– fixed bugs in double precision, normalization, SC (from Adrian Wise)
– fixed XR behavior (from Adrian Wise)

hp2100 all peripherals (Dave Bryan):
– Changed I/O signal handlers for newly revised signal model
– Deprecated DEVNO modifier in favor of SC

hp2100_cpu.c (Dave Bryan):
– Minor speedup in “is_mapped”
– Added casts to cpu_mod, dmasio, dmapio, cpu_reset, dma_reset
– Fixed I/O return status bug for DMA cycles
– Failed I/O cycles now stop on failing instruction
– Revised DMA for new multi-card paradigm
– Consolidated DMA reset routines
– DMA channels renamed from 0,1 to 1,2 to match documentation
– Changed I/O instructions, handlers, and DMA for revised signal model
– Changed I/O dispatch table to use DIB pointers
– Removed DMA latency counter
– Fixed DMA requests to enable stealing every cycle
– Fixed DMA priority for channel 1 over channel 2
– Corrected comments for “cpu_set_idle”

– Changed declarations for VMS compiler

hp2100_cpu0.c (Dave Bryan):
– Removed DS note regarding PIF card (is now implemented)

hp2100_cpu4.c (Dave Bryan):
– Added OPSIZE casts to fp_accum calls in .FPWR/.TPWR

hp2100_cpu5.c (Dave Bryan):
– Added sign extension for dim count in “cpu_ema_resolve”
– Eliminated unused variable in “cpu_ema_vset”

hp2100_cpu6.c (Dave Bryan):
– DMA channels renamed from 0,1 to 1,2 to match documentation

hp2100_cpu7.c (Dave Bryan):
– Corrected “opsize” parameter type in vis_abs

hp2100_defs.h (Dave Bryan):
– Added hp_setsc, hp_showsc functions to support SC modifier
– DMA channels renamed from 0,1 to 1,2 to match documentation
– Revised I/O signal enum values for concurrent signals
– Revised I/O macros for new signal handling
– Added DA and DC device select code assignments

hp2100_di.c, hp2100_di.h (Dave Bryan):
– Implemented 12821A HP-IB Disc Interface

hp2100_di_da.c (Dave Bryan):
– Implemented 7906H/20H/25H ICD disc drives

hp2100_dp.c (Dave Bryan):
– Added CNTLR_TYPE cast to dp_settype

hp2100_ds.c (Dave Bryan):
– Rewritten to use the MAC/ICD disc controller library
– ioIOO now notifies controller service of parameter output
– Corrected SRQ generation and FIFO under/overrun detection
– Corrected Clear command to conform to the hardware
– Fixed Request Status to return Unit Unavailable if illegal
– Seek and Cold Load Read now Seek Check if seek in progress
– Remodeled command wait for seek completion
– Corrected status returns for disabled drive, auto-seek
beyond drive limits, Request Sector Address and Wakeup
with invalid or offline unit
– Address verification reenabled if auto-seek during
Read Without Verify

hp2100_fp1.c (Dave Bryan):
– Added missing precision on constant “one” in fp_trun
– Completed the comments for divide; no code changes

hp2100_ipl.c (Dave Bryan):
– Added CARD_INDEX casts to dib.card_index
– A failed STC may now be retried
– Consolidated reporting of consecutive CRS signals
– Revised for new multi-card paradigm

hp2100_lps.c (Dave Bryan):
– Revised detection of CLC at last DMA cycle
– Corrected 12566B (DIAG mode) jumper settings

hp2100_ms.c (Dave Bryan):
– Added CNTLR_TYPE cast to ms_settype

hp2100_mt.c (Dave Bryan):
– Removed redundant MTAB_VUN from “format” MTAB entry
– Fixed command scanning error in mtcio ioIOO handler

hp2100_stddev.c (Dave Bryan):
– Add TBG as a logical name for the CLK device

hp2100_sys.c (Dave Bryan):
– Deprecated DEVNO in favor of SC
– Added hp_setsc, hp_showsc functions to support SC modifier
– Added DA and dummy DC devices
– DMA channels renamed from 0,1 to 1,2 to match documentation
– Changed DIB access for revised signal model

hp_disclib.c, hp_disclib.h (Dave Bryan)
– Created MAC/ICD disc controller library

– fixed read stacker operation in column binary mode
– fixed punch stacker operation (Van Snyder)

– fixed TT_GET_MODE test to use TTUF_MODE_x (Michael Bloom)
– revised to use clock coscheduling

id_tt.c, id_ttc.p:
– revised to use clock coscheduling

– added clock coscheduling routine

– reverted multiple tape indicator implementation
– fixed EOT indicator test not to clear indicator (Van Snyder)
– fixed divide not to clear word marks in quotient (Van Snyder)
– revised divide algorithm (Van Snyder)

– reverted multiple tape indicator implementation
– fixed END indicator test not to clear indicator (Van Snyder)
– fixed backspace over tapemark not to set EOR (Van Snyder)
– added no rewind option (Van Snyder)

– fixed misuse of & instead of && in decode (Peter Schorn)

– fixed misuse of & instead of && in Ea_ch (Michael Bloom)

– fixed unitialized variable in tty output service (Michael Bloom)

– revised to use clock coscheduling

– fixed priority of PIRQ vs IO; added INT_INTERNALn

– fixed Qbus interrupts to treat all IO devices (except clock) as BR4
– fixed order of int_internal (Jordi Guillaumes i Pons)

– fixed bug in updating mem addr extension (Peter Schorn)

– fixed bug in read header (Walter F Mueller)

– added debug support

– added RD32 support

pdp11_tq.c: (Mark Pizzolato)
– set UNIT_SXC flag when a tape mark is encountered
during forward motion read operations
– fixed logic which clears UNIT_SXC to check command modifier
– added CMF_WR flag to tq_cmf entry for OP_WTM
– made non-immediate rewind positioning operations take 2 seconds
– added UNIT_IDLE flag to tq units.
– fixed debug output of tape file positions when they are 64b
– added more debug output after positioning operations
– added textual display of the command being performed
– fixed comments about register addresses

– fixed t_addr printouts for 64b big-endian systems (Mark Pizzolato)

– fixed t_addr printouts for 64b big-endian systems (Mark Pizzolato)

pdp11_vh.c: (Mark Pizzolato)
– fixed SET VH LINES=n to correctly adjust the number
of lines available to be 8, 16, 24, or 32.
– fixed performance issue avoiding redundant polling

pdp11_xq.c: (Mark Pizzolato)
– Fixed missing information from save/restore which
caused operations to not complete correctly after
a restore until the OS reset the controller.
– Added address conflict check during attach.
– Fixed loopback processing to correctly handle forward packets.
– Fixed interrupt dispatch issue which caused delivered packets
(in and out) to sometimes not interrupt the CPU after processing.
– Fixed the SCP visibile SA registers to always display the
ROM mac address, even after it is changed by SET XQ MAC=.
– Added changes so that the Console DELQA diagnostic (>>>TEST 82)
will succeed.
– Added DELQA-T (aka DELQA Plus) device emulation support.
– Added dropped frame statistics to record when the receiver discards
received packets due to the receiver being disabled, or due to the
XQ device’s packet receive queue being full.
– Fixed bug in receive processing when we’re not polling. This could
cause receive processing to never be activated again if we don’t
read all available packets via eth_read each time we get the
– Added the ability to Coalesce received packet interrupts. This
is enabled by SET XQ POLL=DELAY=nnn where nnn is a number of
microseconds to delay the triggering of an interrupt when a packet
is received.
– Added SET XQ POLL=DISABLE (aka SET XQ POLL=0) to operate without
polling for packet read completion.
– Changed the sanity and id timer mechanisms to use a separate timer
unit so that transmit and recieve activities can be dealt with
by the normal xq_svc routine.
Dynamically determine the timer polling rate based on the
calibrated tmr_poll and clk_tps values of the simulator.
– Enabled the SET XQ POLL to be meaningful if the simulator currently
doesn’t support idling.
– Changed xq_debug_setup to use sim_debug instead of printf so that
all debug output goes to the same place.
– Restored the call to xq_svc after all successful calls to eth_write
to allow receive processing to happen before the next event
service time. This must have been inadvertently commented out
while other things were being tested.

pdp11_xu.c: (Mark Pizzolato)
– Added SHOW XU FILTERS modifier (Dave Hittner)
– Corrected SELFTEST command, enabling use by VMS 3.7, VMS 4.7, and Ultrix 1.1 (Dave Hittner)
– Added address conflict check during attach.
– Added loopback processing support
– Fixed the fact that no broadcast packets were received by the DEUNA
– Fixed transmitted packets to have the correct source MAC address.
– Fixed incorrect address filter setting calling eth_filter().

– added clock coscheduling
– revised TTI to use clock coscheduling and to fix perpetual CAF bug

– revised to use clock coscheduling

– added clock coscheduling

pdp8_fpp.c: (Rick Murphy)
– many bug fixes; now functional

– revised to use clock coscheduling and to fix perpetual CAF bug

– revised to use clock cosheduling

– added link to FPP

– fixed SDLC to clear AC (Dave Gesswein)

– fixed bug in scan function decode (Peter Schorn)

– revised idle design (Mark Pizzolato)
– fixed bug in SET CPU IDLE
– fixed failure to clear PSL<tp> in BPT, XFC

– revised idle design Mark Pizzolato)
– added VEC_QMODE test in interrupt handler

– fixed integer overflow bug in EMODx (Camiel Vanderhoeven)
– fixed POLYx normalizing before add mask bug (Camiel Vanderhoeven)
– fixed missing arguments in 32b floating add (Mark Pizzolato)

vax_octa.c (Camiel Vanderhoeven)
– fixed integer overflow bug in EMODH
– fixed POLYH normalizing before add mask bug

– revised to use clock coscheduling

– fixed t_addr printouts for 64b big-endian systems (Mark Pizzolato)

– added power clear call to boot routine (Mark Pizzolato)

– added AUTORESTART switch support (Mark Pizzolato)

– added REBOOT support (Mark Pizzolato)
– revised to use clock coscheduling

– moved all Qbus devices to BR4; deleted RP definitions


Anyways, let the good times roll!


One thought on “I don’t know how I missed it, but SIMH 3.9-0 was released!

Leave a Reply