1
0
mirror of https://github.com/simh/simh.git synced 2026-01-13 15:27:14 +00:00

667 Commits

Author SHA1 Message Date
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
69a92622be PDP11: Properly validate the number of VH lines after a bus type change
If the number of lines on a Qbus system has previously been changed
to an odd multiple of and then the bus type changed to Unibus, we
to change the number of lines to a multiple of 16 for the DHU.
2022-07-19 05:18:37 -10:00
Mark Pizzolato
bc98e1c609 SCP: Be sure to flush output files when aborting.
Emit a last gasp message prior to flushing files before aborting.
2022-07-17 13:01:25 -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
8612ec38ae PDP11, VAXen: Avoid potential for incorrect unit names on VH device 2022-07-06 06:52:47 -10:00
Mark Pizzolato
580cc8f176 PDP11: Add help description for DLI LINES and DISCONNECT 2022-06-29 07:42:34 -10:00
Mark Pizzolato
38b3aff4ca PDP11 & Unibus VAXen: Properly size RY Drives and no DEC144 2022-06-19 19:21:13 -07:00
Mark Pizzolato
ec117739b7 PDP11, Unibus & Qbus VAXen: Properly set RQ device unit names in extended units 2022-06-19 19:15:32 -07:00
Bob Supnik
d35f4d9695 All LP and CD devices: Removed use of ftell for pipe compatibility
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
Bob Supnik
1182157a4d All Tape DEVICES: Added extra case points for new MTSE definitions
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
Mark Pizzolato
12e51eafaf PDP11, PDP10, 3B2, All VAXen: Leverage extended disk support for all disks
Disk container metadata is fully supported and, when possible, containers
can be moved between "reasonable" alternate DEVICEs and systems.
2022-06-15 15:51:19 -07:00
Mark Pizzolato
a9ce7b3b11 PDP11 and VAXen: Fix transfer buffer unintended deallocation on RQ detach
As reported in https://github.com/open-simh/simh/issues/12
2022-06-15 15:51:19 -07:00
Mark Pizzolato
31e7a7f3e0 PDP11 & Unibus/Qbus VAXen: Detect devices missing addresses before boot
If autoconfigure is disabled, either explicitly or implicitly by manual
setting of an ADDRESS or VECTOR, detect devices which don't have
addresses before boot.
2022-06-15 15:51:18 -07:00
Mark Pizzolato
d6ebe32b30 PDP11 & Unibus/Qbus VAXen: Document autoconfigure disabling
Historically, if a configuration file explicitly set either a DEVICE's
ADDRESS or VECTOR, autoconfiguration was immediately disabled.

This change defers disabling autoconfigure until an explicitly setting
of a DEVICE address or VECTOR actually changes what had been previously
configured by autoconfigure.
2022-06-15 15:51:18 -07:00
Trevor Warwick
4e60e4a367 QBus VAX and PDP11: Add support for DPV11 in DDCMP mode
This commit extends the existing DUP11 support to add simulation for a DPV11 in DDCMP mode.

It has been tested with DECnet-VAX Phase V, which has the only host driver I know of. Note
that you may see a few CRC errors logged with high traffic levels, these are due to a couple of
bugs in the VMS driver, for which I'm looking at developing a patch.

Regression testing has been done on the DUP11 on VMS, RSX and TOPS20, which all seemed to work
as well as previously.
2022-06-14 18:32:12 +01:00
Trevor Warwick
3279577eb8 PDP11 & Unibus VAX, PDP10: Fix DUP device support for use by internal KMC for TOPS-20
This fixes a regression caused by commit 9fc72786a
2022-06-07 12:27:12 -07:00
Trevor Warwick
5e59c6049f PDP11, Qbus & Unibus VAX: Fix DUP device loopback on device reset
- When the DUP TXCSR DEVICE_RESET bit is set, which clears the MAISEL bits, any
existing tmxr loopback must also be removed.
2022-05-18 16:38:10 +01:00
Trevor Warwick
9fc72786a6 PDP11, Qbus & Unibus VAX: Extend DUP device for DECnet Phase V support
- This involves adding some trailing characters to received DDCMP frames
  to meet host driver expectations (simulation then behaves more like a
  real synchronous device). 1 SYN is enough for VMS, but RSX needs a few
  when there is no abutting frame.
- The VMS driver implements the CRC performance option in section 5.1.2
  of the DDCMP spec., and thus relies on receiving a valid character after
  the CRC on a received frame.
2022-05-16 18:18:26 +01:00
Mark Pizzolato
61877a5c77 PDP11, VAX: Add RF73 and RF35 disk type to RQ, correct various model numbers 2022-03-22 21:25:16 -07:00
Mark Pizzolato
50f80f61cf PDP11: Only compute vector ilvl when it will be used (Coverity) 2022-03-16 14:44:20 -07:00
Mark Pizzolato
d03f1b67a2 PDP11: Only compute vector ibit when it will be used (Coverity) 2022-03-15 08:19:25 -07:00
Mark Pizzolato
8c325db1ab Various Magtape Devices: Handle Coverity report of tape error status cases
Coverity flagged one magtape simulator for having fewer case breakouts
than the range of MTSE_x errors, after they were expanded for
MTSE_LEOT (listed as "V4 compatibility") and MTSE_RUNAWAY (for
Dave Bryan's implementation of erase and erase gap).

According to Dave, it turns out that MTSE_RUNAWAY can only be
returned if the magtape simulator supports and implements a density
specification and the ERASE function. The simulators Bob Supnik wrote
don't meet that criteria, so the expanded errors can't be returned.

Simply add a "default" case to the map logic returning SCPE_IERR for
unexpected cases.
2022-03-13 11:23:11 -07:00
Mark Pizzolato
5465707d77 PDP11, VAX: Fix Coverity issues in XQ and XU devices 2022-03-11 12:34:59 -08:00
Mark Pizzolato
93e86f31f0 PDP11: Fix Coverity identified issue in HELP CPU 2022-03-10 17:07:11 -08:00
Mark Pizzolato
16042a7b96 PDP11, VAX: Add RF30, RF31, RF71 and RF72 disk types to the RQ simulation
These are added based on simple drive geometry and size information
without any parameters for bad block management (not used in simulation
anyway).
Additionally, RF drives connected to Qbus systems via a KFQSA.  When
connected this way, EACH drive on the DSSI bus appeared to the attached
Qbus system as a separate MSCP controller to the operating system.  This
change does not model that connectivity.
2022-03-06 09:39:26 -08:00
Mark Pizzolato
2fb741046d PDP11 & VAX: Avoid RQ DEVICE uname memory leaks
Additional UNITs from 4 up to 254 are replicated from Unit 0.
If the UNIT->uname has already been populated, we could leak memory if
it isn't released before copying from the template UNIT.
2022-03-04 18:28:30 -08:00
Mark Pizzolato
413501a1dd PDP11: Migrate RC device to use sim_disk meta data and file system detection 2022-02-13 23:05:43 -08:00
Mark Pizzolato
49b6e52d48 PDP11, VAX scsi systems: Migrate DEV_DISK devices using common autosize code 2022-02-11 15:26:21 -08:00
Mark Pizzolato
1196827c2d PDP11: Default RK device attach to autosize 2022-02-11 02:17:16 -08:00
Mark Pizzolato
5015d6ae14 DISK: Cleanup attach behaviors add better support for containers with meta data
At this time:
- The ZAP command exists to remove meta data from containers that
   have it.  Container files processed by the ZAP command will generally
   be restored to the size it was before the addition of the meta data
   and the file time stamps will be unchanged.
- Newly created containers get meta data.
- At attach time, containers that don't have meta data, but have
   recognized file systems that fit within the drive it is being
   attached to get meta data added without changing the file timestamps.
- Containers that don't have meta data and don't have a recognized
   file system that is <= the drive size are attached without comment
   and without adding meta data as long as the drive is NOT set to
   autosize (controllers that support multiple drive types all default to
   autosize, which can explicitly be disabled on a drive by drive basis).
- Containers that don't have meta data which are > the drive size can
   only be attached read only.
- Containers with meta data can not be attached to a different
   controller at all if the container size is smaller than the drive on the
   other controller.
- Containers that have meta data can be freely be attached to the
   controller that they were attached to when they got the meta data.
   If a file system is detected, it will be reported.  Otherwise if no
   recognized file system is found, the attach will be silent.  File
   system detection reporting can be suppressed with -Q on the attach
   command.
- Containers with meta data can only be attached read only to a different
   controller if the container is larger than the drive it is being
   attached to.
In the future:
- In general, containers with meta data (or recognized file systems)
   will be attachable to MSCP and SCSI controllers, as long as reasonable
   sector sizes and file system not requiring interleaving have been found.
- Containers without meta data will only be attachable if autosize
   is disabled and the container is <= the size of the drive.
- Explicitly setting a drive type on a unit will implicitly disable
   autosizing.  If a user wants to set the default drive for a unit
   and still allow autosizing they must explicitly set the unit to
   autosize after setting the drive type.

Relevant to: #1065, #1059, #1094, #1100, #1118, #1117
2022-02-07 22:55:23 -08:00
Mark Pizzolato
8c14f4f7c1 PDP11: Rework KG device debug support to leverage sim_debug and bitfields 2022-02-04 08:00:50 -08:00
Paul Koning
34a6388114 PDP11: Fix bug in KG11 emulation
Reported by Reindert Voorhorst: if several bytes/words are processed
by the KG11 without intervening status/config register writes, the
wrong answer is produced.  The issue is a missing reset of the pulse
count internal register, which should be cleared by a data register
write.  The manual (DEC-11-KKGAA-B-D) has the details.
2022-02-04 08:00:07 -08:00
Mark Pizzolato
919f8b78bc PDP11, Unibus and Qbus VAX: Properly restore DZ device serial settings 2022-02-04 07:54:28 -08:00
Mark Pizzolato
fda5e07906 PDP11, Qbus and Unibus VAX: Add debug support for DZ and VH line config changes 2022-02-04 07:38:51 -08:00
Mark Pizzolato
1cffbd5706 PDP11, PDP10, Qbus & Unibus VAX: Correct CR device translation help and parsing
As reported in #1115
2022-01-15 15:38:35 -08:00
Mark Pizzolato
bfa041e429 Qbus and Unibus simulators: Extend help to describe XU details
Add minor changes to XQ help information.

As reported in #993
2022-01-15 12:22:26 -08:00
Paul Koning
5cd1e8b7ac TMXR, PDP11, PDP10, VAX: Add DDCMP sync framer support
This adds support for the "framer" device, which is a USB-connected
device built around a Raspberry Pico that connects to a synchronous
line, either RS-232 or DEC "integral modem" coax connection.  It
implements the framing portion of DDCMP: clock recovery for the
integral modem case, byte sync, and DDCMP frame handling including
CRC.  The actual DDCMP protocol state machine, with its handling of
sequencing, timeout and retransmit, etc. is left to the host
software.  All the design files for the framer may be found at
https://github.com/pkoning2/ddcmp .

This commit adds code to drive the framer from the TMXR library,
allowing it to be used either from simulated DMC-11 or simulated
DUP-11 devices.  Both have been tested, using RSTS/E, RSX-11/M+, and
TOPS-20.

Fixed the one-digit limit on eth<n> device names, the limit is now 2.
2022-01-08 14:24:42 -08:00
Mark Pizzolato
8b33921c92 PDP11, VAX, ETHER: Generalize XQ device address filtering
Add optional enabling of broadcast address to hash based filter model.
LANCE based devices which use its AUTODIN II based hash generally
match the broadcast address independent of the contents of the
multicast hash.

This change to XQ mostly undoes the prior change to pdp11_xq and
brings the functionality into sim_ether so that it is generally available
for future ethernet devices.
2021-12-14 11:39:18 -08:00
Mark Pizzolato
40d4609385 PDP11, VAX: Fix XQ DELQA-T (DELQA-Plus) mode to receive broadcast addresses 2021-12-12 11:52:32 -08:00
Mark Pizzolato
4c44975e98 SCSI, VAX & PDP11: Force Read Only attach for CDROM devices
As reported in #1094
2021-11-07 10:06:40 -08:00
Mark Pizzolato
0bc77c4d90 PDP11, VAX: Add or correct help output for some SET commands
As discussed in #1077
2021-09-10 11:38:37 -07:00
Mark Pizzolato
c808256e87 PDP11: Fix model indexes after model table previously got reordered
As reported in #1073
2021-08-24 10:47:01 -07:00
Mark Pizzolato
d1a720debd BuildROMs: Change name define logic to avoid conflicts
Each of the BOOT_CODE_SIZE, BOOT_CODE_FILENAME and BOOT_CODE_ARRAY names
are replaced whenever a BuildROMs generated file is included.
2021-08-23 13:36:04 -07:00
Mark Pizzolato
ae1472db79 Generated ROM Image includes: Updated for multiple ROM image support
The actual contents of the input ROM binary files and the contents of the
created arrays are unchanged.

Multiple ROM image include files can be included in the same source module
without the need for any #undef BOOT_CODE_SIZE, etc.
2021-08-23 12:26:45 -07:00
Mark Pizzolato
efc79d710a PDP11: Update 11/40 and 11/45 models to reflect MMU was an option 2021-08-15 12:13:20 -07:00
Mark Pizzolato
3bf02304da PDP11: Populate remaining internal device help from pdp11_doc.doc 2021-08-14 23:21:31 -07:00
Mark Pizzolato
9166219476 PDP11: Cleanup potential compiler warnings 2021-08-13 09:11:42 -07:00
Mark Pizzolato
acd5ae6579 VAX, VAX780, PDP11: Update typos in documentation and help text
as mentioned in #1065
2021-08-08 23:00:22 -07:00
Mark Pizzolato
af0f0300f8 PDP11, Unibus VAX: DEC standard 144 corrections and RP device update
- Added a specific drive type RP05 which is the same size as the RP04
  but can be distringuished by OS software.
- Restrict SET rpn BADBLOCK to only disk types which actually supported
  the DEC Standard 144 bad block table.
- Fixed typo's in help and comments about DEC 044 vs DEC 144 and also
  in pdp11_doc and vax780_doc documentation files.

As discussed in #1065
2021-08-08 11:39:13 -07:00
Mark Pizzolato
30401fc155 PDP11: Fix VT help entry in DEVICE definition
Previously it was point at the DEVICE.help_attach than DEVICE.help.
2021-08-01 19:02:10 -07:00