Commit graph

2254 commits

Author SHA1 Message Date
Richard Cornwell
0e1f84357c B5500: Changes to allow DCMCP to use DTC device.
Also changed how interrupts are generated. When a line changes state
and interrupt should be generated. Once this is read no further
notification should be posted. If no characters are written in a
record the DTC should transition to IDLE state.
2016-05-16 08:14:44 -07:00
Richard Cornwell
44f523a036 B5500: Fixed bug with Alpha mode reads
If the record ended as a multiple of 8 characters, an extra gm would be
addded and an extra word written.
2016-05-16 08:13:11 -07:00
Mark Pizzolato
03445f5f94 B5500: Promote sim_card to a top level simh library
Rich Cornwell's sim_card module is about to be used by another new simulator
so it is being promoted.
2016-05-15 18:01:38 -07:00
Sergey Svishchev
504bc7c61f VAX: 2681 UART: implement ACR and IPR 2016-05-15 15:44:15 -07:00
Sergey Svishchev
ba4b951bd6 VAX: replace magic numbers with constants 2016-05-15 15:44:14 -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
Peter Schorn
60a8a2d43d AltairZ80: Fixed device descriptions for all devices. 2016-05-15 14:44:09 -07:00
Mark Pizzolato
5fc2207774 NOVA: Extend character input delay to 300 for PTR device
As discussed in #203
2016-05-13 11:50:55 -07:00
Mark Pizzolato
e70606c75b PDP11, all VAX: Fix handling of TU58 initialization command.
The processing of initialization commands improperly attempted to initialize
all controllers AND these attempts (for controllers beyond 0) referenced
beyond the bounds of the unit array.  This problem was reported in issue #309
2016-05-13 11:43:09 -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
7bd58c6d7f PDP11, VAX8600, VAX780, VAX750: Fix prior Massbus auto configure.
As discussed in #307
2016-05-09 10:40:58 -07:00
Mark Pizzolato
550e360769 VAX750, VAX780, VAX8600: Fix Massbus device description output 2016-05-07 16:32:09 -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
1af590d806 PDP11, VAX8600, VAX780, VAX750: Fix to auto configure Massbus adapters
When a mix of Massbus devices are configured with some enabled and
others disabled, the MBA's need to be allocated and properly configured
in the desired preferred order (RP, TU, RS).  On the PDP11, this interacts
with auto-configure since the RH devices are visible in the Unibus I/O
page.  On the PDP11 the second Massbus device can only be configured
if the TM device is disabled since the auto-configure assigned vectors
overlap for RHB and TM.

Problem originally reported in #301.
2016-05-07 15:17:24 -07:00
Mark Pizzolato
820d77ef69 GRI, I1401, PDP10, SDS: Fix compiler detected inconsistencies 2016-05-05 03:50:21 -07:00
Mark Pizzolato
0f013a582e alpha: Fix iteration count for MINSW4, MINUW4, MAXUW4, MAXSW4 instructions
Also properly type the return value for pal_eval_instr()
and the arguments to vax_sqrt() and ieee_sqrt().
2016-05-04 15:59:08 -07:00
Richard Cornwell
d8aafde723 B5500: Fixed bugs in handling of ? and empty writes to DTC device.
This is to allow for DCMP to do remote job entry.
2016-04-29 08:22:33 -07:00
Richard Cornwell
f4300500e8 B5500: Added EBCDIC support to sim_card. 2016-04-29 08:22:04 -07:00
Mark Pizzolato
3f4eed7517 VAX: Add debug support to the CLK device 2016-04-27 12:23:49 -07:00
Mark Pizzolato
717f3820b9 VIDEO: cleanup SHOW VERSION output when video support isn't available. 2016-04-26 20:58:05 -07:00
Mark Pizzolato
a08cc1b09c PDP7: Remove nested comments in pdp18b_defs 2016-04-26 20:57:27 -07:00
Mark Pizzolato
faeff88ce5 makefile: Disable link time optimization when building with clang.
Recent clang versions on OS X and Linux no longer buildingn with
-flto -fwhole-program
2016-04-26 20:55:14 -07:00
Mark Pizzolato
c55b6a8a8b makefile: Document supported build requirements and allow unsupported builds
Users wanting to build simulators with locally build dependent packages or
packages provided by an unsupported package management system can
override where this procedure looks for include files and/or libraries.

Overrides can be specified by define exported environment variables or
GNU make command line arguments which specify INCLUDES and/or LIBRARIES.
Each of these, if specified, must be the complete list include directories
or library directories that should be used with each element separated by
colons. (i.e. INCLUDES=/usr/include/:/usr/local/include/:...)

Binaries built with unsupported library components will have a 'unsupported' tag
in the output of the SHOW VERSION command.
2016-04-26 20:24:01 -07:00
Mark Pizzolato
2498fafd46 MicroVAX II, rtVAX1000: Fix NVR behavior to precisely reflect original hardware
Observations made about NVR behavior on real hardware:
    1) Aligned writes only affect a single RAM location
       without regard to the size of write, so no double
       pumping on writes.
    2) Unaligned (offset 3) writes do nothing without regard to size of the write
    3) Unaligned (offset 1) write 0 to the next higher NVR RAM location.
    4) Longword aligned and Unaligned (offset 3) reads return the same NVR RAM
       value in the the upper and lower words of the result.
    5) Unaligned (offset 1) reads reference the next higher NVR RAM cell for
       word and longword reads.

- Fix write behavior to match hardware.
- Fix read behavior to double pump word values for all unaligned word and longword
  reads.
2016-04-26 12:32:13 -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
4a47113faa TMXR: Properly initialize incoming line ring state to accepe connections 2016-04-13 12:48:33 -07:00
Mark Pizzolato
b4b4a88a4e MicroVAX2: Fix watch chip implementation
- In VMS mode, the day and month have to behave correctly to map the
  current day of year to the equivalent day of year in 1982
- The month maintained and returned by the watch chip has January as 1
  while the tm_mon field in the 'struct tm' has 0 for January.
2016-04-13 12:12:29 -07:00
Mark Pizzolato
14d1c4e2da SOCKET: Include system include files prior to referencing macros that they may define.
Fix #302
2016-04-12 13:08:31 -07:00
Mark Pizzolato
5a5df503af MicroVAX2: NVR watch chip simulation cleanup
- Fix NVR EXAMINE & DEPOSIT and SAVE/RESTORE as suggested by Bob Supnik.
- Properly initialize NVR contents when ATTACHed to a new/empty file.
2016-04-12 13:03:56 -07:00
Mark Pizzolato
6043962584 MicroVAX2, rtVAX1000: Remove duplicate REG declaration from SYSD DEVICE 2016-04-11 08:54:37 -07:00
Ray Jewhurst
5433561314 PDP-10: added register descriptions 2016-04-10 23:25:06 -07:00
Ray Jewhurst
60c9289c1d PDP-8: Update FPP register descriptions 2016-04-10 23:24:24 -07:00
Ray Jewhurst
81f68216ec PDP-8: added register description and fixed typo in doc 2016-04-10 12:54:18 -07:00
Mark Pizzolato
57d49f832c DOC: Added pdp8 revision to include FPP8A floating point unit 2016-04-10 10:47:52 -07:00
Mark Pizzolato
e05de3e50c TMXR: Provide Modem RING signal to notify MUX line of potential connection
When a new connection arrives it will be bound to the first line found
which has DTR enabled (considering the line order rules).  If none is
available, then all currently unconnected lines will have the RING signal
enabled.  If no such lines exist, the incoming connection is rejected with
"All connections busy".   If a currently disconnected line (with RING
enabled) raises DTR within 3 seconds, then that line gets the pending
connection and all other lines with RING enabled have RING disabled.
If 3 seconds pass without DTR coming up on any line with RING enabled
coming on, all lines with RING enabled will have RING disabled and the
incoming connection will be rejected with "No answer on any connection"
2016-04-08 03:09:51 -07:00
Mark Pizzolato
7b3e63aa75 TMXR: Return modem Ring signal only for connected lines
Ring indicates an incoming call and should preceded carrier coming up,
it shouldn't persist beyond the initial call/session setup.
2016-04-07 16:46:03 -07:00
Ray Jewhurst
09109d2186 TX-0: Added register descriptions to all devices 2016-04-07 15:40:04 -07:00
Ray Jewhurst
e67a180518 PDP-4/7/9/15: Added register descriptions to all devices 2016-04-07 15:40:04 -07:00
Ray Jewhurst
54b3ca04a1 PDP-1: Added register descriptions to all devices. 2016-04-07 15:40:03 -07:00
Mark Pizzolato
3fadb7e376 TMXR: Allow DTR drop to disconnect any network connected line.
Previously, this only worked for lines which had full modem signaling enabled.
2016-04-07 10:19:26 -07:00
Mark Pizzolato
ed4631b8e9 TMXR: Fix RESTORE for full modem lines connected to serial ports
Full modem lines depend on the simulated OS to fully configure the line
parameters (speed, parity, etc.), so setting line speed during a normal
attach violates that behavior.  However, when a RESTORE operation is
being performed, we are obliged to restore the OS set line parameters
which we know were already set by the simulated OS.
2016-04-07 10:09:30 -07:00
Mark Pizzolato
cb96abef96 PDP11, VAX: Use standard error status reporting with richer message text in auto-config 2016-04-05 15:01:11 -07:00
Mark Pizzolato
46465d3348 VAX: Add explanation to reason for stopping due to invalid PSL value
A user could change the contents of the PSL via a DEPOSIT command.
If the resulting PSL indicates Interrupt Stack and IPL is 0, then this is
equivalent to MTPR #0,#IPL which is explicitly described as "undefined"

When a MTPR #0,#IPL is performed, the VAX chip microcode doesn't check,
neither does the 780 microcode.  Nothing bad will happen immediately,
however when an interrupt occurs, the saved PSL will now contain IPL 0
and Interrupt Stack.  This combination will cause the REI dismissing the
taken interrupt to fail.  To avoid a user manually creating this via
a DEPOSIT command or to potentially detect this condition while stepping
through instructions this check refuses to execute when the PSL is
invalid.  This change merely provides an explanation.

On page 5-37 of the VAX SRM (DEC standard 32), the REI pseudo-code defines
exactly what a legal PSL looks like. The check at the beginning of
sim_instr is a direct implementation of that check, intended to prevent
the user from creating an inconsistent PSL through the simulator console.
In a VAX chip, the console code would exit by a genuine REI, and any
illegal value created by the user would cause a system stop (return to the
console).

On page 5-43, the revision history notes that in rev 8 of chapter 5,
MTPR #0,#IPL was made undefined. Because MXPR is privileged, and the
general assumption was that VMS knew what it was doing, no one realized
the potential inconsistency that MTPR #IPL could create until it was
too late. "Undefined" allows any behavior, up to and including blowing up
the system.
2016-04-05 06:44:30 -07:00
Mark Pizzolato
9bfdc1fb42 PDP11, VAX: Add XQ device delay to receive processing for loopback and setup packets 2016-04-05 05:21:04 -07:00
Mark Pizzolato
35180aabb0 PDP11, VAX: Fix DELQA device identity sensing (DEQNA & LockMode) 2016-04-05 05:17:51 -07:00
Tony Nicholson
ac2e3d9c62 VAX: Fix external type definition for BadCmPSL
Compilation under HP C V7.3-009 on OpenVMS Alpha V8.3 detected this
problem
2016-04-02 07:29:57 -07:00
Mark Pizzolato
488e747886 PDP11, VAX: Assure that DMA output to non-connected lines completes normally
Also make all scheduled timing behaviors consistent and not performed by
the input polling unit which may have different scheduling characteristics
to reflect input speed rate limiting.
2016-03-30 09:59:09 -07:00
Mark Pizzolato
bcf6e288b2 PDP11, DH11, DHU11: Fix startup initialization delay in DHU mode
Excessive delay would be reported on Ultrix as:

     "Warning: DHU device failed to exit self-test"

As discussed in #296
2016-03-29 17:22:55 -07:00
Mark Pizzolato
02d9bc304b makefile: Avoid trying to build using static libraries for libsdl and libsdl2.
Fix #297 (at least for OpenSUSE Leap 42.1)
2016-03-29 14:06:15 -07:00
Mark Pizzolato
736e341fd2 makefile: Fix OS X build to correctly supply input events for video capable sims 2016-03-28 18:16:59 -07:00