simh-testsetgenerator/VAX
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
..
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_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_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_patch.com Notes For V3.8 2011-04-15 08:35:43 -07:00
ka655x.bin Notes For V3.8 2011-04-15 08:35:43 -07:00
ka655x.bin_old Notes For V3.8 2011-04-15 08:35:43 -07: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: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax610_defs.h VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax610_io.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax610_mem.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax610_stddev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax610_sysdev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax610_syslist.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax630_defs.h VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax630_io.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax630_stddev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax630_sysdev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax630_syslist.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax730_defs.h VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax730_mem.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax730_rb.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax730_stddev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax730_sys.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax730_syslist.c VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax730_uba.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax750_cmi.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax750_defs.h VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax750_mem.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax750_stddev.c PDP8, VAX750: Fix compiler detected errors in REG initializers 2016-03-18 15:43:30 -07:00
vax750_syslist.c VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax750_uba.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax780_bug_history.txt Documentation update from Bob Supnik 2014-06-11 16:39:40 -07:00
vax780_defs.h VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax780_fload.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax780_mem.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax780_sbi.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax780_stddev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax780_syslist.c VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax780_uba.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax860_abus.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax860_defs.h VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax860_sbia.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax860_stddev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax860_syslist.c VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-27 12:28:02 -07:00
vax_2681.c VAX: add support for input and output ports to 2681 DUART 2015-10-27 21:56:21 +03:00
vax_2681.h VAX: add support for input and output ports to 2681 DUART 2015-10-27 21:56:21 +03:00
vax_cis.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_cmode.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_cpu.c VAX: Add explanation to reason for stopping due to invalid PSL value 2016-04-05 06:44:30 -07:00
vax_cpu1.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_defs.h VAX: Fix external type definition for BadCmPSL 2016-04-02 07:29:57 -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 VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08: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 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_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 VAX QVSS: Add device descriptions to the Keyboard (LK) and Mouse (VS) devices. 2015-12-01 07:46:28 -08: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 VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_octa.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_stddev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_sys.c VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-25 04:01:44 -07:00
vax_syscm.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_sysdev.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_syslist.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_vc.c VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08:00
vax_vmb_exe.h Updated vmb_exe include file 2013-03-24 16:47:25 -07:00
vax_vs.c VAX QVSS: Add device descriptions to the Keyboard (LK) and Mouse (VS) devices. 2015-12-01 07:46:28 -08:00
vax_watch.c PDP10, PDP11, VAX: const cleanup 2015-02-13 06:18:24 -08:00
vaxmod_defs.h VAX: Move CPU register and routine declarations into vax_defs.h 2016-02-29 16:37:18 -08: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