Commit graph

495 commits

Author SHA1 Message Date
B. Scott Michel
103d1dd554 CMAKE: Regenerate, PDP10 needs USES_AIO
- Periodic "python cmake/generate.py" to sync with makefile changes.

- Ensure that AIO_CCDEFS (makefile) and USES_AIO (CMake generate.py) are
  present for PDP-10 simulators. Otherwise, user gets a warning message
  when the simulator starts about network support and asynchronous I/O.
2024-06-28 12:45:49 -04:00
Lars Brinkhoff
c6b9402f8c VAX: Add UW device to 8600 and 8200.
The VAXstation 100 "unibus window" interface board should work with
any Unibus VAX.
2024-06-08 14:45:06 -04:00
Mark Pizzolato
7a6a325580 ETHER: Make sure SET NOASYNC is effective for Ethernet devices
- Make sure that asynchronous mode can't be changed if devices using
   sim_ether are already attached.
- Add missing DEV_ETHER type flag for the only sim_ether using device
   that didn't already have it.
2024-02-01 12:54:53 -05:00
B. Scott Michel
d9d0e8bd74 CMake: Updates
Issue #294: "apple silicon build problem(s?)": If the "--flavor/-f" flag
is not specified on the command line, then complain loudly, print help
and exit. The script used to default to "Unix Makefiles".

Updates:

- Add missing "-DHAVE_LIBPNG" compiler command line define when the PNG
  library is detected/present for screen capture support.

- Add "clang64" to the list of MinGW64 platforms for which the
  .travis/deps.sh script can install build dependencies.

- Add PThread4W_FOUND to the condition that sets async I/O for Win32
  when using vcpkg for build dependencies.

- Add vs2022-x64, vs2019-x64 and vs2017-x64 build environments to
  build 64-bit Windows executables.

- Use simulator AIO only where needed by the simulator (i.e., the
  simulator calls/uses AIO_CHECK_EVENT in sim_instr())

  - Add "USES_AIO" flag to add_simulator() to mark a simulator that
    acutally uses asynchronous I/O.

  - Build "_aio" SIMH core library variants that have AIO turned on,
    link with the "_aio" variant when a simulator sets USES_AIO.

  - Emit a warning message when WITH_ASYNC is False (CMake configuration
    option) to notify the user/developer that some functionality will be
    crippled.

  Affected simulator builds: 3b2 family, PDP-6, PDP-11, VAX family,
  IMLAC and TT2500. The makefile and cmake/generate.py also updated
  to remain in sync with CMake.

  N.B.: Simulators still link with the underlying platform's threading
  library. SEL32 requires pthreads or equivalent threading library,
  independent of AIO.

- cmake/cmake-builder.sh

  - New "--no-aio" flag: Build simulators without async I/O.

  - New "--no-aio-intrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

- cmake/cmake-builder.ps1

  - New "-noaio" flag: Build simulators without async I/O.

  - New "-noaiointrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

CMake 3.28.1 INTERFACE_LINK_LIBRARIES behavior change: The file name
must now be an absolute path. Relative paths no longer accepted.
Internally, SIMH enforces this if CMAKE_VERSION >= 3.19, when REAL_PATH
was first implemented.
2024-02-01 12:51:13 -05:00
B. Scott Michel
8b14bb69be
CMake build infrastructure II (#53)
* CMake build infrastructure

The squashed commit that builds and packages releases for the SIMH
simulator suite with CMake, version 3.14 or newer.

See README-CMake.md for documentation.
2023-05-17 20:18:42 -04:00
Lars Brinkhoff
af9c7b5ebc VAX: M7452 Unibus window module for VAXstation 100. 2023-05-04 13:28:11 +02:00
Bob Supnik
16de685c4b PDP11, VAX: Re-enabled VH11 after fixes (Mark Pizzolato) 2023-01-31 12:54:39 -05:00
Paul Koning
9dea1cecd1 PDP9 VAX SEL32: Adjust test limits
Adjust the instruction limits for three simulators so they pass
on Apple M1 systems.
2022-11-28 11:01:33 -05:00
Mark Pizzolato
6c398df0ae simulator tests: Fix test setup to tolerate very busy or slow host systems
Adjust the RUNLIMIT to specify instructions instead of wall clock time.

On an unfettered system, the sel32 test completes after some 588 million
instructions.  On a slow host system, the system clock tick processing will
add to the total instructions executed.  Increase the limit to 750 million
instructions.
2022-11-13 11:07:46 -05:00
Olaf Seibert
9a1ca7f298 VAX750: Fix another int32_t -> int32
This was missed in 3a95ba4b.
2022-10-31 16:48:43 -04:00
Olaf Seibert
3a95ba4b34 Replace standard in32_t by local int32 type. 2022-10-13 22:29:06 +02:00
Olaf Seibert
7b494542ef Harmonize calibration code amongst VAXen.
Take the version of the code from VAX/vax4nn_stddev.c and vax4xx_stddev.c,
and apply it to 730, 750, 780, 820 and 860.
If we can assume that clk_tps always remains 100, this can be simplified
further.
2022-10-05 18:53:16 +02:00
Mark Pizzolato
910bbc2d7e Unibus and Qbus VAXen: Add DUP-11/DPV-11 device
These devices start disabled and will be that way in essentially all
working systems, but there apparently was a DECnet Phase V
support for this device, so it is added to all systems. The DPV
should now be readily testable.

As mentioned in #1152.  That PR will fix the DUP device.

This commit is explicitly released from any license restriction
mentioned in the LICENSE.txt of the github.com/simh/simh
master branch changes.
2022-06-05 13:06:04 -07:00
Mark Pizzolato
e75b2f29dc VAX 440 simulators: Avoid duplicate model name in SHOW CPU output 2022-02-12 14:21:18 -08:00
Mark Pizzolato
49b6e52d48 PDP11, VAX scsi systems: Migrate DEV_DISK devices using common autosize code 2022-02-11 15:26:21 -08:00
Mark Pizzolato
d64f003cc0 Non Qbus and Non Unibus VAX: Default to autosizing disks for MFM RD disks 2022-02-11 02:09:37 -08:00
Mark Pizzolato
746e4b9e59 SCSI: Add tape activity specific debug option 2021-09-06 10:28:04 -07:00
Mark Pizzolato
eadf12699b VAX systems with graphics: Properly cleanup on memory allocation errors. 2021-08-28 18:31:35 -07:00
Mark Pizzolato
d1a720debd BuildROMs: Change name define logic to avoid conflicts
Each of the BOOT_CODE_SIZE, BOOT_CODE_FILENAME and BOOT_CODE_ARRAY names
are replaced whenever a BuildROMs generated file is included.
2021-08-23 13:36:04 -07:00
Mark Pizzolato
ae1472db79 Generated ROM Image includes: Updated for multiple ROM image support
The actual contents of the input ROM binary files and the contents of the
created arrays are unchanged.

Multiple ROM image include files can be included in the same source module
without the need for any #undef BOOT_CODE_SIZE, etc.
2021-08-23 12:26:45 -07:00
Mark Pizzolato
d3d3c94485 All VAX: Fix CPU HISTORY MTAB help info 2021-08-14 23:11:27 -07:00
Mark Pizzolato
243951a791 Unibus and Qbus VAX systems: Update TODR help information 2021-07-14 11:00:23 -07:00
Mark Pizzolato
1548bd1cf6 infoserver100, infoserver150vtx: Add idle detection support
As reported in #1047
2021-06-05 13:17:27 -07:00
Mark Pizzolato
68e407ba0f ALL: Correct help text in "SET <unit> LOCKED" MTAB entries 2021-04-19 15:22:15 -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
885277e14f VAX: Fix typo in help for SET CPU IDLE command. 2021-02-23 12:50:22 -08:00
Mark Pizzolato
8c42a3436c VAXen with SCSI: Allow some cross controller read only drive access 2020-12-29 11:14:34 -08:00
Mark Pizzolato
567005a08d VAXStation3100's: Fix Coverity identified warning 2020-12-11 07:18:06 -08:00
Mark Pizzolato
236ca8206d VAX750: Associate bit fields with TTI and TTO DEVICE REGisters 2020-12-02 14:46:58 -08:00
Lars Brinkhoff
d5befa75c1 I650, IBM1130, PDP11, PDP18b, VAX, Sigma: Fix set but unused variables. 2020-12-02 14:45:21 -08:00
Lars Brinkhoff
970fb8ec95 PDP10, ETHER, VIDEO, VAX: Fix set but unused variables. 2020-11-25 04:50:47 -08:00
Mark Pizzolato
0d6f1ce362 All VAX: Remove redundant include of time.h 2020-10-30 14:17:24 -07:00
Mark Pizzolato
16cafb3525 VAX GPX, LK and VE devices: Compiler warning cleanup 2020-10-25 09:06:10 -07:00
Mark Pizzolato
a10b8969cd MicroVAX2000, VAXStation2000: Properly describe 16MB of memory in CFGTST reg
The CFGTST register MTYPE subfield should describe the additional memory
beyond 2MB on the processor board.  Previous logic attempted to describe
the total system memory and the net result didn't fit into the 3 bit field and
thus said no additional memory is present.

The consequence of this new amount of memory is that ALL of it is tested
during the power on self test and thus it takes significantly longer to get to
the >>> prompt.

As reported in #944
2020-10-21 04:25:00 -07:00
Mark Pizzolato
9572108471 MicroVAX2000, VAXStation2000: Add dummy responses to TXCS internal register
As reported in #942
2020-10-20 12:38:30 -07:00
Mark Pizzolato
dc4ce222e5 VAX8200: Cleanup potential compiler warnings
- Properly initialize DIB structure arrays.
- Change use of snprintf to strlcpy to carefully avoid potential buffer
  overflow warnings.
2020-10-19 12:27:53 -07:00
Mark Pizzolato
4db4f90429 VAX, Unibus VAX: Record explicit TODR set immediately to backing store
- Only if backing store is used (i.e. OS Agnostic mode)
- Previously this was only done on a clean simulator exit.  That could
  result in inconsistent timing information in operating system images vs
  the saved TODR baseline data
- Always return TODR values rounded to the TODR granularity (10ms).
2020-10-09 05:10:34 -07:00
Mark Pizzolato
0e72400e09 PDP11, Qbus/Unibus VAX: Silence various compiler warnings 2020-10-09 05:10:12 -07:00
Mark Pizzolato
ae825c9afb All: Declare sim_stop_messages as an array SCPE_BASE long
This avoids a potential invalid pointer dereference when formatting
the return value from sim_instr() if it is < SCPE_BASE but greater
than the previously defined static array size.sizeof

Update simh.doc to reflect this generic change.
2020-09-02 15:56:07 -07:00
Mark Pizzolato
5c48229ce4 Qbus & Unibus VAX: Add a SHOW QBA|UBA MAP{=n} command to display the bus map 2020-08-29 08:16:58 -07:00
Mark Pizzolato
b5a325f467 VAX: Correct ROM device help text to describe built-in ROM as default 2020-06-06 10:03:32 -07:00
Mark Pizzolato
550993a757 VAX: Disable Boot KA655 ROM Interval timer test
Restoring original patch in the ROM.  Too much Heisenberg effects to
capture debug data to isolate the issue.
2020-06-02 20:24:11 -07:00
Mark Pizzolato
09f18ec2ba VAX: Add idle support for VMS V5.0 and V5.1
As discussed in #853
2020-05-18 06:26:10 -07:00
Mark Pizzolato
1c38700d6f All VAX: Increase test RUNLIMIT time to account for VAX8200 extended tests
Features of the VAX 8200 CPU need extra time for diagnostic execution.
2020-03-26 15:26:03 -07:00
Mark Pizzolato
998f2a5254 VAX8200: Standardize model output strings for consistency 2020-03-25 14:34:46 -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
ee317e0cb4 SCP: Adjust RUNLIMIT time values on slow host systems
As reported and discussed in #819
2020-03-21 21:30:58 -07:00
Mark Pizzolato
e6d8d593b4 VAX750, VAX8200: Update UBA device map register REG initializers 2020-03-06 16:42:04 -08:00
Mark Pizzolato
80d9393b83 alpha, HP2100, ID16, ID32, I7094, PDP11 and VAX: Fix array REG definitions
Array REGister definitions have been made consistent by passing the
name of the array object.  This allows proper sizing assessment
to occur in the register validation logic.

Some previously described array REGister initializers were not really
arrays.  Some were structures and others were merely pointers to
someplace in memory that it was desirable to view as a scalar array.

Structures or other blob data should now use SAVEDATA.  Virtual
arrays intended to be interpret some part of memory as scalar data
now use VBRDATA initializers.
2020-03-06 16:29:17 -08:00
Mark Pizzolato
6da28c516f VAX730, VAX750: Remove invalid REGister definitions in console TU58 (TD) device 2020-03-01 12:07:34 -08:00