- Previously the Option ROM device (OR) logic improperly used the UNIT
UNIT_ATT flag to indicate a devices with Option ROM support. This
bit has specific meaning to many SCP capabilities while there are
numerous device specific fields in the UNIT structure which DEVICEs
can use as needed.
- Enhance SCP SHOW output for Option ROM units to indicate the DEVICE
which each enabled ROM is related to.
Fixes#1210
- The VAX 11/780 runs the VAX Diagnostic Supervisor the EVKAE (Privilege
Architecture Exercisor) tests cleanly.
All other Unibus VAXen execute different instructions in EVKAE
Test 8 (KERNEL STACK NOT VALID) subtest 2 when compared to the 11/780.
On these processors a REI instruction with reserved operands is invoked and
this causes a failure of this subtest for these processors.
We avoid this diagnostic test that fails.
- The VAX 8200 has some issues with the VAX Diagnostic Supervisor.
Specifically, the EVKAA (Hardware Core Instruction) test uses the processor
interval timer to measure the passage of time and expects the interrupts
that are generated to occur at IPL 24 (0x18). Meanwhile, the actual
hardware is documented to generate Interval Timer interrupts at
IPL 22 (0x16). EVKAA fails when interrupts occur at IPL 22(0x16).
If the processor is is built with Interval Timer interrupts at IPL 24(0x18),
then EVKAA passes, but the EVKAE (Privileged Architecture Exercisor)
Interval Timer test fails since the interval timer interrupts occur at
IPL 24(0x18) and not at IPL 22(0x16).
Once operating systems are running, operating system behavior will
generally be unaffected if Interval Timer interrupts occur at a higher
IPL than the OS expects, so the VAX 8200 is built that way and we avoid
the diagnostic that fails.
- The DEC supplied instruction diagnostics actually time the execution of
instructions being tested using the interval timer and the time of day
clock. When instructions take too long, they fail the test. The
VAX 11/730 simulator actually fails some of these instruction tests when
run at precisely .3 the instruction rate of the VAX/11 780. We therefore
adjust the nocalibrate execution rate to 320K vs the VAX 11/780 running
at 1000K.
- Extend maximum instruction history to 2 million
- -O option in history logging to a file allows only capturing at most
the last n instructions written to a log file. Otherwise, the
default is to log all executed instructions to the log file which will
consume prodigious amounts of storage.
- Make sure that asynchronous mode can't be changed if devices using
sim_ether are already attached.
- Add missing DEV_ETHER type flag for the only sim_ether using device
that didn't already have it.
- Display Media-ID and Geometry info for all SHOW <unit> output when attached
- Use real drive Geometry info for all disk types
- Fix RA80 cylinders copied from RM80
- Fix RZ23 cylinders to reflect disk size
- Return correct cylinder info on MSCP error path
The first ROM included will be defined with names:
BOOT_CODE_SIZE
BOOT_CODE_CHECKSUM
BOOT_CODE_FILENAME
BOOT_CODE_FILEPATH
BOOT_CODE_ARRAY
and BOOT_CODE_URL
That first ROM will also have names:
BOOT_CODE_SIZE_1
BOOT_CODE_CHECKSUM_1
BOOT_CODE_FILENAME_1
BOOT_CODE_FILEPATH_1
BOOT_CODE_ARRAY_1
and BOOT_CODE_URL_1
Subsequent included ROM's will have names
BOOT_CODE_SIZE_n
BOOT_CODE_CHECKSUM_n
BOOT_CODE_FILENAME_n
BOOT_CODE_FILEPATH_n
BOOT_CODE_ARRAY_n
and BOOT_CODE_URL_n
where n is 2 thru the max number of supported ROM includes.
Different versions of VMS on different VAX systems default to different
locations for the secondary bootstrap program SYSBOOT.EXE. Some
have it at [SYSEXE]SYSBOOT.EXE and others have it at
[SYS0.SYSEXE]SYSBOOT.EXE.
Digital sold different MicroVAX I and VAXStation I systems with different
boot ROMs that defaulted to look in one of these locations but not
consistently across systems that were sold.
This change uses the existing KA610 ROM image (that supports both
MicroVAX I and VAXStation I systems) and defaults to look for the
secondary bootstrap in [SYSEXE]SYSBOOT.EXE. If the boot attempt
fails, on the currently connected disk, it retries looking for the
secondary bootstrap in [SYS0.SYSEXE]SYSBOOT.EXE.
This retry process does not work on the VAXStation I. In order to boot
from disks which have SYSBOOT.EXE located in [SYS0.SYSEXE] you can
execute
sim> BOOT /R5=100
and when you are prompted in the video screen with:
Bootfile:
merely enter:
Bootfile:[SYS0.SYSEXE]SYSBOOT.EXE
Removed TQ (TMSCP), TS (TSV11) and VH (DHV11) devices from this
simulator since these devices were never supported in release MicroVAX I
configurations.
Lacking a scatter/gather map, DMA devices needed to be written to
perform DMA into contigous buffers in low memory and then copy data
to user space buffers. The MSCP protocol devices had specific support to
do scatter/gather transfers as part of the protocol. The RL01/RL02 device
driver was modified to perform the appropriate buffer moves most likely
to prove the customer option to adjust their drivers actually worked. In
any case, boot support for RL01/RL02 disks does not exist.
- uncalibrated clock mode executes at a precisely specified instruction
rate relative to pseudo wall clock time independent of the host
computer's speed or other loads on the host system.
- Provide additional failure state if/when diagnostics fail.
- Run Floating Instruction diagnostics for 2 passes - these have
been observed to fail on the VAX730
- Increase allowed run limit
- When diagnostics fail, emit the diagnostic session output if
diagnostics were not being run in verbose mode.
Simulators built with DONT_USE_INTERNAL_ROM defined will not have hte
binary of the needed ROM or boot components build into the simulator
binaries. However, they will automatically and transparently fetch the
neeeded ROM or boot code from the web when these binary files aren't
available locally.
- Plan is to avoid "#ifdef DONT_USE_INTERNAL_ROM" in simulator code
and handle builtin or external files in SCP facilities
- Export ROM checksum value and source file path to allow for transparent
dynamic ROM location at run time.