1
0
mirror of https://github.com/simh/simh.git synced 2026-01-13 23:35:57 +00:00

174 Commits

Author SHA1 Message Date
Mark Pizzolato
91e2e4beb9 TIMER: More reliable NOCALIBRATE initialization
- Behave well when NOCALIBRATE mode is enabled after some instruction
  execution already happened.
- Properly detect the reliable calibrated clock or use the internal one.
2023-06-27 13:46:31 -10:00
Mark Pizzolato
a938f1e13f SCP: Change declaration of get_yn() to have boolean argument and return value
- Fix improper get_yn() use in test library logic

Reported by Peter Shorn
2023-04-06 12:29:25 -10:00
Mark Pizzolato
194b313179 SCP: Fold up include files used by all simulators
- Add common system includes used in may places which are allowed
  and thus added directly in sim_defs.h.
- Separate completely private system data structures and system APIs
  for use only by SCP library routines into sim_scp_private.h.
2023-03-04 17:51:49 -10:00
Mark Pizzolato
bdf28cf7f8 SCP: Remove switches from startup argv list when they are digested
export commonly used set_dev_enbdis API in scp.h
2023-03-04 17:51:49 -10:00
Mark Pizzolato
08a7dc8417 TMXR: Migrate SEND & EXPECT structures out of TMLN structure
The TMLN structure now has pointers to the line's SEND and EXPECT
structures which are dynamically allocated at attach time.
2023-02-05 05:39:04 -10:00
Mark Pizzolato
10357a4ce3 SCP: Support running without built-in ROM or other boot code
Some potential packaging platforms do not want to package/distribute
simh simulators which have build-in binary code (ROM images or other
boot code) which may have unknown copyright status.  Historically Linux
distributed prebuild simulators but left it to a simulator user to reach out
on the web to pick up these needed pieces to actually use the simulator(s).

This addition allows the default simulator builds to include the needed
binary components built into the simulator(s).  In addition, it also
allows simlators to be built with DONT_USE_INTERNAL_ROM defined and thus
not to contain the material with potentially questionalble providence,
but to transparently reach out to the web to fetch the needed component(s)
when they are needed without any effort on the part of the simulator user.
2022-10-19 14:53:58 -10:00
Mark Pizzolato
107813b11b SCP: Change sim_abort to SIM_SCP_ABORT macro.
SIM_SCP_ABORT is ONLY for use in scp support libraries
2022-07-30 11:18:08 -10:00
Mark Pizzolato
a9a68f6928 SCP: Only use relative path display for file system device attachments 2022-07-24 12:32:33 -07:00
Mark Pizzolato
4ae0de84c6 SCP: Double the initial & pre-calibrated instructions/cycles per second.
uint32 gives us an extra bit and negative instruction rates are not
meaningful.
2022-07-17 17:30:20 -10:00
Mark Pizzolato
bc98e1c609 SCP: Be sure to flush output files when aborting.
Emit a last gasp message prior to flushing files before aborting.
2022-07-17 13:01:25 -10:00
Mark Pizzolato
52bda05f70 SCP: Add API for device help to display supported breakpoints 2022-07-11 23:56:27 -07:00
Mark Pizzolato
9bd945679d SCP: Add new sim_call_argv() API.
call a routine with C style argc, argv parsed arguments
2022-02-28 07:44:39 -08:00
Mark Pizzolato
d57b182701 SCP: Expose _sim_vdebug for use by external libraries 2021-09-06 09:58:41 -07:00
Mark Pizzolato
6d04cf814a SCP: add sim_get_tool_path to get the expanded path to a local command
This logic was previously within the static SCP function _get_tool_version
and is now exposed for use elsewhere.
2021-08-28 04:27:41 -07:00
Mark Pizzolato
a015e44c10 ALL: Standardize writelock behavior adding global UNIT_WLK & UNIT_WPRT
Historically this functionality was reimplemented within each
DEVICE simulator often with slightly different implementations
and inconsistencies.  Solving this globally within SCP required
changes in many places, but should henceforth be reasonably
managed.

As discussed in #1034
2021-04-19 10:58:51 -07:00
Mark Pizzolato
a1785ac1d0 SCP: Add optional VM routine that is invoked on specific REGister updates
The new REG_DEPOSIT register flag bit indicates that updates to a
REGister with this flag specified will invoke the sim_vm_reg_update
routine after the data has been updated.
2021-03-02 05:35:04 -08:00
Mark Pizzolato
749dd7d333 SCP: Move utility functions to sim_fio 2021-01-12 07:58:56 -08:00
Mark Pizzolato
613625e878 SCP: Correct unit level debug logic to avoid potential segfault 2020-12-28 10:26:45 -08:00
Mark Pizzolato
dceadb393e SCP: Add internal & cross platform support for tar and curl commands 2020-10-20 02:50:34 -07:00
Mark Pizzolato
31606161ce SCP: Avoid potential compiler warnings
Essentially all are non-functional problems but silencing them is a good idea
2020-10-09 05:09:41 -07:00
Larry Baker
4041894b67 TAPE: Fix potential crash in library unit tests
Improper declaration of state variables referenced in setjmp/longjmp.
2020-08-15 16:21:02 -07:00
Mark Pizzolato
961e1b0513 SCP: Move GET_SWITCHES and GET_RADIX macros from scp.c to scp.h 2020-08-11 07:27:51 -07:00
Mark Pizzolato
65778c7664 REMOTE_CONSOLE: Make STEP behavior consistent in master mode
As discussed in #866
2020-06-06 08:40:49 -07:00
Mark Pizzolato
f519513f50 SCP, HP2100, HP3000, I650: Move one time initialization activities to cpu_reset
The paradigm of using a "weak" linker reference to find what was
previously the vm_init_routine() doesn't work reliably on all compile
environments supported by the simulators.  This has been reported
in #794 and it came up again in #862.  This change assures that
it will not come up again AND it reliably solves the problem with
Visual Studio compilers (and linker) that randomly chooses whether
to have the desired effect or not.

Of the 82 simulators which are currently part of simh, only these
three used the sim_vm_init() interface, so removing it had relatively
minor impact.
2020-05-26 06:25:01 -07:00
Mark Pizzolato
ca51776ec7 SCP: Enable global message suppression by library code
The global variable sim_show_message as 0 will suppress message
output which may be needed from time to time by library code.
2020-05-22 10:11:40 -07:00
Mark Pizzolato
2b68660876 SCP: Add a TESTLIB command to invoke sim_* library test on devices
- Previously invoking a simulator with -T was the only way to invoke the
  library tests for ALL devices.  That still works now with the additional
  flexibility to invoke a specific device's test from the sim> prompt.
- Adding TESTLIB help text encountered a maximum constant string length
  limit in the C compiler.  Reworked to allow multiple strings which are then
  concatenated on the first HELP command invocation.
2020-04-17 17:22:43 -07:00
Mark Pizzolato
3950478e00 SCP: Fix compile when compiler doesn't support variable macro arguments
Reported by Peter Coghlan building on AXP VMS.
2020-04-10 18:24:05 -07:00
Mark Pizzolato
1c589030ae TIMER: Provide a means for VM to indicate its expected calibration rate
As reported and discussed in #817

This allows RUNLIMIT to provide useful results on fast or slow host systems.
2020-03-23 07:48:45 -07:00
Mark Pizzolato
0170b7c6ab SCP: Convert more SHOW and debug output to use sim_vm_interval_units 2020-03-08 11:43:30 -07:00
Mark Pizzolato
938aa58f3a SCP: Provide ways for VM to specify sim_interval adjustment and step units
This affects the output of some SCP commands (including help).  The
results are cosmetic, but allows the simulator to provide correct descriptive
information.
2020-03-07 10:13:18 -08:00
Mark Pizzolato
254e173fc1 SCP: Add support for a simulator specific release announce message 2020-02-16 21:46:40 -08:00
Mark Pizzolato
8a858c181d SCP: Clean up WEAK definition and rework deprecated references to sim_vm_init
As discussed in #794
2020-01-29 12:30:25 -08:00
Mark Pizzolato
01f93e9507 SCP: Add SHOW RUNLIMIT to examine the state/condition of any execution limit 2020-01-09 23:53:41 -08:00
Mark Pizzolato
7581b92f9d SCP: Add a RUNLIMIT command to bound simulator execution time 2020-01-08 11:49:22 -08:00
Mark Pizzolato
5213e1125d SCP: Add support to identify a simulator specific release version
Included from Dave Bryan's V3.11 extensions
2019-12-28 12:34:06 -08:00
Mark Pizzolato
e611e0ceed SCP: Add global variable with the program name
Included from Dave Bryan's V3.11 extensions
2019-12-28 11:00:59 -08:00
Mark Pizzolato
427b7df073 SCP: Add RENAME/MV command 2019-12-04 16:33:41 -08:00
Mark Pizzolato
461f2ea513 SCP: Add MKDIR and RMDIR commands 2019-07-08 00:38:08 -07:00
Mark Pizzolato
f75f28aa21 TIMER: Add mechanism to pre-calibrate the instruction execution rate 2019-05-28 23:56:58 -07:00
Mark Pizzolato
64fa357bf9 SCP: Enable use of local rand() and scrand() implementation 2019-04-03 09:43:47 -07:00
Mark Pizzolato
9c75a7bfaa SCP: Correct help and doc to properly describe file compare IF command 2019-03-26 01:38:01 -07:00
Mark Pizzolato
5960bca32a SCP: Add a local rand() implementation to avoid Coverity issues 2019-03-20 12:57:36 -07:00
Mark Pizzolato
4b82a90c43 SCP: Assure that file buffers get flushed during frontpanel API halts
As reported in #668
2019-03-09 06:50:02 -08:00
Mark Pizzolato
6e65b635e3 ETHER: Accept upper or lower attach transport types (UDP, TAP, VDE, NAT) 2018-10-09 23:23:39 -07:00
Mark Pizzolato
6a3424df86 SCP: Add option to write debug output to an in memory circular buffer 2018-10-08 17:50:00 -07:00
Mark Pizzolato
f86a67310a SCP: Add missing aspects to sim_filepath_parts, move sim_dir_scan to sim_fio 2018-09-29 23:34:14 -07:00
Mark Pizzolato
0daa80e03d SCP: Add support for library unit test routines 2018-08-26 18:15:30 -07:00
Mark Pizzolato
06654d1ff5 TMXR: Make sure all MUX devices can leverage all debug selectors 2018-06-07 16:39:26 -07:00
Mark Pizzolato
ce5c3f0ff5 SCP: Allow symbols (environment variables) to describe contain addresses
This allows:
   sim> SET ENV X=80004324
   sim> EXAMINE X
   80004324: xxxxxxxxxx
   sim> DEPOSIT X nnnnn
2018-06-05 22:24:46 -07:00
Mark Pizzolato
b781834f31 SCP: Add sim_dir_scan API for general use. 2018-05-09 13:52:52 -07:00