simh-testsetgenerator/VAX
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
..
ka610.bin Addition of MicroVAX I (VAX610) processor simulator from Matt Burke 2012-10-25 11:58:10 -07:00
ka620.bin Addition of MicroVAX II (VAX630) and rtVAX 1000 (or Industrial VAX 620) processor simulators from Matt Burke 2012-11-09 12:18:15 -08:00
ka620_orig.bin MicroVAX I, MicroVAX II: Add missing original ROM images 2017-01-09 14:16:55 -08:00
ka620_patch.com Addition of MicroVAX II (VAX630) and rtVAX 1000 (or Industrial VAX 620) processor simulators from Matt Burke 2012-11-09 12:18:15 -08:00
ka630.bin Addition of MicroVAX II (VAX630) and rtVAX 1000 (or Industrial VAX 620) processor simulators from Matt Burke 2012-11-09 12:18:15 -08:00
ka630_orig.bin MicroVAX I, MicroVAX II: Add missing original ROM images 2017-01-09 14:16:55 -08:00
ka630_patch.com Addition of MicroVAX II (VAX630) and rtVAX 1000 (or Industrial VAX 620) processor simulators from Matt Burke 2012-11-09 12:18:15 -08:00
ka655_orig.bin VAX: Re-enable the boot ROM interval timer diagnostic tests 2017-01-02 14:03:39 -08:00
ka655_patch.com VAX: Re-enable the boot ROM interval timer diagnostic tests 2017-01-02 14:03:39 -08:00
ka655x.bin VAX: Re-enable the boot ROM interval timer diagnostic tests 2017-01-02 14:03:39 -08:00
ka750_new.bin VAX750: Added VAX. 11.750 Boot ROM booting options 2015-09-10 21:42:16 -07:00
ka750_old.bin VAX750: Added VAX. 11.750 Boot ROM booting options 2015-09-10 21:42:16 -07:00
vax7x0_mba.c VAX: Fix help text for MBA devices to describe their device relationships 2017-02-10 11:23:29 -08:00
vax610_defs.h All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
vax610_io.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax610_mem.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax610_stddev.c SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
vax610_sysdev.c Various VAX: Mark Coverity False Positive for boot command parsing 2017-03-30 19:20:48 -07:00
vax610_syslist.c SCP: Properly define sim_name array to avoid potential overrun 2017-03-29 07:43:11 -07:00
vax630_defs.h All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
vax630_io.c MicroVAX2: Properly limit Qbus Map Register Access (COVERITY) 2017-03-10 11:55:29 -08:00
vax630_stddev.c SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
vax630_sysdev.c VAX, MicroVAX2: Update ROM memory access to use common code 2017-01-05 05:53:00 -08:00
vax630_syslist.c SCP: Properly define sim_name array to avoid potential overrun 2017-03-29 07:43:11 -07:00
vax730_defs.h All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
vax730_mem.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax730_rb.c VAX730: Add missing value in DIB structure for proper auto-configure behavior 2016-06-21 05:24:51 -07:00
vax730_stddev.c SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
vax730_sys.c Various VAX: Mark Coverity False Positive for boot command parsing 2017-03-30 19:20:48 -07:00
vax730_syslist.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax730_uba.c PDP11, PDP10, all VAX: General extern cleanup. 2017-02-04 19:37:20 -08:00
vax750_cmi.c Various VAX: Mark Coverity False Positive for boot command parsing 2017-03-30 19:20:48 -07:00
vax750_defs.h All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
vax750_mem.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax750_stddev.c SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
vax750_syslist.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax750_uba.c VAX750: Fixes to Unibus adapter to address #346 2017-04-26 15:36:28 -07:00
vax780_bug_history.txt VAX780: Update 780 bug history to include REI to Compatibility mode 2017-03-20 07:48:25 -07:00
vax780_defs.h All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
vax780_fload.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax780_mem.c VAX780: Fix potentially uninitialized variable reference (COVERITY) 2017-03-11 09:50:39 -08:00
vax780_sbi.c Various VAX: Mark Coverity False Positive for boot command parsing 2017-03-30 19:20:48 -07:00
vax780_stddev.c SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
vax780_syslist.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax780_uba.c VAX780, VAX8600: Fixed bad test for UBA intr level (COVERITY) 2017-03-13 17:41:09 -07:00
vax860_abus.c Various VAX: Mark Coverity False Positive for boot command parsing 2017-03-30 19:20:48 -07:00
vax860_defs.h All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
vax860_sbia.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax860_stddev.c VAX8600: Marked intentional fall through of case statement CID: 1415576 2017-04-26 15:27:44 -07:00
vax860_syslist.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax_2681.c PDP11, VAX: Fix stray TABs which crept in over time 2017-04-26 15:42:36 -07:00
vax_2681.h VAX: 2681 UART: implement ACR and IPR 2016-05-15 15:44:15 -07:00
vax_cis.c VAX: Fixed WordLshift (ASHP left overflow calc) 2016-05-30 14:43:35 -07:00
vax_cmode.c All VAX: Fix REI check when compatibilty mode. From Bob Supnik 2016-07-14 11:45:32 -07:00
vax_cpu.c All VAX: Fixed uninitialized variable on FPD path (COVERITY) 2017-03-31 15:02:34 -07:00
vax_cpu1.c All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
vax_defs.h All VAX: Clarify Opcode Table decode values 2017-03-20 08:10:43 -07:00
vax_fpa.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_io.c ALL: Massive 'const' cleanup 2016-05-15 15:25:33 -07:00
vax_ka610_bin.h Addition of MicroVAX II (VAX630) and rtVAX 1000 (or Industrial VAX 620) processor simulators from Matt Burke 2012-11-09 12:18:15 -08:00
vax_ka620_bin.h Addition of MicroVAX II (VAX630) and rtVAX 1000 (or Industrial VAX 620) processor simulators from Matt Burke 2012-11-09 12:18:15 -08:00
vax_ka630_bin.h Addition of MicroVAX II (VAX630) and rtVAX 1000 (or Industrial VAX 620) processor simulators from Matt Burke 2012-11-09 12:18:15 -08:00
vax_ka655x_bin.h VAX: Re-enable the boot ROM interval timer diagnostic tests 2017-01-02 14:03:39 -08:00
vax_ka750_bin_new.h VAX750: Added VAX. 11.750 Boot ROM booting options 2015-09-10 21:42:16 -07:00
vax_ka750_bin_old.h VAX750: Added VAX. 11.750 Boot ROM booting options 2015-09-10 21:42:16 -07:00
vax_lk.c VAXStations: Improvements and bug fixes to keyboard and mouse devices 2017-04-23 10:40:00 -07:00
vax_lk.h VAXStations: Improvements and bug fixes to keyboard and mouse devices 2017-04-23 10:40:00 -07:00
vax_mmu.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_mmu.h PDP11, PDP10, all VAX: General extern cleanup. 2017-02-04 19:37:20 -08:00
vax_octa.c VAX: Add octaword result information to instruction history 2016-05-28 06:03:21 -07:00
vax_stddev.c SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
vax_sys.c All VAX: Fixed certain indirect cases in parse (COVERITY) 2017-03-14 04:32:50 -07:00
vax_syscm.c SCP: Migrate all stdio writes to pass through SCP provided Fprintf() 2017-01-14 20:48:09 -08:00
vax_sysdev.c VAX, MicroVAX2: Update ROM memory access to use common code 2017-01-05 05:53:00 -08:00
vax_syslist.c SCP: Properly define sim_name array to avoid potential overrun 2017-03-29 07:43:11 -07:00
vax_vc.c All VAXStations: Fixed logical vs bitwise operator CID: 1415454 2017-04-26 15:25:55 -07:00
vax_vmb_exe.h Updated vmb_exe include file 2013-03-24 16:47:25 -07:00
vax_vs.c VAXStations: Improvements and bug fixes to keyboard and mouse devices 2017-04-23 10:40:00 -07:00
vax_vs.h VAXStations: Improvements and bug fixes to keyboard and mouse devices 2017-04-23 10:40:00 -07:00
vax_watch.c TIMER: Add support for catchup clock ticks and cleaned up asynchronous clocks 2016-11-16 23:50:53 -08:00
vaxmod_defs.h All VAX: Added model-specific AST validation test 2017-05-18 12:45:21 -07:00
VMB-exe-Patch.com Patched VMB.EXE to support boot block booting with the same logic that all of the ROM based VMB systems (MicroVAX I onward) handle interpreting the boot block. Many alternate operating system installation media assumes that all VAX boot logic works this way. 2013-03-24 12:37:35 -07:00
vmb.exe Patched VMB.EXE to support boot block booting with the same logic that all of the ROM based VMB systems (MicroVAX I onward) handle interpreting the boot block. Many alternate operating system installation media assumes that all VAX boot logic works this way. 2013-03-24 12:37:35 -07:00