Commit graph

4141 commits

Author SHA1 Message Date
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
d64f003cc0 Non Qbus and Non Unibus VAX: Default to autosizing disks for MFM RD disks 2022-02-11 02:09:37 -08:00
Mark Pizzolato
e6c4b01f2e DISK: Provide coherent messages when container encountering incompatibility 2022-02-11 02:06:45 -08:00
Mark Pizzolato
92b1efe50f DISK: Clarify minor changes to sim_disk API in the documentation 2022-02-10 07:10:08 -08:00
Mark Pizzolato
a94a9ac28f DISK: Allow for attach time copies of dissimilar sized disk containers 2022-02-09 08:33:38 -08:00
Mark Pizzolato
b8903f303f DISK: Add highwater support to the container meta data
The highwater support records the furthest logical sector in a disk
container that has been written by the simulator when accessing
the device.
2022-02-08 19:07:00 -08:00
Mark Pizzolato
e6ebf96f05 ETHER: Fix stub unit test routine declaration when sim_ether isn't used 2022-02-07 23:08:20 -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
a4054f33b8 SCP: Add command argument passed into library unit test routines 2022-02-07 04:21:16 -08:00
Mark Pizzolato
9f3bd71e66 TMXR: Avoid use of C++ reserved word 2022-02-06 18:23:20 -08:00
Mark Pizzolato
d8e41d64a3 SOCK: Properly avoid mixing char * and const char * references 2022-02-06 18:22:49 -08:00
Mark Pizzolato
2209f25086 SCP: Add a success or failure indicator preceeding messages 2022-02-06 11:16:57 -08:00
Mark Pizzolato
153776accb FIO: Add support to expand filename/path to a list of filenames 2022-02-06 11:04:39 -08:00
Mark Pizzolato
a444923256 doc: Update info about pcap support for Ethernet simulation on Windows. 2022-02-04 20:56:45 -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
35503f4765 TMXR: Add Access Control List (ACL) support for incoming network connections 2022-02-04 07:59:08 -08:00
Mark Pizzolato
10e561767f SOCK: Add support for parsing and evaluating Access Control Lists 2022-02-04 07:58:09 -08:00
Mark Pizzolato
54eda7a050 SCP: Extend BITFIELDS to allow alternate descriptions for same fields 2022-02-04 07:56:15 -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
dbc0ea4114 TMXR: Reject serial port attach config for programmaticly configured mux 2022-02-04 07:54:28 -08:00
Mark Pizzolato
dd92be296c SCP: Add host system processor name to SHOW VERSION output 2022-02-04 07:51:08 -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
67845e4301 TMXR: Add debug output reporting line configuration changes 2022-01-25 16:41:57 -08:00
Mark Pizzolato
39f2ab96cc DISK: Add logic to avoid zapping an attach container file
- ZAP with -Z switch now trims all zero sectors, where the default is
   to trim zero sectors added beyond the container file size when the
   meta data was added.
- Remove file system wording from the skipping autosizing message.
2022-01-22 10:13:29 -08:00
Mark Pizzolato
99c5f2a763 DISK: Record original container file size in footer restore size during removal 2022-01-20 17:24:45 -08:00
Mark Pizzolato
f34670654c Visual Studio Projects: Update windows-build version dependency
Latest VS2022 support added along with SDL Version 2.0.20.
2022-01-19 12:25:48 -08:00
Mark Pizzolato
370bfe006d SCP: Avoid using strlcpy for overlapping string copy 2022-01-16 07:44:15 -08:00
Mark Pizzolato
b0dcd191bb SCP: Add missing console receive debug for telnet connect console 2022-01-15 19:32:55 -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
Mark Pizzolato
ac955b270d VIDEO: Fix broken beep behavior that caused infinite loop 2022-01-15 11:21:27 -08:00
Mark Pizzolato
b5052c81d6 makefile, SCP: Enrich support for compile time SIM_VERSION_MODE
- Pass make command line SIM_VERSION_MODE argument into the compiler.
- Tolerate quoted and unquoted SIM_VERSION_MODE values.
2022-01-15 10:01:49 -08:00
Mark Pizzolato
212943284d Visual Studio Projects: Add library Setupapi.lib for linking with newer SDL 2022-01-15 10:01:25 -08:00
Clem Cole
afc5313e16 SERIAL: Find more serial port names on Unix, remove unused ioctl code 2022-01-12 12:25:43 -08:00
Mark Pizzolato
b24e3580dc SCP: Add clarifying context to various device/unit error messages 2022-01-12 12:17:21 -08:00
Mark Pizzolato
7756a38e31 ETHER: Silence stderr when determining NIC hardware addresses
As reported in #1112
2022-01-10 04:08:44 -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
Rick Murphy
030a47bdb4 PDP8: Fix crash when using EP multiply
When performing floating point multiplication, the prior code overwrote
an additional word of the floating point fraction with zeros. This is
harmless with standard FP, as the floating variables always have space
for EP-length vars. When doing an EP multiply, this causes a word on
the stack to be zeroed. For the latest Raspbian release, this causes a
segfault as there's no padding past that var on the stack.

This fix, which has been tested against the original crashing code plus
validated using the FPP-8 diagnostics, avoids the overwrite.
2022-01-06 18:53:03 -08:00
Mark Pizzolato
fa5e0ed157 SCP: Assure that debug writes that check errno get a correct value
The original solution provided in response to #957 needs to be adjusted
to reflect that errno is only guaranteed to be set by fwrite() if an error
occurred. otherwise a non zero value may have been set by some other
call elsewhere in the program.  All other cases where errno is explicitly
check in simh, it is only done after receiving a return status from a
system call.

Fix problem reported in #1108
2022-01-06 12:18:10 -08:00
Mark Pizzolato
ff4c7b154e SCP: Minor Coverity cleanup 2022-01-02 09:47:33 -08:00
Seth Morabito
0c7bf366ae 3b2: Support for SVR 2.0.5 diagnostics
The CTC and PORTS pump code for System V Release 2.0.5 for the 3B2 is
different from the pump code used by SVR 3, leading to PORTS and CTC
diagnostics failing to pass when running SVR2. This change adds
support for the pump code used in SVR 2.
2021-12-27 15:09:20 -08:00
Howard M. Harte
d8d324ded6 serial: Support COM ports > COM9 on Windows
COM ports greater than COM9 on Windows can only be opened using
the DOS device UNC path \\.\.

Prefix the filename passed to CreateFile() with this prefix to
address this issue.
2021-12-17 15:06:41 -08:00
Mark Pizzolato
121b0323a6 DISK: Disallow attach of unrecognized disk container > size of the current unit
Containers without recognized file systems already won't autosize, but now
you can't attach a container which is larger than the current drive type
presuming there is useful data beyond the size of the current drive type.
2021-12-15 16:54:04 -08:00
Mark Pizzolato
cea76d59bd SCP: Add newer baseline libreadline support. 2021-12-15 16:52:49 -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
b35d36407d ETHER: Fix NAT dhcp behavior to properly respond to the MAC of the requestor 2021-12-10 18:17:18 -08:00
Mark Pizzolato
c5cd38afbf SCP, makefile: Rename build conditional HAVE_DLOPEN to SIM_HAVE_DLOPEN
Some dependent packages on some platforms may also define HAVE_DLOPEN
and that definition may have different syntax or semantics.  This change
avoids the potential symbol conflict.

As reported in #1098
2021-12-04 17:44:57 -08:00