Commit graph

108 commits

Author SHA1 Message Date
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
Mark Pizzolato
decbe5b76b Various simulators: Set line endings to CRLF for consistency, remove stray tabs
Project standard source code has tabs converted to spaces and CRLF line
endings.

Other text files have CRLF line endings.
2023-03-19 16:51:27 -04:00
Timothe Litt
1f94350beb Fix uninitialized warning from VS2022
(It's undeserved.)
2023-02-26 22:22:01 -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
Bob Supnik
28fd79ef06 All LP and CD devices: Removed use of ftell for pipe compatibility
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
Bob Supnik
8d49d8c297 All Tape DEVICES: Added extra case points for new MTSE definitions
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
Mark Pizzolato
8c325db1ab Various Magtape Devices: Handle Coverity report of tape error status cases
Coverity flagged one magtape simulator for having fewer case breakouts
than the range of MTSE_x errors, after they were expanded for
MTSE_LEOT (listed as "V4 compatibility") and MTSE_RUNAWAY (for
Dave Bryan's implementation of erase and erase gap).

According to Dave, it turns out that MTSE_RUNAWAY can only be
returned if the magtape simulator supports and implements a density
specification and the ERASE function. The simulators Bob Supnik wrote
don't meet that criteria, so the expanded errors can't be returned.

Simply add a "default" case to the map logic returning SCPE_IERR for
unexpected cases.
2022-03-13 11:23:11 -07:00
Mark Pizzolato
e519c93ebf H316, NOVA, PDP11, PDP8, PDP18B, KX10: Record Sequential updates consistently
Devices that do single character I/O could be attached to non seekable
host OS devices (tty, pipes, etc.) and thus shouldn't count on fseek()
and ftell().  These DEVICEs on these simulators do single character I/O
and easily can update their POS REGisters to reflect how much data has
been emitted.  Changing such a REGister will have no  useful effect
when attached to a non seekable file.
2021-06-08 14:25:23 -07:00
Bob Supnik
2c2f47af06 PDP8, PDP18b: Fixed RF, DF, DT device bug if read overwrites WC memory location
As reported id #1023
2021-06-07 23:15:05 -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
Lars Brinkhoff
d5befa75c1 I650, IBM1130, PDP11, PDP18b, VAX, Sigma: Fix set but unused variables. 2020-12-02 14:45:21 -08:00
Mark Pizzolato
46133b5dd8 PDP18B: Compiler warning cleanup
- Remove unused variable assignment
- Avoid potential out of array indexing due to theoretical array
  reference via signed char index.  Likely non functional change.
2020-10-19 12:31:02 -07:00
Bob Supnik
eaa6944551 UC15: Zero out DR15 shared state on first allocation 2020-09-16 03:43:07 -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
3a38d38ce7 PDP4, PDP7, PDP9, PDP15: Open LPT, PTP devices for append
This implements the principle of "least surprise", in that users won't
normally expect to start overwriting an existing file on these devices.
Real hardware didn't behave that way.  A new (empty) file can always
be created with the -N switch on the ATTACH.
2020-04-28 07:35:09 -07:00
Michael Thompson
933373ecd3 PDP9: Add postbuild pdp9_test.ini
As discussed in #831
2020-04-03 11:59:59 -07:00
Mark Pizzolato
27c2dfa8f0 All DECtape devices: Undo previous unnecessary change relating to -A switch
Although these devices interpret a -A switch at attach time, they are not
sequential output devices and thus don't have an ambiguous interpretation
of the switch.

Incorrectly mentioned in #821
2020-03-24 08:35:55 -07:00
Mark Pizzolato
614ad52091 All: Fix devices that attach files and have special meaning for -A switch
The -A attach time switch implicitly means to open files in append
mode.

Some devices used -A to indicate ASCII data or AUTOSIZE of disk or
fixed size tapes - DECtape.  These devices are either read only devices
(Paper tape readers or card readers), so explicit forcing of the attach
to be -R avoids unexpected positioning errors.  The random access
Disk and fixed sized tapes buffer the container contents in memory
so append mode isn't relevant, but care must be taken to assure that
the buffer reading starts at the beginning of the file without regard
to the explicit open mode.

As reported in #821
2020-03-22 09:54:54 -07:00
Mark Pizzolato
350b14e392 18bit PDPs: Properly schedule input polling for TTIX device 2019-10-20 23:33:01 -07:00
Lars Brinkhoff
58ed88675f PDP7: Add Type 340 display. 2019-10-06 11:23:06 -07:00
Mark Pizzolato
880c8a89b7 PDP11, PDP18b, PDP8, VAX750, SCP: Silence Coverity identified complaints 2019-02-20 08:32:37 -08:00
Mark Pizzolato
a36c298f2b PDP15, UC15: Extended compiler cleanup 2018-08-05 22:42:56 -07:00
Mark Pizzolato
eea30cb7a5 PDP15: Add UC15 connect support from simh v3.10 2018-06-04 12:33:51 -07:00
Mark Pizzolato
6b361a9faf PDP11, PDP15, UC15: Merge simh v3.10 functionality from Supnik-Current branch 2018-06-04 10:43:00 -07:00
Bob Supnik
1f8ffa8caf PDP15: Fix RP03 address bit references 2018-06-03 22:13:07 -07:00
Mark Pizzolato
a92dc610a4 alpha, pdp18b, PDP8, sigma: removed stray tabs which crept in over time. 2018-04-01 14:22:30 -07:00
Mark Pizzolato
66a1f31dbd PDP10, PDP4, PDP7, PDP9, PDP15: CONST compatibility with 3.10 2018-03-10 00:18:27 -08:00
Mark Pizzolato
d18c7cc659 PDP4, PDP7, PDP9: Add another fall through comment (Coverity) 2017-05-01 19:48:15 -07:00
Mark Pizzolato
490b4d0583 PDP4, PDP7, PDP9: Add another fall through comment (Coverity) 2017-04-28 14:11:46 -07:00
Mark Pizzolato
0586d34f16 PDP4, PDP7, PDP9: Add fall through comment (Coverity) 2017-04-27 02:11:52 -07:00
Bob Supnik
3eb4598456 SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
Bob Supnik
41ea29a752 PDP18B: Limit connection poll to configured lines 2017-03-20 07:49:03 -07:00
Bob Supnik
62879beb70 PDP1, PDP8, PDP18B, PDP11: Fixed dt_seterr to clear successor states
For the PDP11, this includes deferring the setting of DONE on an error, allowing RSTS V4 to work correctly.

There was a minor (possibly only theoretical) bug in dt_seterr as well.
dt_seterr is supposed to stop the drive. If the drive is accelerating, at
speed, or stopped, it works fine. But if the drive is decelerating, it did
not clear out the "successor" states. In theory, the drive could be in the
middle of reversing - that is, there are successor states of accelerating
(in reverse) and at speed. So the successor states need to be cleared,
or the drive won't actually stop.

The fifth DECtape controller (the PDP8's TD8E) is much simpler and
doesn't have the problem.
2017-03-15 10:04:52 -07:00
Bob Supnik
d1768d2771 PDP10, PDP11, PDP18B, PDP8: Annotate switch case fall through (COVERITY) 2017-03-13 10:59:06 -07:00
Bob Supnik
706de798ba PDP1, PDP18B: Fixed dt_seterr to handle nx unit select (COVERITY) 2017-03-09 20:09:02 -08:00
Mark Pizzolato
d8dbc7e6b5 SCP: Migrate all stdio writes to pass through SCP provided Fprintf() 2017-01-14 20:48:09 -08: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
a08cc1b09c PDP7: Remove nested comments in pdp18b_defs 2016-04-26 20:57:27 -07:00
Ray Jewhurst
e67a180518 PDP-4/7/9/15: Added register descriptions to all devices 2016-04-07 15:40:04 -07:00
Phil Budne
736bf138b9 PDP7: GRAPHICS-2 A bit more description on the hardware, and UNIX-7 usage,
additional thoughts on creating a web interface!!!
2016-03-27 04:36:49 -07:00
Phil Budne
3167abeb93 PDP7: GRAPHICS2 send anything new before pressing button 7! 2016-03-27 04:36:37 -07:00
Phil Budne
8cf83c1b12 PDP7: GRAPHICS2 works, mostly 2016-03-27 04:36:05 -07:00
Phil Budne
90730088fb PDP7: GRAPHICS2 fix "write button lights" IOT
revert back to what it had been (octal/decimal confusion)
2016-03-27 04:35:01 -07:00
Phil Budne
f9d3081cd7 PDP7: GRAPHICS2 Fix keyboard input; map CR to NL on input; stuff CR on output 2016-03-27 04:34:36 -07:00
Phil Budne
8f7523bd45 PDP7: GRAPHICS-2 rename pdp18b_g2.c pdp18b_g2tty.c
This allows for storage scope simulation (too)!
(there is one program among the PDP-7 UNIX sources that uses the display)
2016-03-27 04:33:48 -07:00
Phil Budne
770c37309e PDP7: GRAPHICS2 cleanup, output side starting to work, but not input side? 2016-03-27 04:33:21 -07:00
Phil Budne
40a3628173 PDP7: Start of Bell Labs GRAPHICS-2 simulation (as "Glass TTY") 2016-03-27 04:33:02 -07:00
Mark Pizzolato
e0e58fce66 PDP15: Update pdp18b_rp from Bob Supnik.
1. Added RP03 support and supporting "SET" commands.
2. Fixed implementation of DPCF (it's a full reset and not blocked by BUSY).
3. Fixed handling of JOB DONE flag (not touched by NOP, SEEK, or RECAL).
2016-03-16 12:49:03 -07:00