Commit graph

121 commits

Author SHA1 Message Date
Mark Pizzolato
0986c6ff9e VAX750: Fixed ROM based boot from console TU58
Problem was the console storage output buffer was masked with a WMASK instead of a BMASK (it is only a 8 bit register).
Also, the input interrupt processing cleared the output interrupt state instead of the input interrupt state.  This would only be a problem when interrupts are actually used instead of polled I/O.
2015-09-17 17:48:02 -07:00
Mark Pizzolato
78399f10cb SCP: Added a SCREENSHOT command to record the video display window. 2015-09-17 11:49:01 -07:00
Mark Pizzolato
bd2f592918 Revert "SCP: Remove ASCII source code character set dependency"
This reverts commit 7c7b44e409.

The prior commit didn't work for static initializers.  There are other ASCII dependencies in simh.  They should all be solved together or not at all.
2015-08-07 00:54:23 -07:00
Mark Pizzolato
7c7b44e409 SCP: Remove ASCII source code character set dependency
Provide reasonable behavior on any platform which doesn't use ASCII as a character set.  Method suggested by Dave G4UGM.
2015-08-03 12:35:08 -07:00
Mark Pizzolato
325e369bfd FRONTPANEL: Added mount and dismount commands for removable media 2015-04-04 16:37:43 -07:00
Mark Pizzolato
41978eca80 All: Convert from C runtime library perror() to sim_perror so that all messages will arrive in the same place(s). 2015-04-03 19:56:37 -07:00
Mark Pizzolato
d75c072235 VAX, VAX780, VAX8600, MicroVAX1, MicroVAX2: Stabilize SAVE/RESTORE capabilities to allow restore of older version VAX and VAX780 save images and to properly allow simulator restores of processor model variations as discussed in #197 points 1 & 2 2015-03-30 13:52:48 -07:00
Mark Pizzolato
e768629009 SCP: Added the capability for EXAMINE command output to be written directly to a socket. 2015-02-21 12:40:36 -08:00
Mark Pizzolato
ef9d1adce1 PDP10, PDP11, VAX: const cleanup 2015-02-13 06:18:24 -08:00
Mark Pizzolato
aae9e55a39 SCP: More allow command files to contain UTF-8 data.
- Provide a sim_islower(), sim_isalpha(), sim_isprinit(), sim_isdigit(), sim_isgraph(), sim_isalnum()  which make sure that the character being examined as an unsigned char.
2015-01-05 14:08:03 -08:00
Mark Pizzolato
256bbdddc9 SCP: Allow command files to contain UTF-8 data.
- Ignore a UTF_BOM sequence at the beginning of command files.
- Provide a sim_isspace() which makes sure that isspace only considers the character being examined as an unsigned char.
2015-01-04 06:59:56 -08:00
Mark Pizzolato
6ec6b6ab1f SCP: Provide an API to display alternate error message text while returning SCPE status. 2014-12-31 14:32:10 -08:00
Mark Pizzolato
1f41735dcd SCP: Added missing declaration of sim_vm_fprint_stopped 2014-12-20 06:22:41 -08:00
Mark Pizzolato
2e1167d4a0 Compiler suggested cleanups - mostly const fixups 2014-10-26 17:06:24 -07:00
Mark Pizzolato
4dbac410da SCP: Added const declarations to various APIs to reflect the appropriate usage. Moved parameter values for run_cmd and exdep_cmd to scp.h 2014-10-26 14:52:22 -07:00
Mark Pizzolato
e8358703be SCP: Fix NOEXPECT to actually delete a single indicated expect rule. Allow expect actions to be provided. Fix match buffer management when expect regular expressions are in use. 2014-10-25 11:14:36 -07:00
Mark Pizzolato
ebf4e0cb64 SCP: Add support for legacy form of console expect and send string commands (from Dave Bryan) 2014-10-23 05:58:43 -07:00
Mark Pizzolato
5a4bbbad8d SCP: Extended EXPECT and SEND to have more flexible activation delays
- EXPECT will now tolerate a HALTAFTER=n parameter which delay the simulator stopping execution for n instructions.  Unpredictable behavior will happen if multiple EXPECT conditions see matching data before the first actualy halt occurs.
- SEND has an AFTER=n argument which delays the initial stuffed data from being input for at least n instructions.  It also has a DELAY=m argument which specifies the minimum number of instructions which must execute between stuffed input data.
- Changed run_cmd() to no longer clear pending breakpoint actions before starting instruction execution.
- Added a -Q switch to the commands which dispatch through run_cmd() (RUN, STEP, NEXT, GO, BOOT, etc.).  This switch will suppress status output when execution stops.  This will allow sequences of breakpoint action commands to silently execute when needed.
2014-10-20 16:47:33 -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
3951ad2432 Cleanup of unneeded global extern declarations 2014-10-10 08:18:15 -07:00
Mark Pizzolato
0b1050853e SCP: Allow for the potential of a breakpoint action to remove the establishing breakpoint while still completing pending actions 2014-10-10 08:03:22 -07:00
Mark Pizzolato
f355749eb5 SCP: Provide a way to display an arbitrary buffer contents as hex in debug output 2014-09-17 09:08:12 -07:00
Mark Pizzolato
b8dc8f01b5 SCP: Fix to have sim_printf expand newlines to CRLF when writing to stdout with the simulator running. Allow sim_debug to be called with a NULL device pointer and return producing no output. 2014-09-16 09:18:57 -07:00
Mark Pizzolato
8f3e6438a3 SCP: Added the NEXT command. This command provides the ability for a simulator to step over subroutine calls. 2014-04-14 14:22:18 -07:00
Mark Pizzolato
6ce8d99cd8 SCP: Added generic output routine sim_printf to output to stdout and sim_log (and sim_deb when enabled)
The goals here being to simplify calling code while getting consistent output delivered everywhere it may be useful.

Modified most places which explicitly used sim_log or merely called printf to now avoid doing that and merely call sim_printf().
2014-03-28 08:20:05 -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
eaae19463c SCP: Initial merge of old style single line help with hierarchical help 2014-02-01 07:04:44 -08:00
Mark Pizzolato
00afa58bc4 SCP: Added hierarchical help capability (from Timothe Litt) 2013-11-22 06:08:03 -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
600d6f5962 SCP: Added a mechanism to allow debugging output to display PC values for simulators which don't have a simple register which contains the PC value. 2013-11-14 10:41:49 -08: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
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
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
e65ef135d2 Merged the latest ibm1130 simulator from Brian Knittel's ibm1130.org 2013-04-18 11:08:10 -07:00
Mark Pizzolato
5bba4daca4 Added support for MTAB entries to have values which contain quoted strings (which can therefore contain spaces and/or other characters which might normally be delimiters. Need suggested by Michael Mondy 2013-04-12 11:46:30 -07:00
Mark Pizzolato
d5ca542102 Changed use of compile #defines which start with a _ character to not do this since defined symbols starting with _ are reserved to local compiler/runtime implementations in the C language. This addresses issue #32 2013-03-12 11:07:58 -07:00
Mark Pizzolato
ad4d5be6ab Give preference with HELP dev SHOW and HELP dev SET for unit modifiers to be displayed with a unit number as an example (unless the device has only one unit). 2013-02-04 13:51:20 -08:00
Mark Pizzolato
9fc6aa73d6 Finish migration for simulators to use generic clock co-scheduling and sim_activate_after for scheduled delays 2013-01-22 05:41:27 -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
448d9e52fc Added VAX860 to the descrip.mms and cleaned up the VMS compiler identified issues 2013-01-10 15:14:51 -08:00
Mark Pizzolato
dac73b9381 Migrating scp and library global variables to be declared as extern in the appropriate library include file and remove repetitive declarations in referencing modules. 2013-01-10 13:29:15 -08:00
Mark Pizzolato
784ae24324 - Fixed asynchronous i/o hangs introduced when asynchronous cancel support was added
- Added event debug support to scp and the vax simulator
- Moved external declarations into include files related to modules which define them and removed random externs from modules which referenced them
- Fixed typos in sim_ether
- Fixed sim_disk and sim_tape to properly manage asynchronous threads on an i/o flush
2013-01-09 17:02:58 -08:00
Mark Pizzolato
50cf91d441 Merge branch 'SerialMux' and compiler suggested cleanup 2012-12-18 09:52:14 -08:00
Mark Pizzolato
762aacf7ad Merge branch 'Extra-VAXen' 2012-12-17 03:19:07 -08:00
Mark Pizzolato
2b5ceae2be Added missing sim_cancel support for device simulation code using the sim_disk and sim_tape libraries and doing asynchronous I/O if asynchronous I/O is active 2012-12-12 10:58:19 -08:00
Mark Pizzolato
bcf0e8b19c Generalized sim_debug_u16 into sim_debug_bits and added support to display bit fields of variable size as well as bit states. 2012-12-04 09:32:40 -08:00
Mark Pizzolato
69666f1480 Fixed message reporting after command completion:
scp.c,scp.h - Gave priority to a command message handler to determine what values result in displayed messages and exported run_cmd_message for use by simulators which add simulator specific BOOT commands which leverage the run_cmd logic and should also leverage the run_cmd_message for message display

VAX/vax610_sysdev.c, vax730_sys.c, vax750_cmi.c, vax780_sbi.c - Added BOOT command message dispatch to run_cmd_message for simulators which perform preprocessing on BOOT activities but otherwise then dispatch to run_cmd.
2012-10-31 10:09:04 -07:00
Mark Pizzolato
1fda1b1708 scp.h, sim_console.h, sim_console.c - Changed SET CONSOLE DEBUG= and SET CONSOLE NODEBUG to enable/disable debugging for the console device 2012-10-23 14:37:19 -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