1
0
mirror of https://github.com/simh/simh.git synced 2026-01-11 23:52:58 +00:00

540 Commits

Author SHA1 Message Date
Mark Pizzolato
fc460853ad VAXen: Cleanup processor build test message 2025-12-14 13:43:34 -10:00
Mark Pizzolato
82f07c9ab7 VAX: Use random console telnet port number during build tests
This avoids some platform cases where SO_REUSEADDR isn't always effective.
2025-12-03 19:36:23 -10:00
Mark Pizzolato
b305252bff PDP11, VAX730, VAX750: Fix TU58 device support (TDC and console TD devices)
- Cleanup TD console device attach logic
- Properly initialize the TDC devices

Fix #1220
2025-08-28 08:46:48 -10:00
Mark Pizzolato
dab8053cf8 Non Unibus and Non Qbus VAXen: Fix error message in boot ROM device support 2025-04-06 23:45:06 -10:00
Mark Pizzolato
dd82ea0851 Non Unibus and Non Qbus VAXen: Properly handle the boot ROM device support
- 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
2025-04-06 14:17:54 -10:00
Mark Pizzolato
e9a438e3aa VAX - SCSI: Remove obsolete routine declarations 2024-07-20 14:58:52 -10:00
Mark Pizzolato
50fa024c9f VAX8600: Convert Console RL02 (device CS) to use sim_disk
This now gets the DEC 144 bad block info properly stored in the last
track of the RL02 disk.
2024-07-16 12:06:01 -10:00
Mark Pizzolato
5056cd5543 VAX: Correctly process long interval timer delays and fudge TODR reads from ROM 2024-07-10 09:53:32 -10:00
Mark Pizzolato
3d373184c4 VAX tests: Avoid errors when enabling debug for non-existent devices
Leverage new "IF DEVICE <devname>" condition test
2024-07-08 09:29:45 -10:00
Mark Pizzolato
5d10f2c724 VAX: Clarify running from ROM test when reading todr_rd
This change only simplifies reading the code.  The functional results
are unchanged
2024-05-21 04:07:00 -10:00
Mark Pizzolato
fbbfe8c987 VAX build tests: Avoid error setting log when debug is disabled 2024-04-29 14:04:16 -10:00
Mark Pizzolato
f93994be0a VAXen: Correct wording in the REI comments describing the rules 2024-04-18 16:34:10 -10:00
Lars Brinkhoff
b1389741e5 VAX: Add UW device to 8600 and 8200.
The VAXstation 100 "unibus window" interface board should work with
any Unibus VAX.
2024-04-04 17:34:38 -10:00
Mark Pizzolato
464e1f9ef4 Unibus VAXen: Run working diagnostic supervisor Privileged Architecture tests
- 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.
2024-04-04 10:19:03 -10:00
Mark Pizzolato
c6de567cf6 All VAXen: Add -O option to SET HISTORY logging to file
- 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.
2024-04-04 10:10:47 -10:00
Mark Pizzolato
fca6bace44 SCP: Add asynchronous and processed event counters
- Add abort if sim_aio_activate is called when running with ASYNC disabled
2024-01-09 06:07:33 -10:00
Mark Pizzolato
4dfb3508bf ETHER: Make sure SET NOASYNC is effective for Ethernet devices
- 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.
2024-01-06 14:55:06 -10:00
Mark Pizzolato
6d376b2fd9 ALL simulators with instruction history support: Minor history enhancements
- Issue reasonable error message explaining invalid SET CPU HISTORY=n input
- Let SIGINT (^C) abort SHOW HISTORY output
2023-12-04 10:57:31 -10:00
Mark Pizzolato
2c0b465275 VAX: Explain idling sim_interval decrement
- Explain reasoning for idle decrement
- Fix TODR debug output for all simulators with a TODR register
2023-11-16 11:33:52 -10:00
Mark Pizzolato
9b0413045a DISK: Provide disk Geometry (Cylinders, Heads, Sectors) for all disk types
- 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
2023-09-09 13:02:45 -10:00
Mark Pizzolato
9cdfb0cae3 MicroVAX I: Cleanup magic boot support for both MicroVMS and VAX/VMS 2023-07-09 21:45:38 -10:00
Mark Pizzolato
6491cf0371 BuildROMs: Make sure that multiple ROM includes are each numbered _n
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.
2023-07-02 10:52:34 -10:00
Mark Pizzolato
dd406478e4 MicroVAX I: Properly boot all VMS versions with differently located SYSBOOT
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
2023-06-27 13:53:39 -10:00
Mark Pizzolato
a7c789caec All VAXen: Properly set the interrupt latency based on the TODR updates
The interval timer is not a calibrated clock and thus should not be the
basis for reasonably expected instruction execution rate computations.
2023-06-27 13:01:18 -10:00
Mark Pizzolato
07ea607e79 VAX: Enrich test script to report useful state 2023-06-27 11:49:54 -10:00
Mark Pizzolato
dfbd099677 BUILDROMS: Reorganize defines so multiple ROM includes have consistent names 2023-06-17 18:25:51 -10:00
Mark Pizzolato
6e7cf79eb3 VAX750, VAX780, VAX8600: Add Extra Massbus for New RPB disks 2023-05-22 11:03:39 -10:00
Peter Allan
ef0f49204e VAX780: Add an additional Massbus to support RPB 2023-05-22 10:37:26 -10:00
Lars Brinkhoff
d573965024 VAX: M7452 Unibus window module for VAXstation 100. 2023-05-09 07:07:39 -10:00
Mark Pizzolato
bc5dcedf1d MicroVAX1: Remove DMA devices which weren't supported on MicroVAX I
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.
2023-04-30 14:54:04 -10:00
Mark Pizzolato
ed5e47ab73 ETHER: Enhance version info and location of Npcap 2023-04-26 10:00:46 -10:00
Mark Pizzolato
ede493ac41 VAXen with ROM boots: Fix missing boot file names 2023-04-09 12:30:59 -10:00
Mark Pizzolato
c540d2e3b1 Various VAXen: Correct HELP ROM language and assure proper ROM load
- Support for built-in ROMs and dynamically loaded or fetched ROMs
  is supported
- Dynamic loading or fetching of VCB02 ROM support added.
2023-04-09 11:02:07 -10:00
Mark Pizzolato
1316482535 VAX simulators: Add explicit void to vax_init declaration 2023-04-06 12:30:21 -10:00
Mark Pizzolato
5d779942d9 VAXen without console ROMs: Issue meaningful messages for bad boot arguments 2023-02-09 15:16:13 -10:00
Mark Pizzolato
dc792c2731 VAXen with console ROMs: Issue meaningful message for invalid boot command args 2023-02-06 00:02:35 -10:00
Mark Pizzolato
9cc538dc7c VAX Unibus Systems: Optionally run diagnostics with uncalibrated clock
- 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.
2023-01-31 02:47:31 -10:00
Mark Pizzolato
c1dd65a5bf VAX simulators: Revise build test diagnostics
- 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.
2022-12-19 12:26:47 -10:00
Paul Koning
b6f3043ecb PDP9 VAX SEL32: Adjust test limits
Adjust the instruction limits for three simulators so they pass
on Apple M1 systems.
2022-11-28 09:43:56 -05:00
Mark Pizzolato
f48f0de9a5 simulator tests: Fix test setup to tolerate very busy or slow host systems
Adjust the RUNLIMIT to specify instructions instead of wall clock time.
2022-11-12 15:34:24 -10:00
Mark Pizzolato
4be421e08f BUILDROMS: Fix potential compiler warnings and prep for URL ROM downloads 2022-11-11 13:31:31 -10:00
Mark Pizzolato
0de0359ad0 PDP11 and All VAXen: Support dynamic fetching of ROM or other boot code
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.
2022-10-19 15:06:55 -10:00
Mark Pizzolato
827ef03aeb BuildROMs: Move ROM exclusion logic into ROM include files
- 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.
2022-10-19 13:14:49 -10:00
Mark Pizzolato
ff88c97ccd Unibus VAXen: Fix broken clock calibration sequencing
Clock units should only be scheduled after a calibration activity.
2022-07-30 11:20:01 -10:00
Mark Pizzolato
fd5fdcfaa6 PDP11 and VAXen: Remove unneeded management of NOAUTOSIZE from device code 2022-07-28 14:48:44 -07:00
Mark Pizzolato
0e79fbcc70 All simulator DEVICES using VIDEO: Set DEV_DISPLAY in the DEVICE flags 2022-07-24 11:37:39 -10:00
Mark Pizzolato
9285073024 VAXen: Completely reset TODR on every power-on 2022-07-16 18:32:57 -10:00
Mark Pizzolato
4bf39c63ea All VAXen: Do a powerup reset when changing CPU model
Any change that enables or disables devices should perform a powerup
reset to properly configure bus address/vector activity.
2022-07-15 09:08:42 -10:00
Mark Pizzolato
505b5fde78 PDP11 and VAXen: Add supported breakpoint type to help information 2022-07-11 23:57:22 -07:00
Mark Pizzolato
a28da088be Interdata, SAGE, various VAXen: Fix devices with duplicate/ambiguous register names
Discovered by recent extension of register sanity check logic
2022-07-07 08:12:10 -10:00