Commit graph

3875 commits

Author SHA1 Message Date
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
3775c17034 Fixed asynch disk/tape I/O reset behaviors to reliably synchronize with the I/O thread's startup 2012-04-29 05:55:46 -07:00
Mark Pizzolato
c4659a0903 Fixed issue where asynchronous I/O wouldn't be reliable after a device reset. 2012-04-28 08:37:20 -07:00
Mark Pizzolato
784f0542f2 Fixed for Compiler indicated bugs 2012-04-27 15:09:40 -07:00
Mark Pizzolato
78009646f0 Cleaned up compiler noticed issues 2012-04-27 15:06:39 -07:00
Mark Pizzolato
c7f778ca79 Cleaned up makefile to support OSX builds with the clang compiler 2012-04-27 14:03:28 -07:00
Mark Pizzolato
ce716f93f6 Fix to avoid excessive compiler optimization of vax ROM access spinwait. Found by Craig Berry, fix suggested by Sergey Oboguev 2012-04-27 13:38:13 -07:00
Mark Pizzolato
57008bb8f5 Cleaned up nested comments 2012-04-27 12:36:03 -07:00
Mark Pizzolato
19bf1cdb90 Cleanup compiler warning about printf arguments 2012-04-27 12:27:16 -07:00
Mark Pizzolato
f77a38c3c5 Cleaned up a few compile complaints 2012-04-27 12:11:12 -07:00
Mark Pizzolato
8989b111c1 Fixed declaration of unused parameter to quiet a gcc warning 2012-04-27 10:08:27 -07:00
Mark Pizzolato
da820d73ac Fixed include file ordering to assure that sockets are defined for tmxr's use 2012-04-25 20:03:02 -07:00
Mark Pizzolato
c77bdb20f1 Added scp SHOW SERIAL command
Fixed Ethernet formatting of open device names
Fixed serial generic naming to accomodate for the fact that an OS list of serial devices might not include devices which are already opened.
2012-04-25 17:04:48 -07:00
Mark Pizzolato
7929c11792 Merge branch 'master' into SerialMux 2012-04-25 12:19:11 -07:00
Mark Pizzolato
83172116e8 Added SHOW ETHERNET command and extended eth_show to track and display open ethernet devices 2012-04-25 05:29:50 -07:00
Mark Pizzolato
31df5e8db2 Added a mechanism for commands to optionally handle their message printing via a separate dispatch in the command table. This is currently used by run_cmd to handle unsuppressed status returns. 2012-04-25 05:24:53 -07:00
Mark Pizzolato
72be72c472 Updated simh faq and doc files 2012-04-24 14:14:14 -07:00
Mark Pizzolato
fc931c9bb2 Fixed incorrect build target names for new swtp6800 projects 2012-04-24 12:21:45 -07:00
Mark Pizzolato
ad9cd1b51c Numerous Control Flow Fixes:
Fixed do file line numbers in messages to properly track after nested do command files.
Generalized do file command echoing to always include the do file line number
Fixed SET ON which was broken when SET ON INHERIT and SET ON NOINHERIT was added.
Fixed ON INHERIT behaviors for global ini files.
Added SET QUIET and SET NOQUIET commands
Added -Q flag to DO command file processing which sets quiet mode while that command file executes
Changed generic include file name to simh.ini from simh.rc to be consistent with other include files
Changed generic include file to come from the user HOME or HOMEPATH directory and if not found, the current default directory
Fixed format string used to provide quotes around arguments containing spaces while producing %* expansion.
Fixed return from do_cmd to return the status from the last command executed
2012-04-24 12:16:38 -07:00
Mark Pizzolato
178f4a743d Merge branch 'master' into SerialMux 2012-04-23 13:03:26 -07:00
Mark Pizzolato
4af7be06cc Inherit sim_rev.h from v3.9-0-rc3 2012-04-23 12:25:29 -07:00
Mark Pizzolato
db9bf32112 Merge of Bob's simh-v3.9-0-rc3 2012-04-23 11:50:43 -07:00
Mark Pizzolato
b2ebd56f9c Generalized serial port naming syntax to refer to host serial ports by the name 'serN' while continuing to allow the use of specific host device names.
Fixed some parsing issues in tmxr_attach_line.
2012-04-22 16:46:10 -07:00
Mark Pizzolato
19ae16ac6e Parameterized the gcc invocations in the makefile to facilitate easy use of lint/cppcheck/other-code-analyzer (from Michael Bloom)
For example:
   make GCC=cppcheck CC_OUTSPEC= LDFLAGS= CFLAGS_G="--enable=all --template=gcc" CC_STD=--std=c99
2012-04-21 08:37:46 -07:00
Mark Pizzolato
6912ad167e Fixed tmxr Buffering functionality broken in the Serial merge from Dave 2012-04-20 17:58:21 -07:00
Mark Pizzolato
1fb1756b65 Added sim_serial to all simulator Visual Studio Projects 2012-04-20 05:26:11 -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
3836306446 Revised prior OSX specific makefile fix to avoid a grep error message 2012-04-18 09:09:40 -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
f206facbd0 Merge branch 'master' of github.com:markpizz/simh 2012-04-17 08:46:33 -07:00
Mark Pizzolato
2873be2d7a Fixed makefile to work for various different gcc versions on OSX (from Craig Berry) 2012-04-17 08:45:52 -07:00
Mark Pizzolato
dfcd818762 Added O_DSYNC semantics to the RAW file open() call for *nix platforms. This makes *nix RAW I/O behavior consistent with windows RAW I/O. 2012-04-16 04:58:28 -07:00
Mark Pizzolato
eb60957366 Fixed VAX idle for NetBSD and OpenBSD support. 2012-04-12 18:45:57 -07:00
Mark Pizzolato
190993b5f4 Fixed possible NULL pointer dereference. (from Sergey Oboguev) 2012-04-12 14:48:26 -07:00
Mark Pizzolato
c6c9e0c3ac Fixed arguments to sprintf when constructing the expansion of %*. Found by Maurizio De Tommaso. 2012-04-12 12:18:23 -07:00
Mark Pizzolato
79d0e25848 Fixed printf of error messages which had parameters in the wrong order (found by Maurizio De Tommaso) 2012-04-12 12:11:01 -07:00
Mark Pizzolato
330839888d Removed redundant {sim_name}.rc initialization file. 2012-04-12 09:59:32 -07:00
Mark Pizzolato
04098f6007 Fixed VAX idle support for newer versions of NetBSD and OpenBSD to not trigger idling when IPL is changed from the system Boot ROM. 2012-04-12 09:52:55 -07:00
Mark Pizzolato
fc8856805d Added a default initializing file simh.rc to the files automatically loaded when a simulator starts
Fixed ASSERT command to require a condition operator (from Dave Bryan)
2012-04-11 19:26:27 -07:00
Mark Pizzolato
c1663795f1 Added VAX idle support for newer versions of NetBSD and OpenBSD guests if they use IPL 1 as the idle trigger 2012-04-11 19:24:42 -07:00
Mark Pizzolato
95a1cb71df Added a generic non simulator specific startup include file (simh.rc) to be processed.
Corrected the ON INHERIT behavior to not allow nested procedures to change the ON INHERITance state.
2012-04-11 10:46:43 -07:00
Mark Pizzolato
542c15844c Added display of the OS sleep resolution which is now displayed as an explanation if idling is unavailable. 2012-04-11 07:32:06 -07:00
Mark Pizzolato
33567b474d Sanity check when detaching a undetached unit. fro Dave Bryan. 2012-04-10 08:09:48 -07:00
Mark Pizzolato
fd702e407b Made automatic startup file be named {sim_name}.rc (i.e. hp2100.rc or vax.rc, etc.) 2012-04-10 07:02:49 -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
a339dae651 Extensive Control Flow Enhancements:
Added Message Suppression flag for status values, including providing a -Q option to the RETURN command to return with a message suppressed status
Added Do command file default extension of .sim (from Dave Bryan)
Added -O option to DO command file invocation which causes the caller's ON state and actions to be inherited in the newly called DO command file
Added Command Line expansion to include a %* which expands to the whole set of arguments (%1 ... %9)
Relaxed Command Line argument substitution (delimited by %'s) which cause environment variable lookups to first lookup the literal name provided and if that fails, lookup the name upcased.
Added a SIM_VERIFY special Command Line expansion variable which expands to "-V" when command echoing is active
Added a SIM_MESSAGE special Command Line expansion variable which expands to "-Q" when error message display is suppressed
Added Command Aliasing, which causes the initial token on a command line to be looked up in the environment variable table, and if it exists to substitute the expansion for the initial token.
Changed environment variable defining (with SET ENV variable=value) to always upcase the variable name.
Added SHIFT command which shifts the numbered argument variables %1 ... %9 to the left by one (%1 becomes what was %2, etc.)
Added CALL command which will call a routine (label) in the currently executing command file
Added SET VERIFY and SET NOVERIFY commands which enable or disable DO command echoing
Added SET MESSAGE and SET NOMESSAGE commands which globally enable or disable the display of status messages when commands (or Do Commands) return with unsuccessful status
Added SET ON INHERIT and SET ON NOINHERIT to globally enable inheritance of ON state and actions when DO commands are invoked
Added PROCEED and IGNORE commands which are do nothing but return success.  These can be used in specific ON actions to possibly ignore particular return status values
Added DO command file line number to error messages which are displayed while processing DO command files
Expanded the DO command nesting level to 20 to potentially allow for more nesting due to the extensive use of CALL commands are used
2012-04-10 05:38:12 -07:00
Mark Pizzolato
40deb20ccd HP2100 update from Dave Bryan 2012-04-04 12:31:43 -07:00
Mark Pizzolato
a14a1ab5cd Added missing synchronization when dispatching asynchronous calls. From Sergey Oboguev 2012-04-04 11:08:56 -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