Commit graph

3205 commits

Author SHA1 Message Date
Bob Supnik
3f9a77bd10 VAX, VAX780: Added hook for unpredictable indexed immediate
Originally, the VAX allowed immediate operands (8F) to be used without
restrictions in address mode instructions, either standalone or indexed.
Starting with MicroVAX II, immediate indexed became reserved. This
remained true for all subsequent chip implementations. The SRM was
ECOed in March, 1985 to make immediate indexed unpredictable.

In MicroVAX II, immediate g-floating operands didn't work correctly. The
problem was found a couple of months after tape-out. While the index
flows could be fixed, and were fixed according to the microcode revision
history:

;    7-May-84    [RMS]    Fixed FD problem in index flows (JLR)

the problem in indexed immediate could only be fixed by a significant
hardware change in an area that was already packed full. The VAX
Architecture Team, which had always been very sympathetic to the
VAX chip efforts, proposed a much simpler solution: make immediate
indexed unpredictable. It was useless, in any case.

I'm rather surprised that this wasn't flagged by the 780 diagnostics.
Maybe it was never tested. It was tested in HCORE (the original MicroVAX I
core diagnostic that is failing), but I removed it subsequently:

; 8-may-85    rms    removed indexed immediate tests

Bottom line - the simulator is right for the chip VAXes (including, I think,
V11) and wrong for MicroVAX I and probably the 8600, 780, 750, and 730.

# Conflicts:
#	VAX/vax_cpu.c
2019-04-23 22:58:02 -07:00
Matt Burke
7eee73770d makefile: Add missing SDL support for VAXstation simulators.
- Minor naming corrections to VAX simulators
2019-04-23 18:21:16 -07:00
Matt Burke
39ce971e2e SCSI: Added write support for tapes. Fixed set command for changing device type 2019-04-23 18:06:15 -07:00
Mark Pizzolato
2ebf9216af VCB02: Fix compiler warnings 2019-04-23 10:44:30 -07:00
Mark Pizzolato
b1766b6dcf VAX8200: Fix access to watch chip wtc_rd() and wtc_wr()
- Recent changes in vax_watch.c changed the input parameter from a
  physical address to a register address within the watch chip.
- vax630_sysdev.c called the older wtc_wr() with the new parameter,
  but the length argument has been removed.
- The watch chip never starts as valid.  Make it valid when the TODR is
  attached (i.e. reflecting a connected battery).
- 64 bytes of bus addresses for the watch chip can sometimes be dispatched
  to wtc_rd() and wtc_wr().  Make sure that reasonable memory is always
  referenced for all potential accesses.
- restore vax8200 to makefile which got lost in a prior merge.
2019-04-23 10:41:10 -07:00
Mark Pizzolato
a712ba29a6 MicroVAXI: Add memory controller CSR Address visibility 2019-04-22 01:47:55 -07:00
Matt Burke
f028802bff VAX: Added many different model VAX simulators
- MicroVAX 2000 & VAXstation 2000
- MicroVAX 3100 M10/M20
- MicroVAX 3100 M10e/M20e
- InfoServer 100
- InfoServer 150 VXT
- VAXstation 3100 M30
- VAXstation 3100 M38
- VAXstation 3100 M76
- VAXstation 4000 VLC
- VAXstation 4000 M60
- MicroVAX 3100 M80
- InfoServer 1000
2019-04-21 16:29:45 -07:00
Matt Burke
1d15966191 VAX: New simulator for VAX 8200 2019-04-21 09:09:32 -07:00
Mark Pizzolato
4e0450cff9 SCP: Add support to uniquely identify SIGTERM in do procedures
As discussed in #681
2019-04-18 20:03:17 -07:00
Mark Pizzolato
590be6b0dd SCP: Give priority to device names in intial HELP commands 2019-04-18 01:48:16 -07:00
Mark Pizzolato
8d172a4049 SCP: Fix ON ERROR default declaration
- Additionally, be sure that ON actions are saved with unexpanded variables

As reported #681
2019-04-17 20:12:21 -07:00
Mark Pizzolato
0c39921fb7 TAPE: Full speed performance of tape image validation scan
- Force the detection point of a tape structure error to be the logical EOM
  on the tape.
- Enable SIGINT abort of a possibly long running validation scan
- Add -L detail record structure option at ATTACH time
- Add extra garbage at end of generated test data files
2019-04-16 18:20:25 -07:00
Mark Pizzolato
ef1805b233 SERIAL: Correct inverted error sense of Windows modem status API (Dave Bryan) 2019-04-16 17:09:32 -07:00
Mark Pizzolato
5343dae137 ETHER: Fix potential compile warning about buffer overrun 2019-04-16 15:56:32 -07:00
Mark Pizzolato
a95a835b98 PDP11: Fix typo in formatting instruction history including the SP 2019-04-16 15:55:54 -07:00
Bob Supnik
cdfb7c0878 PDP11: Add SP to instruction history 2019-04-15 22:01:08 -07:00
Bob Supnik
d8eeb1ce00 i1401: Fix comment in operation table 2019-04-15 21:56:20 -07:00
Bob Supnik
37533d7891 Sigma: Fix spelling in comment 2019-04-15 21:55:46 -07:00
Mark Pizzolato
456aa3ed5d ETHER: Gracefully handle dynamic pcap library initialization errors
- Test BPF using all available Ethernet capable interfaces
2019-04-15 16:49:08 -07:00
Bob Supnik
2f0db74483 VAX: Provide support for MTPR/MFPR opcodes to set V & C condition codes 2019-04-13 12:49:43 -07:00
Mark Pizzolato
e7787c8db5 MicroVAX2: Let QDSS Qbus memory window be programmatically set
A write the the I/O page Qbus CSR configures the desired Qbus memory
window that the rest of the interface to this board is accessed through.
2019-04-13 12:44:02 -07:00
Mark Pizzolato
51feb87be4 rtvax1000: Avoid all QDSS (VCB02) components during build 2019-04-13 12:42:56 -07:00
Mark Pizzolato
eb8791c227 VAX: Make line endings consistent with simh project 2019-04-13 12:33:56 -07:00
Seth Morabito
7455d28126 3b2: Soft-power shutdown via TIMER command
This change enables the simulator to be shut down cleanly via a
soft-power shutdown command. This is implemented in the real 3B2/400
through the sanity timer, which, if it reaches zero, sets a bus timeout
flag in the CSR and issues an interrupt at IPL 15. The operating
system (System V UNIX) treats this as a shutdown request and enters
runlevel 0.

To use this change in a SIMH startup script, for example to implement a
3B2 simulator as a service, one could add these commands:

    # [... simulator setup ...]
    BOOT
    SET TIMER SHUTDOWN
    CONTINUE
    EXIT

On catching a SIGTERM, SIGINT, or SIGHUP, the simulator would return to
SCP control, set the soft power shutdown flag, and then continue
simulator execution. After the system is cleanly shut down, the
simulator would then exit back to the operating system.
2019-04-13 11:36:02 -07:00
Mark Pizzolato
ad9cb1d42d MicroVAX2: Cleanup build of rtvax1000 avoiding QDSS which isn't supported 2019-04-12 06:11:06 -07:00
Mark Pizzolato
06d78600b3 SLIRP: Fix Coverity changes 2019-04-12 00:39:49 -07:00
Mark Pizzolato
71abd2896c SLIRP: Fix Coverity complaints 2019-04-11 21:37:59 -07:00
Mark Pizzolato
0d894613f9 TAPE: Improve attach time tape scan performance 2019-04-11 21:01:10 -07:00
Mark Pizzolato
d12ae2a3f3 SCP: Allow a bare % at the end of a line for SET THROTTLE nn%
Fix #678
2019-04-11 12:35:06 -07:00
Matt Burke
4babf7f529 MicroVAX2: Added new video device (VCB02) 2019-04-10 22:01:52 -07:00
Mark Pizzolato
dfd011a9b3 TMXR: Update doc to add missing API description 2019-04-10 15:09:47 -07:00
Mark Pizzolato
1a48c543d5 TMXR: Fix tmxr_rqln() when speeds are enabled to avoid aways ready condition. 2019-04-10 15:08:49 -07:00
Mark Pizzolato
9dbc800e58 TAPE: Make sure that all tape record lengths are properly typed.
- Add Tape Format help options that include recently added format types to
  MTAB entries.
2019-04-10 14:26:20 -07:00
Mark Pizzolato
f12bc70470 TAPE: Add support for TAR tape format 2019-04-06 02:00:53 -07:00
Mark Pizzolato
436f1dbbbe TAPE: Reworked reverse read of P7B tapes to avoid seeking on every byte
- Added string density support for MTAB generation
2019-04-05 00:00:24 -07:00
Mark Pizzolato
64fa357bf9 SCP: Enable use of local rand() and scrand() implementation 2019-04-03 09:43:47 -07:00
Mark Pizzolato
bb2368ab8d PDP10, PDP11, VAX: Allow CH to be attached during simulator execution. 2019-04-03 09:43:12 -07:00
Mark Pizzolato
ff9d18656b PDP10, PDP11, all VAX: Cleanup help info for CR device
- Convert strcpy() and strcat() to strlcpy() and strlcat().
2019-04-03 09:36:30 -07:00
Mark Pizzolato
fa77969c57 All: Fix various Coverity complaints 2019-04-03 09:32:54 -07:00
Mark Pizzolato
e6490223eb TAPE: Fix P7B record length return when encountering a tape mark 2019-04-02 09:26:34 -07:00
Mark Pizzolato
2ba50a3f70 TAPE: Fix potential Coverity complaints 2019-04-01 15:06:25 -07:00
Mark Pizzolato
de829e52e9 TAPE: Fix incorrect comparison typo. 2019-03-31 09:35:52 -07:00
Mark Pizzolato
d022ea42a1 SCP: Avoid potential divide by zero when initially displaying the event queue 2019-03-30 17:38:35 -07:00
Mark Pizzolato
e7309d947b PDP10, PDP11, VAX: Fix event initial scheduling to properly start after a reset 2019-03-30 17:37:28 -07:00
Mark Pizzolato
98f6aae31a TAPE: Make ATTACH time validation check more robust
- Different systems used tape marks in different ways that are now
  tolerated (multiple successive ones located on different parts of
  the tape, etc.)
- Always validate beginning and end of record length indicators to avoid
  moving into invalidly structured tape data
2019-03-30 09:27:02 -07:00
Mark Pizzolato
e56b5f05e7 TAPE: Add support for AWS format tape images
Also added extended tape unit test code
2019-03-26 14:06:57 -07:00
Mark Pizzolato
d8b6a70c54 SCP: Add support for optional -D (debig) switch when running library tests (-T) 2019-03-26 14:05:37 -07:00
Mark Pizzolato
3d13218263 SCP: Add ability to set debug display switches on the fly 2019-03-26 14:04:09 -07:00
Mark Pizzolato
b59ad75217 SCP: Properly allow all debug option switches (EBCDIC and RAD50 text) 2019-03-26 01:39:13 -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