Commit graph

398 commits

Author SHA1 Message Date
Mark Pizzolato
bacf1a7445 SCP: Use internal device SCP-PROCESS for SCP level debugging 2019-01-22 15:48:48 -08:00
Lars Brinkhoff
da256fcc28 PDP10, PDP11, Unibus VAXen: CH11 Chaosnet interface. 2018-11-22 07:50:57 +01:00
Mark Pizzolato
d372899a2f VAX: Fix spelling in message output while running diagnostic tests
As mentioned in #634
2018-10-19 14:49:39 -07:00
Mark Pizzolato
74a640d04a All VAX: Properly record clock tick acknowledgments 2018-10-08 22:33:00 -07:00
Mark Pizzolato
31c512c6e7 makefile: Avoid using PCRE REGEX support on OS X
- OS X libpcreposix segfaults when a compiled regular expression is freed.
- Revise regular expression syntax used in VAX diagnostic scripts to avoid
  Perl oriented extensions.
2018-09-30 12:37:49 -07:00
Mark Pizzolato
a274a1f208 VAX: Fix test script for the VAX simulators that don't have available diags 2018-09-28 21:09:27 -07:00
Mark Pizzolato
a56e55b8ac All VAX: fix makefile invocation of VAX diagbistuc tests 2018-09-28 15:46:50 -07:00
Mark Pizzolato
6747c7fdc2 All VAX: Extend tests to include available DEC instruction diagnostics
- Diagnostic execution happens as a normal part of the makefile build.
- Diagnostic execution can be suppressed by invoking make with TESTS=0
  on the command line
- Diagnostic execution during build is produced in summary form.
2018-09-27 22:00:38 -07:00
Mark Pizzolato
be52190067 All VAX: extend REI debugging support
Identify reserved operand fault reason details.
2018-09-27 06:41:40 -07:00
Mark Pizzolato
0ca011cd46 VAX: Parse for switches in BOOT command implementations 2018-09-27 06:35:31 -07:00
Mark Pizzolato
0fe4bf3281 VAX tests: Fix spelling error in success/fail messages 2018-09-19 22:36:48 -07:00
Mark Pizzolato
49cfac9019 VAX: Add EHKAA (aka HCORE) Harware Core Instruction test for MicroVAX 3900 2018-09-19 21:51:28 -07:00
Mark Pizzolato
1adc76a5dd All Unibus VAX: Simplify output produced by Hardware Core Instruction test 2018-09-19 19:57:55 -07:00
Mark Pizzolato
22ad3706bc All Unibus VAX: Add execution of CPU hardcore instruction test EVKAA to build 2018-09-19 14:53:35 -07:00
Mark Pizzolato
7677dad67d PDP11: Properly range check DMA access to the I/O page
Make sure that DMA access to the I/O page can only see addresses on the
Qbus/Unibus and not internal CPU registers
2018-09-06 11:03:45 -07:00
Mark Pizzolato
dc13df7b7b VAX: Set CPU model correctly on each boot
Previously the CPU model was only being set when the CPU ROM was
implicitly loaded from the internal ROM image at boot time.  Other
loading of ROM code never set the configured model correctly.
2018-08-02 11:26:43 -07:00
Mark Pizzolato
4431350bd1 VAXStations: Fix set model message text when video isn't available 2018-07-13 02:25:22 -07:00
Mark Pizzolato
cc6140fd31 I1401, VAX, PDP11: Fix nested comments consistently with Supnik-Current branch 2018-06-03 20:59:36 -07:00
Mark Pizzolato
cc7721b96e PDP11: Allow DZ devices Unibus and Qbus to have correct number of lines 2018-04-09 18:05:53 -07:00
Bob Supnik
e270da1530 GRI, PDP11, PDP8, VAX: Misc formatting and typo cleanups 2018-03-09 14:04:19 -08:00
Mark Pizzolato
a6d2e5dd4f VAX, VAX780: Properly handle maximum interval value 2018-01-12 11:28:35 -08:00
Mark Pizzolato
ee4c33ead2 VAX: Fix Interval Timers
- Properly set the Interval Register when a running timer is stopped
- Peoperly clear timer interrupt pending when CSR is updated
- Properly handle the case when the timer is started with the interval
   register is 0.
- Properly stop the running timer when it is restarted or adjusted
   with a new interval value.
- Better debug info
2018-01-07 13:46:07 -08:00
Mark Pizzolato
4a8564aa51 VAX: Add Bitfield detail to SYSD CNF and TMR CSR REGister definitions 2017-12-28 16:49:04 -08:00
Mark Pizzolato
ddb0ee2895 VAX: Add missing TCSR1 REGister declaration in SYSD device
Remove duplicate REGister declaration of TIVEC0
2017-12-22 01:49:01 -08:00
Mark Pizzolato
bdddcb4004 VAX, MicroVAX2: Add display of ROM and NVR address ranges 2017-12-18 05:10:27 -08:00
Mark Pizzolato
769efb1f68 VAX: Add -8 -16 switch support for EXAMINE commands 2017-09-03 09:20:19 -07:00
Mark Pizzolato
93c1ccdacd VAX730, VAX750, VAX8600: Fix declaration and usage of icr_rd() routine 2017-08-28 10:18:19 -07:00
Mark Pizzolato
9f7519b886 VAX: Added detail to interval timer debug output 2017-08-01 06:49:59 -07:00
Bob Supnik
a7216dbbd1 All VAX: Added model-specific AST validation test
From page 6-6 of DEC STD 032 (the VAX architecture spec):
"Execution of MTPR src, #PR$_ASTLVL with src<31:0> GEQU 5 results in
UNDEFINED behavior. The preferred implementation is to cause a reserved
operand fault." MicroVAX II, CVAX, and Rigel all conform to the preferred
behavior, as does the current simulator, which was written from the CVAX
microcode. NVAX masks to 3b and does not take an exception on a value
GEQU 5.

The 1982 Architecture Handbook describes ASTLVL as a 3b register, with
src<31:3> ignored/read as zero, and exceptions taken on values GEQU 5.
The780 microcode masks the input value to 3b before doing the GEQU 5 test.

The ASTLVL test needs to be model specific.

I suspect the behavior became undefined when MicroVAX II simplified the
original test to save a microword. I do not see how the code fragment Matt
references could work on a MicroVAX II, which was supported under 4.5.
Perhaps the device Matt mentions couldn't exist on a MicroVAX II?

For those who wants the gory details... uVAX, CVAX, and Rigel do an
unsigned compare on the unmasked src and the constant 5. Carry out
means reserved operand. Overflow is ignored. So an input of 0x80000002 -
0x00000005 (done in the data path as 0x80000002 + 0xFFFFFFFB) generates overflow (ignored) and carry out.

# Conflicts:
#	VAX/vaxmod_defs.h
2017-05-18 12:45:21 -07:00
Mark Pizzolato
47c917a55d PDP11, VAX: Fix stray TABs which crept in over time 2017-04-26 15:42:36 -07:00
Matt Burke
7092c55907 VAX750: Fixes to Unibus adapter to address #346
Modified the UBA750 simulation, incorporating these comments. Ultrix
appears to access the non-existant datapath registers and given that this
works on the real hardware the most likely option seems to be read 0
and write NOP. I think this will be true for any access to the UBI outside
of the known registers.
2017-04-26 15:36:28 -07:00
Matt Burke
f6d4e92c6d VAX8600: Marked intentional fall through of case statement CID: 1415576 2017-04-26 15:27:44 -07:00
Matt Burke
a3e6aac076 All VAXStations: Fixed logical vs bitwise operator CID: 1415454
Tested with VWS, UWS and DECwindows. This QVSS issue only affected polled
interrupt mode, which is likely not used by most operating systems
2017-04-26 15:25:55 -07:00
Matt Burke
c94edb6b2d VAXStations: Improvements and bug fixes to keyboard and mouse devices
Whilst working on a new video device I ran into a few problems with the
LKxxx keyboard and I noticed there are already some open issues against
the keyboard and mouse devices. These changes should resolve #320 and
may help with #272 (although I think that is an SDL issue). I've tested these
changes with VWS, UWS and DECwindows with both captured and
uncaptured input modes.
2017-04-23 10:40:00 -07:00
Mark Pizzolato
d42dd707e9 VAX750: Fix some 750 UBA inconsistencies 2017-04-06 18:12:44 -07:00
Bob Supnik
b9543529d2 All VAX: Fixed uninitialized variable on FPD path (COVERITY) 2017-03-31 15:02:34 -07:00
Mark Pizzolato
fa1671455e All VAX: Avoid potential invalid memory reference recording history after FPD 2017-03-30 19:22:16 -07:00
Mark Pizzolato
680ad4f239 Various VAX: Mark Coverity False Positive for boot command parsing 2017-03-30 19:20:48 -07:00
Mark Pizzolato
a9a91420b0 SCP: Properly define sim_name array to avoid potential overrun 2017-03-29 07:43:11 -07:00
Bob Supnik
3eb4598456 SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
Mark Pizzolato
6831746400 All VAX: Clarify Opcode Table decode values
the opcode table first word consists of bits:

<7> = FPD is legal for this opcode.
<4:6> = number of specifiers for unimplemented opcodes (VAX subsets)
<3> = unused
<0:2> = number of specifiers

The mask used to be 0x70. The convention is that x_M_y is a mask value
<right-justified>, for a macro like:

#define get_foo(x)        (((x) >> x_V_foo) & x_M_foo)

For a subset VAX (like the 3900), the unimplemented opcodes are those
2017-03-20 08:10:43 -07:00
Bob Supnik
976cf12d76 VAX780: Update 780 bug history to include REI to Compatibility mode 2017-03-20 07:48:25 -07:00
Mark Pizzolato
0e6a79f078 All VAX: Initialize intermediate state vars outside of the instruction loop
Many of the intermediate state variables are captured by the instruction
history mechanism.  Make sure that these don't come into and out of
scope between instruction executions.
2017-03-18 17:59:13 -07:00
Bob Supnik
f0bee7f28e VAX750: Fixed bad test for UBA intr level (COVERITY)
IPL_UBA already has the subtract built in:

So it shouldn't be extracted again.

The whole routine looks a little strange, but the way it works is
that an interrupt from the UBA itself sets <bit 31> in the returned vector.
Because the vector is read by code and not used by hardware, the flag
bit is "harmless."

UBA interrupts occur only under strange circumstances, like bad map
pages and device NXMs. Under the simulator, with a debugged OS, they
never happen.
2017-03-15 21:00:34 -07:00
Mark Pizzolato
6a40afea24 VAX750: Fix NULL reference check in boot command parsing (COVERITY) 2017-03-14 20:31:51 -07:00
Bob Supnik
430541bda9 All VAX: Fixed dangling else in show_opnd (COVERITY) 2017-03-14 04:34:36 -07:00
Bob Supnik
71479d6c0b All VAX: Fixed certain indirect cases in parse (COVERITY) 2017-03-14 04:32:50 -07:00
Bob Supnik
950fc82e38 VAX780, VAX8600: Fixed bad test for UBA intr level (COVERITY)
IPL_UBA already has the subtract built in:

So it shouldn't be extracted again.

The whole routine looks a little strange, but the way it works is
that an interrupt from the UBA itself sets <bit 31> in the returned vector.
Because the vector is read by code and not used by hardware, the flag
bit is "harmless."

UBA interrupts occur only under strange circumstances, like bad map
pages and device NXMs. Under the simulator, with a debugged OS, they
never happen.
2017-03-13 17:41:09 -07:00
Bob Supnik
6333555947 VAX: Annotated intentional fall throughs in switch statements (COVERITY) 2017-03-13 10:37:39 -07:00
Mark Pizzolato
44deef9447 VAX780: Fix potentially uninitialized variable reference (COVERITY) 2017-03-11 09:50:39 -08:00