Commit graph

452 commits

Author SHA1 Message Date
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
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
027c1de446 Unibus VAXen: Clock Coschedule interval timers when intervals are 10ms
Record 10ms tick acknowledgements
2020-01-10 08:19:27 -08:00
Mark Pizzolato
f1f4385984 All VAXen: Add a 2 minute execution limit to diagnostic tests 2020-01-09 23:54:53 -08:00
Mark Pizzolato
f9e4e9efba Unibus VAXen: Avoid trying to make interval timers calibrated clocks
Programmatic interval timers are not proper candidates for calibrated
clocks since the interval values can change arbitrarily under program
control and then interfer with attempts at proper calibration.
2020-01-09 23:37:06 -08:00
Mark Pizzolato
76e6111dd4 VAX: Avoid Windows Firewall prompt when running tests during build
This procedure establishes a telnet listen port solely so that the console
output traffic can be buffered (and not emitted).  Since nothing will ever
connect to this port we bound it to the localhost address so that firewall
prompts aren't generated when building in a new directory.
2019-12-21 06:51:41 -08:00
Mark Pizzolato
a06fa9264f VAX: Correct the order of parameter names in vax_fdiv() declaration
As described in #771
2019-11-20 09:40:34 -08:00
Mark Pizzolato
08714aff2b Newer MicroVAX and VAXStations: Fix Coverity warning in RD device 2019-10-21 01:20:04 -07:00
Mark Pizzolato
d8e9915b78 VAXStation3100M76: Move debug statement within loop to precisely display info
Coverity identified an out of loop reference to the loop control variable
that wasn't correct.
2019-10-20 23:56:10 -07:00
Mark Pizzolato
3d09cd2d7f Newer MicroVAX and VAXStations: Avoid error path memory leak
Initialize Coverity flagged uninitialized variable references.  Most/all
of these might never have actually occurred with reasonable
packet buffer descripter lists, but zero initialized values will never
hurt.
2019-10-20 23:05:27 -07:00
Mark Pizzolato
0ca1fe4e40 Newer MicroVAX and VAXStations: Rate limit DZ device character output 2019-10-20 23:01:45 -07:00
Mark Pizzolato
281837c68a PDP11, PDP8, VAX8200: Fix Coverity flagged warnings 2019-10-20 22:57:02 -07:00
Mark Pizzolato
7b5dc834fd MicroVAX2: Add IDLE support for Console ROM and Diagnostic Monitor 2019-07-17 09:00:24 -07:00
Mark Pizzolato
0195bbda4b TIMER: Fix missing catchup ticks for VAX simulators when idling
- MicroVAX I, II and 3900 don't have a DONE bit in the clock status
  register, so sim_rtcn_tick_ack() wasn't being called to acknowledge
  clock ticks.
- Timer catchup tick criteria didn't work unless the host had a slow
  clock tick.

As discussed in #705
2019-05-30 01:51:52 -07:00
Mark Pizzolato
f75f28aa21 TIMER: Add mechanism to pre-calibrate the instruction execution rate 2019-05-28 23:56:58 -07:00
Matt Burke
42271bd410 VAX8200: Extended tests (EVKAB, EVKAC) now passing 2019-05-17 00:43:39 +01:00
Matt Burke
63a39369dc VAX8200: Hardware core test (EVKAA) now passing 2019-05-16 22:15:53 +01:00
Matt Burke
650cfd4864 VAX420: Added ROM patch to correct boot problem on MicroVAX 3100 M10/M20 2019-05-16 22:15:53 +01:00
Matt Burke
0dff31427f VAX420, VAX43: Corrections to configuration & test register
Video devices now working on VAXstation 3100 M76
2019-05-16 22:15:53 +01:00
Matt Burke
b16841218c GPX: Fixed coverity complaints 2019-05-16 22:15:53 +01:00
Mark Pizzolato
94f5034712 VAX, MicroVAX I & II: Revamped Qbus memory access as Qbus peripheral 2019-05-12 21:52:06 -07:00
Mark Pizzolato
f88c1b8b2a VAX: Add build time diag execution for many new simulators 2019-05-07 12:03:49 -07:00
Mark Pizzolato
efaca56da4 New VAXen: Add missing REG list terminator in XS (Lance Ethernet) controller 2019-05-07 11:31:03 -07:00
Mark Pizzolato
758bfb7853 All VAX: Fix Coverity identified issues 2019-05-02 22:20:20 -07:00
Mark Pizzolato
6c7da6c68b Chip Based VAXes: Fix CIS and EMULATED instruction implemented test 2019-05-01 04:55:36 -07:00
Mark Pizzolato
6ae9b8025a Full VAX Simulators: Fix inverted instruction set test 2019-05-01 04:20:51 -07:00
Matt Burke
4aa4f639e6 VAX8200: Added missing error bit to DWBUA CSR
As reported in #690
2019-05-01 09:00:40 +01:00
Mark Pizzolato
95c24b4f81 MicroVAX I: Make SID register reflect D-FLOAT or G-FLOAT instruction set
- Limit choices to explicitly either G-FLOAT or D-FLOAT for SET CPU INST=
- Compile in all instruction implementations and dynamically use the
  enabled ones.
2019-04-30 17:39:56 -07:00
Mark Pizzolato
621e97e170 MicroVAX1, all VAX: Add model specific instruction execution and emulation
- Different VAX models had different groups of instructions which were
  implemented in hardware vs trappng to the OS for emulation.  Functionality
  has been added to differentiate the various mix of instruction groups for
  different models and to display both the groups and the actual instructions.
- Visibility to Instruction groups is provided by SHOW CPU INSTRUCTIONS
  and the list of the active instructions implemented and emulated via
  SHOW CPU -V INSTRUCTIONS.
- The MicroVAX I CPU handled some execution fault conditions differently
  from other VAX systems these differences are now specifically handled.
- Add build time test support to MicroVAX I running EHKAA v1.13
  suggested in #683
- Add more CPU debug details relating to exception and interrupt processing
2019-04-30 14:28:37 -07:00
Matt Burke
5e540cea98 VAX440: Fixed memory sizing and DMA address mapping
Fixes #687
2019-04-30 01:42:20 +01:00
Matt Burke
63d2eccd64 VAX440, IS1000: Removed duplicate entry for RRW11 in RZ modifiers table 2019-04-30 01:42:20 +01:00
Matt Burke
0cc6f85937 VAX410, VAX420, VAX43: Further naming corrections to simulators 2019-04-30 01:42:20 +01:00
Matt Burke
1d133bfc8e VAX420: Fix for LANCE when system memory > 16MB
Fixes #689
2019-04-29 00:26:49 +01:00
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
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