Commit graph

142 commits

Author SHA1 Message Date
Mark Pizzolato
593a5950d1 SCP: Cleaned up the Remote Console Help output 2014-10-22 13:39:33 -07:00
Mark Pizzolato
bff7521c56 SCP: Migrate more output written to sim_log to use sim_printf. 2014-10-22 13:25:42 -07:00
Mark Pizzolato
ddc29fb2c9 SCP: Added debugging support for EXPECT and SEND activities. Fixed SEND buffer queuing bug. 2014-10-17 11:34:06 -07:00
Mark Pizzolato
02e90de6a4 SCP: Added EXPECT and SEND commands to react to data from and inject data into the simulated console port (and other MUX ports)
Ideas based on Dave Bryan's console halt efforts.

	sim> SEND {<mux>:line} {DELAY=n,}"string"

Where <mux> is the name of the device pointed to by the TMXR structure.  If <mux>:line isn't specified, then the console device is implicitly being referenced.
Delay is optional and once set persists for subsequent SEND operations to the same device.  Delay defaults to 1000.  The DELAY value is a minimum number of instructions which must execute before the next character in the provided string will be injected to the console port.  The DELAY value has effect between the characters delivered as well.  "string" requires quotes and within the quoted string, common C escape character syntax is available (\r\r\t, etc.).

Each device (console, and each line in each mux) has a separate value for DELAY.

An arbitrary number of 'expect' conditions can be defined.  The command syntax is:

              sim> EXPECT {<mux>:line} {[cnt]} "matchstring" {actioncommand {; actioncommand ...}}

Where <mux> is the name of the device pointed to by the TMXR structure.  If <mux>:line isn't specified, then the console device is implicitly being referenced.
"matchstring" requires quotes and within the quoted string, common C escape character syntax is available (\r\r\t, etc.).  The quotes used can be single or double quotes, but the closing quote must match the opening quote.  The match string might be extended to allow the use of perl style regular expressions in the "matchstring" when a -R switch is specified on the command line.

              sim> EXPECT "Enter Color: "  SEND "Red\r"; g

A specific 'expect' condition can be removed with:

              sim> NOEXPECT {<mux>:line} "matchstring"

All 'expect' conditions can be removed with:

              sim> NOEXPECT {<mux>:line}

'expect' conditions can be examined with:

              sim> SHOW EXPECT {<mux>:line}

Expect rules are one-shots (i.e. they disappear once a match has occurred) unless they are explicitly described as persistent with the -P switch.
The -C switch is available when defining expect rules.  The effect of a rule defined with the -C flag is that when an expect match occurs for that rule, ALL rules are cleared for that device (console or <mux>:line).
2014-10-14 10:49:24 -07:00
Mark Pizzolato
ab7befb4da SCP: Fix SET TELNET command to process all arguments on a command line. 2014-10-05 06:50:48 -07:00
François Revol
2b718becd2 Work around missing nice() on Haiku 2014-08-31 22:31:19 +02:00
Mark Pizzolato
746e5ab88c SCP: Fix reporting of console's buffering status. Fix parsing of MUX settings which were simply interpreted by matching a single token. Reported by Mark Bensen. 2014-05-05 05:30:35 -07:00
Mark Pizzolato
9022de500d SCP: Removed the irrelevant sim_deb_PC variable since it duplicates the role sim_PC simulator variable. 2014-03-05 12:53:32 -08:00
Mark Pizzolato
02cb5c2d88 Compiler suggested cleanups.
Mostly silencing noise warnings, but bugs were found in sim_console.c and pdp11_dmc.c
2014-02-14 17:07:45 -08:00
Mark Pizzolato
da134ebb2a SCP: Added detailed help (including switches) for SET DEBUG command and an auto flush of the debug output when instruction execution stops. 2014-02-04 15:45:26 -08:00
Mark Pizzolato
bebb787325 SCP: Fix problem on Windows which inhibited the ability to enter console input (^E) when bells characters were being output too often. Fixes #102 2014-01-23 09:21:07 -08:00
Mark Pizzolato
b61e5ae176 Compiler indicated cleanups 2014-01-08 13:06:42 -08:00
Mark Pizzolato
ae8bcecd29 I1620 : Changes from Bob Supnik re: Bob Armstrong has been running diagnostics and software, and these changes reflect fixes to bugs that were found.
We're not absolutely sure that all of the changes are correct - in particular the treatment of record marks in add/compare - but they do make the diagnostics pass, which they didn't before.

Bob asked for variable tab stops on the typewriter, and those are implemented as well. The routines were general enough that I put the SET/SHOW processors in sim_console.c, so I'm enclosing that and its header file.

Conflicts:
	I1620/i1620_cpu.c
	sim_console.c
	sim_console.h
2014-01-05 14:45:08 -08:00
Mark Pizzolato
e65aa904e7 SCP: Fix various missing log output 2013-11-20 15:09:43 -08:00
Mark Pizzolato
2e85e74699 SCP: Various cleanups.
- Avoid assignments of void * values.  Cast all memory allocation return values to appropriate types.
- Add output to sim_log where missing in various places.
- Fixed issue with lost file positions after a restore for devices which leverage the UNIT_SEQ flag.
2013-11-20 09:13:27 -08:00
Mark Pizzolato
6f4e718fda PDP8: Refinement to prior fix for issue #86. Avoid data loss if prior character hasn't been read yet when a poll event happens. 2013-11-03 13:08:17 -08:00
Mark Pizzolato
ab028c0a37 SCP: Fix SET DEBUG switch interpretation 2013-09-25 16:41:05 -07:00
Mark Pizzolato
735c589d07 SCP: Allow ;notelnet option to be specified on the console telnet command as discussed in issue #76 2013-09-18 08:03:31 -07:00
Mark Pizzolato
7b4d2073fe SCP: Added display of all enabled devices which have debugging enabled to the SHOW DEBUG command output. 2013-09-15 17:18:14 -07:00
Mark Pizzolato
572ed3437a Optionally Enriched the info displayed at the beginning of debug message lines as discussed in Issue #66
sim> set debug -r -a -t -p somefile

    -a   produces seconds.msec time format
    -t    produces hh:mm:ss.msec time format
    -r    causes time values displayed to be relative to the wall clock time when the 'set debug' command was issued
    -r   by itself will cause default of -t

    -a and -t can both be specified if desired

    -p   adds display of current PC value to the debug timestamp output

sim> show debug
2013-07-15 04:38:54 -10:00
Mark Pizzolato
1f8b3be4c0 Cleanup remote console single command mode. 2013-06-25 04:58:34 -10:00
Mark Pizzolato
469b4b249c Fixed typo in comment 2013-06-20 09:11:51 -07:00
Timothe Litt
9752a71943 Access violation if invalid command entered to remote console 2013-06-17 15:11:24 -04:00
Mark Pizzolato
486ef58595 Compiler warning cleanup 2013-06-01 23:04:45 -07:00
Mark Pizzolato
881f53e457 Added support to the Remote Console facility to close a remote console session on EOF 2013-05-31 09:33:05 -07:00
Mark Pizzolato
d86680013b Enhanced remote console to display the simulator's prompt string in the remote console sessions and changed startup message to more clearly describe how to get into multiple command mode. 2013-05-13 08:13:27 -07:00
Mark Pizzolato
3d27f015c1 Fix to avoid remote console looping in Multi-Command mode (Fix to issue #50). 2013-05-12 12:11:18 -07:00
Mark Pizzolato
7eb02bfd2b Avoid noisy log messages in Remote Console activities. 2013-05-10 16:15:42 -07:00
Mark Pizzolato
80289e1e3b Enhanced Remote Console support to allow two separate command processing modes.
1) Single Command Mode:  commands are processed between simulated instructions once CR is received.
 2) Multiple Command Mode: commands are initiated with the WRU character (usually *E) which suspends simulation execution and commands are processed until a CONTINUE command is entered (or automatically provided if the SET REMOTE TIMEOUT=seconds interval has elapsed).
2013-05-10 16:10:07 -07:00
Mark Pizzolato
782bec605d Fix potential remote console memory leak 2013-05-10 05:02:07 -07:00
Mark Pizzolato
6c6d641034 Tolerate race condition which results in spurious timer thread wakeups which were causing the timer thread to exit. (SIM_ASYNCH_CLOCKS) 2013-05-07 11:40:07 -07:00
Mark Pizzolato
6cf54e8341 Fixes for stable operation with SIM_ASYNCH_CLOCKS defined 2013-05-07 11:22:29 -07:00
Mark Pizzolato
cc8c79eb0f Added a more unique naming paradigm for remote console temporary log files to avoid potential collisions when multiple simulators may be running concurrently 2013-05-02 07:46:07 -07:00
Mark Pizzolato
242103e79f Added remote console support when a persistent console log is not enabled. 2013-05-01 16:48:55 -07:00
Mark Pizzolato
b1e31a7034 Fixed Remote Console to tolerate bare LF as a line terminator and enhanced the tmxr debug output for special characters 2013-04-30 08:37:11 -07:00
Mark Pizzolato
02ebf6bdfc Added support for STEP command execution in Remote Console sessions 2013-04-24 11:43:44 -07:00
Mark Pizzolato
9844ba6696 Added DIR (LS) command to list the files in a directory. This command is usable in Remote Console sessions. 2013-04-23 12:39:03 -07:00
Mark Pizzolato
02b3477d20 Ensure correct Remote Console functionality when log files get big 2013-04-21 05:46:52 -07:00
Mark Pizzolato
de22137d1b Enhanced Remote Console support
- Added HELP REMOTE for remote console sessions to display the available remote console commands
 - Added input timeouts to remote console sessions to automatically continue the simulator
 - Added suspend/resume announcements to all remote console sessions
2013-04-20 06:52:02 -07:00
Mark Pizzolato
ba09b2d3f2 Avoid crash in remote console when invalid command is entered and notification to alternate remote consoles. 2013-04-19 15:42:22 -07:00
Mark Pizzolato
99c13051e6 Merge remote-tracking branch 'origin/master' into Operator-Commands 2013-04-19 14:23:00 -07:00
Mark Pizzolato
b886fb23b6 Add Remote Console support 2013-04-19 13:54:19 -07:00
Mark Pizzolato
4bd72e666c Compiler and static analyzer fixes from Peter Schorn. 2013-04-13 16:59:54 -07:00
Mark Pizzolato
414cf3335f Compiler identified issues in AltairZ80 simulator 2013-04-12 06:39:28 -07:00
Mark Pizzolato
e3207c2009 Compiler suggested cleanups 2013-01-23 05:07:44 -08:00
Mark Pizzolato
83c1d80194 Merge branch 'master' into AsyncTmxr
Conflicts merged and missing changes in new modules added as needed for clock co-scheduling.
2013-01-21 16:52:42 -08:00
Mark Pizzolato
d46ebc7d49 Untangle circular include references between tmxr serial and sock include files. 2013-01-21 11:29:27 -08:00
Mark Pizzolato
19c4ccbf10 Added dynflags to the unit structure to track dynamic flags used by scp & libraries. This avoids expanding the set of unit flags and encroaching on the available user flags . 2013-01-18 09:46:13 -08:00
Mark Pizzolato
4f19d08869 Initial merge of Asynchronous Multiplexer and Asynchronous Clock support 2013-01-17 11:34:51 -08:00
Mark Pizzolato
1213f098e2 Fixed Buffered Console behavior which ended up flushing buffer contents once a second and clearing the buffer. We were also incorrectly flushing buffer contents when a connection dropped. 2013-01-11 16:34:05 -08:00