Commit graph

641 commits

Author SHA1 Message Date
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
Mark Pizzolato
e519c93ebf H316, NOVA, PDP11, PDP8, PDP18B, KX10: Record Sequential updates consistently
Devices that do single character I/O could be attached to non seekable
host OS devices (tty, pipes, etc.) and thus shouldn't count on fseek()
and ftell().  These DEVICEs on these simulators do single character I/O
and easily can update their POS REGisters to reflect how much data has
been emitted.  Changing such a REGister will have no  useful effect
when attached to a non seekable file.
2021-06-08 14:25:23 -07:00
Mark Pizzolato
4b03e1493a PDP11: Fix typo in cpu_boot routine 2021-06-08 13:12:01 -07:00
Mark Pizzolato
4ce23275e0 PDP11: Add default CPU BOOT to ROM if ROM is enabled and reasonably configured 2021-05-30 15:51:15 -07:00
Mark Pizzolato
68e407ba0f ALL: Correct help text in "SET <unit> LOCKED" MTAB entries 2021-04-19 15:22:15 -07:00
Mark Pizzolato
a015e44c10 ALL: Standardize writelock behavior adding global UNIT_WLK & UNIT_WPRT
Historically this functionality was reimplemented within each
DEVICE simulator often with slightly different implementations
and inconsistencies.  Solving this globally within SCP required
changes in many places, but should henceforth be reasonably
managed.

As discussed in #1034
2021-04-19 10:58:51 -07:00
Mark Pizzolato
587b81bed4 PDP11: Avoid redundant message in RH help text
As mentioned in #1034
2021-04-19 10:58:08 -07:00
Mark Pizzolato
af0754f93a PDP11: Clarify TC device attach and detach read only & write update messages
As discussed in #1034
2021-04-16 11:33:42 -07:00
Mark Pizzolato
b90b1eaf6f PDP11, VAXen: Properly clear I/O space read/write dispatches on deregister
as reported in #1029
2021-04-09 07:31:36 -07:00
Mark Pizzolato
be4e3c4e33 PDP11, Qbus & Unibus VAX: Fix TDC device REGisters definitions
- The REG definitions support having a REGister be pointing at an
  element in an array of structures (or UNITs) as long as the element
  is a scalar.  Something that is not supported is when the element is
  already an array (or buffer).  The approach used in the TDC device
  creates n additional registers each of which points at the individual
  array element in each of the structure in the structure array.
- Fix simple REG declarations which didn't fully describe the size of the
  underlying storage holding the REG contents in the TDC and VH
  DEVICEs.

As reported in #1025
2021-04-05 15:14:15 -07:00
Lars Brinkhoff
2f66e74c50 PDP11: Use MATCH_CMD to match comand strings. 2021-02-03 16:09:26 +01:00
Lars Brinkhoff
39ab11cbb7 PDP11: New VT11 setting to enable/disable switches. 2021-02-01 18:44:24 +01:00
Lars Brinkhoff
cea5fc136d PDP11: Toggle NG display fullscreen with F11. 2021-02-01 07:07:32 +01:00
Lars Brinkhoff
d5befa75c1 I650, IBM1130, PDP11, PDP18b, VAX, Sigma: Fix set but unused variables. 2020-12-02 14:45:21 -08:00
Mark Pizzolato
2676404b36 3B2, BESM6, PDP10, PDP11: Remove redundant include of time.h 2020-10-30 14:16:52 -07:00
Mark Pizzolato
0e72400e09 PDP11, Qbus/Unibus VAX: Silence various compiler warnings 2020-10-09 05:10:12 -07:00
Mark Pizzolato
55f0dd7369 PDP11, VAX: Update XQ device help information 2020-09-27 09:37:05 -07:00
Bob Supnik
edc2410007 PDP11: Fixed problem in KDJ11-E programmable clock 2020-09-16 03:42:08 -07:00
Bob Supnik
fd71a69ea3 PDP11: Change TU device comment text 2020-09-15 14:39:34 -07:00
Mark Pizzolato
20f9a2c985 PDP11: Provide 10ms accuracy for the KDJ11-E TOY clock 2020-09-15 05:37:12 -07:00
Mark Pizzolato
c65eb24d9a PDP11: Add description display routine to the KW11-L line frequency clock 2020-09-15 04:45:25 -07:00
Mark Pizzolato
4092a7bf6f Unibus and Qbus VAX: Avoid clang compiler warning 2020-09-07 13:22:45 -07:00
Mark Pizzolato
0859d64434 Unibus and Qbus VAX: simplify map register output summary for duplicate lines 2020-09-04 11:15:17 -07:00
Mark Pizzolato
ae825c9afb All: Declare sim_stop_messages as an array SCPE_BASE long
This avoids a potential invalid pointer dereference when formatting
the return value from sim_instr() if it is < SCPE_BASE but greater
than the previously defined static array size.sizeof

Update simh.doc to reflect this generic change.
2020-09-02 15:56:07 -07:00
Mark Pizzolato
5c48229ce4 Qbus & Unibus VAX: Add a SHOW QBA|UBA MAP{=n} command to display the bus map 2020-08-29 08:16:58 -07:00
Mark Pizzolato
f921962ff2 PDP11: Fix software write lock flag error introduced when migrated to sim_disk
As reported and discussed in #918
2020-08-11 15:52:35 -07:00
Mark Pizzolato
6fdc447410 PDP11: Fixed TTI Device SET option for Upper Case 2020-07-24 19:12:15 -07:00