Commit graph

81 commits

Author SHA1 Message Date
Mark Pizzolato
7f6a1af5bf Added an optional validation argument to sim_parse_addr for callers which need to confirm incoming connections come from expected sources 2012-12-09 12:12:09 -08:00
Mark Pizzolato
822fedf8ce Fixed polling to start on receiving a master clear and stop on Detach (Rob Jarratt) 2012-12-08 11:13:03 -08:00
Mark Pizzolato
2f3782a896 Update fixing dangling connections after detach and trying to adjust some polling behaviors (from Rob Jarratt) 2012-12-08 07:21:28 -08:00
Mark Pizzolato
badde9b852 Fixed bug in pdp11_xu which inhibited it from being disabled after it was ever enabled (reported by Rob Jarratt) 2012-12-08 07:13:05 -08:00
Mark Pizzolato
42b7bed6f5 pdp11_dmc.c - Removed DMP “support” through conditional compilation, including removal of SET TYPE command.
- Removed SET POLL command.
	- Changed SET TRANSMIT command to SET PEER
	- Fixed problem with detached device causing socket errors
2012-12-03 16:56:15 -08:00
Mark Pizzolato
b6dd86983f Fixed the loopback setup when the receive port was specified with a specific interface (i.e. localhost:port) 2012-12-01 08:07:49 -08:00
Mark Pizzolato
05707907a4 Fixed autogen table for DMC11 and DMP11 devices. 2012-11-07 15:34:45 -08:00
Mark Pizzolato
d51df0eba5 Merge of working DMC-11 device from Rob Jarratt.
pdp11_dmc.c
	- Fixed DMA bug which wrote data into the wrong simulated memory address.
	- Fixed incoming IP address checking.

pdp11_io_lib.c
	- Added the DMC device to the autoconfigure device table

vax780_defs.h
	- Added comment for DMC11
2012-11-06 17:00:54 -08:00
Mark Pizzolato
0a46da5aa0 Changed pdp11_dz to leverage the tmxr library's pass thru modem control capabilities.
Fixed reporting of DCD for dz lines beyond the first 4.
2012-10-17 14:17:14 -07:00
Mark Pizzolato
02cb620c9b Change to support serial ports on multiplexer devices without any changes to existing multiplexer device emulation code.
Added support for per line tcp listen ports.
Added support for per line outgoing tcp/telnet connections.

Removed DEV_NET from pdp11_dz and pdp11_vh emulators to allow proper restore of
2012-10-17 08:40:01 -07:00
Mark Pizzolato
24696892fd Merge branch 'DMC11' into SerialMux
Conflicts:
	scp.c
	sim_ether.c
	sim_ether.h
	sim_tmxr.c
2012-10-16 15:50:38 -07:00
Mark Pizzolato
0453a87f18 Revised pdp11_dmc device to leverage the update sim_sock interfaces 2012-09-28 15:41:03 -07:00
Mark Pizzolato
6692832785 Initial import of pdp11_dmc.c and .h from Rob Jarratt 2012-09-28 15:27:21 -07:00
Mark Pizzolato
fd1cd463f9 Added UNIT_IDLE to timer threads for RQ B, C and D controllers. - Sergey Oboguev 2012-07-10 13:26:08 -07:00
Mark Pizzolato
e35e6bc458 Official simh-v3.9-0 Merge 2012-05-02 07:06:11 -07:00
Mark Pizzolato
0f8e6cfe95 Cleanup for warning messages produced by the clang C compiler. Mostly adding parentheses in conditional assignments and clarification parentheses in complex boolean expressions. 2012-04-29 11:59:44 -07:00
Mark Pizzolato
78009646f0 Cleaned up compiler noticed issues 2012-04-27 15:06:39 -07:00
Mark Pizzolato
57008bb8f5 Cleaned up nested comments 2012-04-27 12:36:03 -07:00
Mark Pizzolato
178f4a743d Merge branch 'master' into SerialMux 2012-04-23 13:03:26 -07:00
Mark Pizzolato
db9bf32112 Merge of Bob's simh-v3.9-0-rc3 2012-04-23 11:50:43 -07:00
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
Mark Pizzolato
5f505ccadf Fixing many compiler identified nits. 2012-04-18 09:48:04 -07:00
Mark Pizzolato
127c8042c1 pdp11_xq: Forced the use of clk_cosched when idling is enabled
pdp11_xu: Separated clock based activities from packet reception by creating a separate XU unit for this purpose
2012-04-17 13:40:09 -07:00
Mark Pizzolato
1cb4eb7960 Fixed Asynch I/O issues which may leave pending asynch I/O in limbo when device resets happen (found by Sergey Oboguev) 2012-04-10 05:43:59 -07:00
Mark Pizzolato
ab3af3062d - 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.
- Removed flawed logic which assumed that sim_interval was meaningful when referenced by an asynchronous thread.
- Adjust the event_time of events removed from the asynch queue to account for the average time spent on the queue before the event was noticed by the instruction execution thread.
- Added a sim_activate_notbefore function which specifies an rtime which is the earliest time the event should fire.
- Changed the 'wakeup from idle' logic to force an immediate asynch queue check if the wakeup was not due to a timeout (i.e. it was due to an asynch queue insertion).
- Fixed the descrip.mms to build asynchronous support on AXP and IA64 VMS with kernel threads enabled
2012-04-04 11:05:24 -07:00
Mark Pizzolato
7ac3557524 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
Mark Pizzolato
6e813b8364 Merge with v3.9-0-rc2 first pass 2012-03-24 19:46:37 -07:00
Mark Pizzolato
e0fbfa6abf Fix memory leaks in attach error paths. 2012-03-22 16:14:30 -07:00
Mark Pizzolato
0270d0ea0d Cleanup based on reports from Michael Bloom 2012-03-22 12:20:00 -07:00
Mark Pizzolato
663b25818b Fix potential memory leak in error path reported by Michael Bloom 2012-03-20 18:57:02 -07:00
Mark Pizzolato
cf280ad8f7 Completing merge of v3.9-0-rc1 compile cleanups 2012-03-20 18:55:45 -07:00
Mark Pizzolato
fabdf73bed Compiler cleanup after v3.9-0 merge 2012-03-19 16:07:36 -07:00
Mark Pizzolato
fffad7c20e Merge changes from v3.9-0 rc1 2012-03-19 16:05:24 -07:00
Mark Pizzolato
d9e4afe64c Fixed internal loopback packet processing. We should only respond to loopback packets addressed to the physical MAC address OR the Broadcast address OR a Multicast address we're listening to (we may receive other loopback packets if we're in promiscuous mode but we should not respond to them). 2012-02-28 12:09:05 -08:00
Mark Pizzolato
9b5750f6a8 Fixed error path issue when RAW disk operations are active (found by Sergey Oboguev) 2012-02-01 20:01:46 -08:00
Mark Pizzolato
7a558a4e63 Added support for Logical End of Tape (EOT) detection when required 2012-01-24 10:12:26 -08:00
Mark Pizzolato
93f09d3253 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
Mark Pizzolato
f9521eaf01 Reverting Interrupt Priority Level change for DEQNA/DELQA. There is a general issue with all Qbus devices which is not specific to the DEQNA/DELQA. Fix coming later from Bob Supnik 2011-11-07 14:31:58 -08:00
Mark Pizzolato
8e606f0af7 Fix compiler warning due to extra arguments passed to printf 2011-11-02 16:10:10 -07:00
Mark Pizzolato
d733bc3eb9 Fixed Interrupt Priority Level of DELQA and DELQA-T devices to be BR4 devices. Reported by Sergey Oboguev 2011-11-02 13:38:06 -07:00
Mark Pizzolato
cbc14bc010 Fix memory leak on error path and proper polling vs async conditions 2011-11-02 05:45:01 -07:00
Mark Pizzolato
706e07a746 Fixed from Sergey Oboguev relating to XU and XQ Auto Config issues with vector assignments. 2011-08-17 16:36:02 -07:00
Mark Pizzolato
89a27e0816 pdp11_vh.c: - Added debugging support to trace register, interrupt
and data traffic (SET VH DEBUG[=REG;INT;XMT;RCV])
                 -  Added SET LOG and SET NOLOG support for logging mux
                    traffic
                 -  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 in unit
                    service routine (removed 75% of polling overhead)

pdp11_dz.c:      -  Added debugging support to trace register, interrupt
                    and data traffic (SET VH DEBUG[=REG;INT;XMT;RCV])
2011-06-03 09:27:27 -07:00
Mark Pizzolato
7dfe732667 pdp11_xq Fixed save/restore behavior
Fixed missing information from save/restore which
caused operations to not complete correctly after
a restore until the OS reset the controller.
2011-04-20 06:06:33 -07:00
Mark Pizzolato
3e4185b1b1 pdp11_xq - Changed default to disable polling when Asynch I/O is available 2011-04-19 16:20:24 -07:00
Mark Pizzolato
d81365b7af Compile cleanups.
i1620_sys.c - fixed printf calls without a format argument.
ibm1130_cr.c - fixed printf calls without a format argument.
scp.c - corrected argument types
vax780_sbi.c - corrected argument types
vax_sysdev.c - corrected argument types
pdp11_tu.c - Fixed t_addr printouts for 64b big-endian systems
sim_console.c - fixed formats to consistently print file names
2011-04-19 16:18:26 -07:00
Mark Pizzolato
b577841d03 Fixed bug with self loopback packets in multithreaded environments 2011-04-18 16:07:23 -07:00
Mark Pizzolato
fe8b1f06de Merge branch 'FastAsynchIO' into simhv38-2-rc2
Conflicts:
	PDP11/pdp11_tq.c
	PDP11/pdp11_ts.c
	PDP11/pdp11_xq.h
	VAX/vax780_sbi.c
	VAX/vax_cpu.c
	makefile
	scp.c
	sim_defs.h
	sim_ether.c
	sim_timer.c
2011-04-15 10:47:35 -07:00
Mark Pizzolato
a6964f849d Cleaned up parameter declarations in all simulators to achieve clean compiles on all platforms
Very minor in all cases, but the strange case of swtp_cpu.c
This module used expressions of the form:
   PC = ++PC & ADDRMASK;
Officially, the C language says that expressions which modify the same variable in more than one place have undefined behavior.
These were changed to the legal form which performs the desired action:
   PC = (PC + 1) & ADDRMASK;
2011-04-15 09:04:39 -07:00
Mark Pizzolato
eb514e2a8d Merged in new ethernet code to potentially leverage AsynchIO 2011-04-15 08:53:01 -07:00