Commit graph

4151 commits

Author SHA1 Message Date
Mark Pizzolato
eac0e5680b DISK: Add SET NOAUTOSIZE - disable autosize when attaching existing containers
This is a global command possibly for folks who have configurations which
always explicitly specify the drive type they want a particular unit to be
before they attach a container to the unit.  The side effect of this will
be to avoid the addition of drive type describing meta data to disk
containers.
2022-02-14 15:06:34 -08:00
Mark Pizzolato
af4f37efac doc: Revise the SIMH User's guide to describe startup config files executed
The key change is the addition of:

When a simulator starts execution, the following sequence of simh command
files are executed if they are found:
    1. If a file named simh.ini is located in your HOME directory, it is
        executed.
    2. If the simh.ini file in your HOME directory isn’t found, a file named
        simh.ini in your current working directory is executed if it exists.
    3. If the simulator is invoked with any arguments, then the arguments are
        presumed to be a command file and possible arguments to that command
        file which is executed.
    4. If the simulator is invoked without any arguments, then a command file
        with the same name as the simulator binary with .ini appended that is
        located in the current working directory is executed.

Note, that up to 2 separate command files may be executed on simulator
startup.  The simh.ini file allows the user to define local user
preferences that align with their personal goals for simulator execution
across all simulators that may be used on their system.

Steps 3 and 4 were inherited from simh v3.x.  Steps 1 and 2 was inspired
by conversations with J. David Bryan in April of 2012.  Some how it
never got documented.
2022-02-14 12:43:52 -08:00
Mark Pizzolato
3949f62e89 SCP: Use sim_messagef for all error paths in attach_unit and sim_disk_attach 2022-02-14 04:00:04 -08:00
Mark Pizzolato
96512043bd SCP: Fix UDATA initialization macro to include newly added UNIT member 2022-02-14 01:32:18 -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
b557eaf6e2 DISK: Add support for attach/detach of memory buffered drives (UNIT_MUSTBUF) 2022-02-13 22:51:48 -08:00
Mark Pizzolato
315a07cbc7 SCP: Avoid writing out memory buffered devices on detach that haven't changed
As discussed in #1109
2022-02-13 22:50:37 -08:00
Mark Pizzolato
0116987fc7 TAPE: Added additional switch descriptions for attach time help 2022-02-12 20:11:28 -08:00
Mark Pizzolato
6187b0519a SCP: Support output formatting for long DEVICE and UNIT names
This extends fe4a2a28b to include support for long unit names as well.
2022-02-12 15:19:51 -08:00
Mark Pizzolato
e75b2f29dc VAX 440 simulators: Avoid duplicate model name in SHOW CPU output 2022-02-12 14:21:18 -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
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