Commit graph

401 commits

Author SHA1 Message Date
Mark Pizzolato
522287cb8e SCP: Fix display of multi-bit masks and HELP dev SET output 2016-11-20 15:11:01 -08:00
Mark Pizzolato
8448580a3a SCP: Add support for debug matching multiple bit masks 2016-11-20 13:19:52 -08:00
Mark Pizzolato
ff95fb8ec2 SCP: Add warning about reset when RUN command is used multiple times.
The RUN command implicitly resets all devices which may have unexpected
consequences for a novice user.

The logic now produces a warning about this side effect when more than one
RUN command is executed in the same simulator session.

An explicit RESET command suppresses this warning for a subsequent RUN
command.

A RUN command with the -Q switch also suppresses this warning.
2016-11-18 05:20:06 -08:00
Mark Pizzolato
39d2944ede TIMER: Add support for catchup clock ticks and cleaned up asynchronous clocks
Asynchronous clocks are now built for all simulators which are built with
SIM_ASYNCH_IO defined.  The default behavior has asynchronous clocks
disabled since this is still experimental, but it can be enabled with
SET TIMER ASYNC.

Catchup clock ticks are now available, but since they're experimental,
they aren't enabled by default.  Catchup ticks are only available if the
simulators clock device calls sim_rtcn_tick_ack to acknowledge processing
of clock ticks.  The VAX simulators have been modified to leverage this.
Catchup clock ticks can be enabled with SET TIMER CATCHUP

Additionally, an idle threshold is provided which can be used to
influence when clock calibration may be suppressed.  The default is not
to suppress calibration activities.

The various timer behaviors are visible with the SHOW TIMER command.

The state of the operating timer facilities is visible with: SHOW CLOCK

Timer events which are queued are visible with the SHOW QUEUE command.
2016-11-16 23:50:53 -08:00
Mark Pizzolato
ee0aadeb37 SCP: Issue error message when CONTINUE command has unused arguments 2016-11-12 13:14:15 -08:00
Mark Pizzolato
7076527cf2 SCP: Format usecs as msecs with fraction when necessary 2016-11-12 13:12:33 -08:00
Mark Pizzolato
afad8ad374 TMXR: Add help indicating speed factor specification for console and mux lines 2016-11-05 02:52:58 -07:00
Mark Pizzolato
0268da4a28 SCP: Fix seconds format routine when displaying hours 2016-11-05 01:42:59 -07:00
Mark Pizzolato
efabcb9856 SCP: Added routine to format time in seconds down to usecs 2016-11-04 22:59:33 -07:00
Mark Pizzolato
0779a945d2 SCP: Fix output of SHOW QUEUE to also include event due time in usecs 2016-11-03 13:21:59 -07:00
Mark Pizzolato
f30de55f18 SCP: Fix help to only display breakpoint help for the proper device or CPU 2016-11-02 01:44:55 -07:00
Mark Pizzolato
b8842e40e5 TIMER: Fix internal calibrated clock to be well behaved while idling. 2016-10-26 16:16:36 -07:00
Mark Pizzolato
cf1e7b9cca SCP, PDP11: Added HELP CPU BREAK to display info about breakpoint types 2016-10-06 13:25:54 -07:00
Mark Pizzolato
d4f38d5358 SCP: Add compiled architecture and release/debug info to SHOW VERSION 2016-10-01 07:38:42 -07:00
Mark Pizzolato
9122a9f196 SCP: Add . pseudo symbol to reference the most recent address
Useful in EXAMINE and DEPOSIT.
2016-09-26 18:23:55 -07:00
Mark Pizzolato
c1ca3d4612 SCP: Add missing help mentioning SET CONSOLE SPEED 2016-09-24 05:04:44 -07:00
Mark Pizzolato
0b0f227057 SCP: Allow range/count specifier to special last value reference ($) in EXAMINE
As discussed in #343
2016-09-21 13:22:49 -07:00
Mark Pizzolato
9925ba83b8 SCP: Remove unused variable declarations 2016-09-20 09:21:11 -07:00
Mark Pizzolato
29c121e973 SCP: Fix default breakpoint message format.
When sim_brk_type_desc isn't populated, the matching breakpoint switches
and matching address are displayed.  Fix to use the optional VM provided
address formatting function sim_vm_sprint_addr.
2016-09-11 03:43:24 -07:00
Mark Pizzolato
b73afbb9d3 SCP: Fix breakpoint test when multiple breakpoint types are specified 2016-09-08 18:43:25 -07:00
Mark Pizzolato
222ae77436 SCP: Add sim_brk_message() to facilitate easy reporting of matched breakpoints.
Also extended the optional VM supplied routines to include sim_vm_sprint_addr.
Simulators which provide sim_vm_fprint_addr should also provide
sim_vm_sprint_addr with sim_vm_fprint_addr reworked to leverage
sim_vm_sprint_addr internally.  sim_vm_sprint_addr is currently only used by
sim_brk_message() which is an API which a simulator may choose to use if
it supports multiple breakpoint types,
2016-09-01 14:32:01 -07:00
Mark Pizzolato
e06b815d2a SCP: Record breakpoint match details in globals
sim_brk_match_type and sim_brk_match_addr can be used to generate
appropriate messages relating to the breakpoint match.
2016-08-31 11:56:47 -07:00
Mark Pizzolato
f03df970ea SCP: Compiler suggested type cast 2016-08-31 10:23:54 -07:00
Mark Pizzolato
f82d3f8994 SCP: Breakpoint enhancements
- Reliable support for multiple breakpoint types
- Optional separate breakpoint types defined concurrently with the same address
2016-08-31 08:10:38 -07:00
Mark Pizzolato
b4f3d6c6d8 SCP: Breakpoint cleanup.
- Add detailed error message info while parsing breakpoint commands
 - Properly limit breakpoint class values to reflect available mask bits
 - Declare globally sim_brk_npc since it is a documented API
 - Revise simh_breakpoints.doc to reflect current behavior
2016-08-26 14:35:00 -07:00
Mark Pizzolato
4065f47f8c SCP: Add sim_strncasecmp for platforms which may not have strncasecmp
Consolidated the existing two previously implementations which existed in
sim_serial and sim_ether.
2016-07-12 09:23:46 -07:00
Mark Pizzolato
052fafc62e SCP: Add UNIT wait and buf to SAVE/RESTORE data as documented. 2016-07-11 19:54:15 -07:00
Mark Pizzolato
c5d5a9dfbf VAX780: Fix Interval Timer logic
- Previous changes made to support 32V's 60HZ clock tick introduced changes
  which didn't properly handle increments and interrupt generation while single
  stepping the timer.

- The icr_rd routine returned an incorrect value when interpolation was
  necessary due to a missing cast when converting from double to uint32.

- Properly start the timer from the current state of the interval count register
  when the timer was previously stopped.
2016-06-20 15:56:19 -07:00
Mark Pizzolato
b935a2dafc SCP: Make sure SIM_BIN_NAME environment variable is always defined.
Previously it would only be defined in certain instances and after
processing some combinations of startup files.
2016-06-20 11:54:28 -07:00
Mark Pizzolato
e158408268 SCP: Add simulator binary name in a SIM_BIN_NAME environment variable 2016-06-19 22:10:17 -07:00
Mark Pizzolato
a24aba69ae VIDEO: Added priority boost to thread performing SDL processing and updates
Reworked all priority adjustment code to leverage a new
sim_os_set_thread_priority API which is coded to use pthreads or OS
priority adjustment APIs as necessary.
2016-06-11 09:52:33 -07:00
Mark Pizzolato
f3467d678c SCP: Extend RUN and GO commands with optional UNTIL criteria.
The new RUN/GO command syntax supports a stop criteria.
There are two forms of stop criteria:

1) A normal breakpoint (which exists only until it is encountered)
2) A user specified output string is emitted by the simulated system.

Command syntax is:

    RUN|GO {START-PC-VALUE} {UNTIL breakpoint|"output-string"}
2016-06-05 02:39:41 -07:00
Mark Pizzolato
c5ee1ad971 SCP: Enhance EXPECT support to allow multiple rules with the same match string
Multiple rules with the same match string are processed in the order the EXPECT
commands are entered.  NOEXPECT will remove all pending EXPECT rules which
have the match string provided on the NOEXPECT line.
2016-06-05 01:40:38 -07:00
Mark Pizzolato
8b08e6c2d9 SCP: Allow spawn commands to not require space after ! 2016-05-30 04:14:45 -07:00
Mark Pizzolato
e67bf602a0 SCP: Added shutdown flag for detach_all 2016-05-28 13:32:15 -07:00
Mark Pizzolato
b0e67d5900 SCP: Fixed potential memory leak in get_asearch 2016-05-28 13:31:50 -07:00
Mark Pizzolato
5531ccb175 ALL: Massive 'const' cleanup
These changes facilitate more robust parameter type checking and helps
to identify unexpected coding errors.

Most simulators can now also be compiled with a C++ compiler without
warnings.

Additionally, these changes have also been configured to facilitate easier
backporting of simulator and device simulation modules to run under the
simh v3.9+ SCP framework.
2016-05-15 15:25:33 -07:00
Mark Pizzolato
fdca6384f2 SCP: Issue reason message before calling abort when sim_cancel fails 2016-05-13 11:22:39 -07:00
Mark Pizzolato
576f5b39e5 SCP: Add ability to display device description if -D specified on SHOW DEVICE
The SHOW FEATURES will enumerate all devices in a simulator and for each of
them display the device specific description if one is available.

This change allows the description to be optionally visible for a single device
displayed with SHOW DEVICE.
2016-05-07 15:21:40 -07:00
Mark Pizzolato
b502558df7 SCP: Change handling of EXPECT return status to allow message in verbose mode
The previous change in handling or SCPE_EXPECT transformed it to SCPE_OK
to avoid unexpected exiting or condition trapping.  This didn't allow the
SCPE_EXPECT reason to be display if verbose mode was on.
2016-04-13 15:57:56 -07:00
Mark Pizzolato
313a8e2608 SCP: Defer readline initialization until immediately before it will be used.
On some platforms, readline seems to behave in unexpected ways if another
file is already open when it is initialized.  Fix: #291
2016-03-22 18:41:50 -07:00
Mark Pizzolato
f71acb307d SCP: Fix expect exit behavior to not be a reason a DO command procedure exits.
The exploit purpose of an EXPECT command is to return control to the SCP
interpreter when data output matches the expect condition;  This will then
allow either related action commands specified on the EXCEPT command to
be performed or subsequent commands in the running command file.
2016-03-15 14:48:53 -07:00
Mark Pizzolato
37733cabee SCP: Add support REGister data in arrays of arbitrary structures. 2016-03-14 15:07:22 -07:00
Mark Pizzolato
5ffd11c636 SCP: Fix year offset used when expanding DATE_19XX_YY and DATE_19XX_YYYY 2016-02-19 06:58:30 -08:00
Mark Pizzolato
445bc9935b SCP: Add DATE_19XX_YY and DATE_19XX_YYYY variable insertion.
These variables can be used in SEND scripts which are setting the
date/time on non Y2K compliant operating systems.
2016-02-18 18:50:06 -08:00
Mark Pizzolato
5eb6750800 SCP: Avoid using tempnam() to produce OS component of SHOW VERSION output 2016-02-11 09:47:02 -08:00
Mark Pizzolato
2b3680ac61 SCP: Avoid potential file access error when producing SHOW VERSION output. 2016-02-08 23:57:32 -08:00
Mark Pizzolato
f285d52b1c SCP: More thorough OS version display in SHOW VERSION 2016-02-08 23:48:22 -08:00
Mark Pizzolato
0897320a16 SCP: Add TYPE/CAT command 2016-01-28 06:49:56 -08:00
Mark Pizzolato
dce0aa2935 VIDEO: Add SDL audio support to generate a beep. Add absolute pointer position to mouse events. 2016-01-25 17:14:08 -08:00