simh-testsetgenerator/PDP11
Mark Pizzolato bc36e9dde5 Adds serial port support to the multiplexer library.
It also modifies the HP 2100 and PDP11 multiplexers to add serial support as demonstrations of the capability that, one day, might be extended to all simulators.  I have tested the HP support, but I relied on Holger Veit to test the DEC stuff, so I can't guarantee that it works.  I also relied on Holger to test under Linux, so the same caveat applies.

    The changes needed in the device simulators are relatively small.  For example, if you look at the patches for "hp2100_baci.c", you'll note that most of them are documentation changes.  The only things of note are:

 - an expansion of the TMXR initializer

 - additional code in the "attach" routine to try attaching a serial port
   if attaching a socket fails

 - additional code in the "detach" routine for the same reasons

The HP MPX device (hp2100_mpx.c) needs a tiny bit of additional support from the ATTACH and DETACH commands.  Specifically, SCP was modified to set a flag ("sim_unit_ref") to indicate whether ATTACH MPX or ATTACH MPX0 was done, i.e., to differentiate between a device and a unit attach (recall that SCP treats these as both referring to unit 0).  This is needed because the socket attaches (logically) to the device, whereas a serial port attaches to a line.  Without this flag, the attach routine cannot differentiate between ATTACH MPX and ATTACH MPX0, as the distinction is lost by the time the VM's attach routine is called.  This support isn't needed for the HP MUX device because the socket attaches to a different device than the lines do.

    MPX also requires a bit more work due to the capability to mix serial and Telnet lines on the same multiplexer (BACI is a single-line terminal device).

    The attached PDF contains revisions to the "Writing a Simulator for the SIMH System" publication that documents the additions and changes to the multiplexer library for serial port support.  User documentation for serial port support currently exists only in the initial comments in "sim_tmxr.c"; I will add the appropriate text to the "SIMH User's Guide" if we decide to add this to the release version.
2012-04-19 19:18:15 -07:00
..
pdp11_cis.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_cpu.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_cpumod.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_cpumod.h Notes For V3.8 2011-04-15 08:35:43 -07:00
pdp11_cr.c Fixing many compiler identified nits. 2012-04-18 09:48:04 -07:00
pdp11_cr_dat.h Notes For V3.6-0 2011-04-15 08:35:15 -07:00
pdp11_dc.c Adds serial port support to the multiplexer library. 2012-04-19 19:18:15 -07:00
pdp11_defs.h Fixed interrupts to treat all Qbus devices as BR4. Changed RQ and TQ to BR4 to reflect real hardware (for the Unibus case). 2011-12-17 10:04:53 -08:00
pdp11_dl.c Merge changes from v3.9-0 rc1 2012-03-19 16:05:24 -07:00
pdp11_dz.c Adds serial port support to the multiplexer library. 2012-04-19 19:18:15 -07:00
pdp11_fp.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_hk.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_io.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_io_lib.c Fixing many compiler identified nits. 2012-04-18 09:48:04 -07:00
pdp11_io_lib.h Notes For V3.8 2011-04-15 08:35:54 -07:00
pdp11_ke.c Notes For V3.8 2011-04-15 08:35:43 -07:00
pdp11_kg.c Notes For V3.8 2011-04-15 08:36:05 -07:00
pdp11_lp.c Notes For V3.8 2011-04-15 08:35:54 -07:00
pdp11_mscp.h Added Asynch I/O and Disk Support for various Disk formats 2011-04-15 08:49:18 -07:00
pdp11_pclk.c Notes For V3.8 2011-04-15 08:35:54 -07:00
pdp11_pt.c Notes For V3.8 2011-04-15 08:35:54 -07:00
pdp11_rc.c Notes For V3.8 2011-04-15 08:35:43 -07:00
pdp11_rf.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_rh.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_rk.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_rl.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_rp.c Fixed bug under Asynch I/O where I/O completion did not delay the appropriate time before passing back device status to a simulator. Found by Sergey Oboguev. 2012-04-02 14:05:12 -07:00
pdp11_rq.c Fixing many compiler identified nits. 2012-04-18 09:48:04 -07:00
pdp11_rx.c Completing merge of v3.9-0-rc1 compile cleanups 2012-03-20 18:55:45 -07:00
pdp11_ry.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_stddev.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_sys.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_ta.c Notes For V3.8 2011-04-15 08:35:54 -07:00
pdp11_tc.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_tm.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_tq.c - Changed asynch queue insertion and removal to use a lock free algorithm based only on InterlockedCompareExchangePointer. We can now use this lock free approach on IA64 host systems as well. 2012-04-04 11:05:24 -07:00
pdp11_ts.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_tu.c Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
pdp11_uqssp.h Notes For V3.8 2011-04-15 08:35:54 -07:00
pdp11_vh.c Adds serial port support to the multiplexer library. 2012-04-19 19:18:15 -07:00
pdp11_xq.c Fixing many compiler identified nits. 2012-04-18 09:48:04 -07:00
pdp11_xq.h Fix memory leak on error path and proper polling vs async conditions 2011-11-02 05:45:01 -07:00
pdp11_xq_bootrom.h Notes For V3.8 2011-04-15 08:35:54 -07:00
pdp11_xu.c pdp11_xq: Forced the use of clk_cosched when idling is enabled 2012-04-17 13:40:09 -07:00
pdp11_xu.h Merged in new ethernet code to potentially leverage AsynchIO 2011-04-15 08:53:01 -07:00
txt2cbn.c Notes For V3.6-0 2011-04-15 08:35:15 -07:00