Commit graph

4166 commits

Author SHA1 Message Date
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
Mark Pizzolato
3621db4e6a SCP: Prefer Posix 'command -v' over 'which' 2021-12-04 11:48:49 -08:00
Peter Schorn
ab6c2c043e AltairZ80: Improved vector interrupt implementation 2021-12-04 20:42:03 +01: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
6d9a55d351 SCP: Provide commit id information when archived simh content is used 2021-11-01 15:33:43 -07:00
Lars Brinkhoff
70af29ac0c H316: The UDP code doesn't need anything from h316_defs.h.
Removing this line makes it easier to reuse the h316_udp.c file in
other simulators that want to use the IMP-host interface.
2021-11-01 18:17:46 +01:00
Mark Pizzolato
b4fa00cebf DISK: Properly allow/disallow containers of reasonable/unreasonavle sizes
As reported in #1065
2021-10-31 04:32:54 -07:00
Mark Pizzolato
e6611c61b3 DISK: Preserve container dates when adding or removing container meta data 2021-10-31 04:24:25 -07:00
Mark Pizzolato
079e4780d2 FIO: Add support to set file access and modify times 2021-10-31 04:20:39 -07:00
Mark Pizzolato
0bc929222f makefile: Fix minor line ending inconsistencies 2021-10-24 21:06:52 -07:00
Mark Pizzolato
db401a4dbe makefile: Support both .so and .a link libraries on Linux
For some strange reason, Ubuntu 21.10 delivers various libraries as
either direct link libraries (".a") or  shared objects (".so") where
historically essentially everything was shared objects..
2021-10-24 18:41:08 -07:00
Mark Pizzolato
d0c7276dd7 FIO: Emit reasonable error message when shm_open() API isn't available locally 2021-10-24 14:25:28 -07:00
Bob Supnik
89cd2d458f PDP8: Fix device conflict warnings to report problems correctly
As reported in #1084
2021-10-23 15:09:10 -07:00
Seth Morabito
74021166d3 3b2: Remove glibc-specific longjmp
At one point in the distant past, there was an unremembered
reason to prefer __libc_longjmp if it was available. It is no
longer needed, and has been removed from glibc in the most recent
versions.

Fixes #1088.
2021-10-23 14:32:10 -07:00
Heinz-Bernd Eggenstein
525215b07e TIMER: Be less aggressive to disable throttling after initial calibration
- removed a somwhat unlikely but possible division-by-zero
- in case the initial throttling calibration measures a slower cps rate than
   the desired cps rate, check whether the measured rate is well below the
   measured peak rate. If so, distrust the measured rate and instead use
   half the peak rate as measured cps rate.
   Otherwise (so measured cps is in the same ballpark as measured peak rate)
   disable throttling

As initially reported in #815
2021-10-23 13:50:48 -07:00
Lars Brinkhoff
1e4401fd84 H316: Call the host interface TX service routine.
The modem and host interface TX services should both be called from
the RTC device, but when the host interface was implemented the call
was not added.
2021-10-21 14:16:23 +02:00
Lars Brinkhoff
5dcc00ea10 H316: Fix debugging host interface messages. 2021-10-21 14:14:21 +02:00
Lars Brinkhoff
4e162c0586 H316: Signal the host/IMP ready bits in the host interface.
This adds a new flag to the host interface UDP packages to indicate
the ready bit of the sender.  The flag comes along all packets, but an
empty packet can be sent to change the ready status without
transmitting data.
2021-10-21 14:14:04 +02:00
Lars Brinkhoff
53e81819e0 H316: Fix reading messages from the host interface.
The 1822 IMP-host interface carefully handshakes every bit
transferred.  Thus the DMC facility can read messages piecewise.  The
IMP uses this to read a 32-bit leader first, and process the rest or
the message in another round.

The IMP expects the 1822 end of message bit not to be set until after
the entire message has been read.
2021-10-21 14:10:20 +02:00
Lars Brinkhoff
3baaf6c028 H316: Fix host interface word counts.
The host interface uses the UDP packet format from the modem
interface, with an additional flags word.  Ensure the flags are
not included in the word count.
2021-10-18 14:25:59 +02:00
Mark Pizzolato
06a8447d26 FIO: Add NetBSD and OpenBSD to platforms that could use mmap and shm APIs
As reported in #1083
2021-10-12 18:53:56 -07:00
Howard M. Harte
08a0ad2d88 2SIO: add support for interrupts.
Add vectored interrupt support for the Altair 2SIO card.
2021-10-11 08:50:29 -07:00
Howard M. Harte
81afea160c AltairZ80: Add support for Z80 Mode 2 interrupts.
Add support for Z80 Mode 2 interrupts to altairz80_cpu.c
Also implement interrupts for the WD179x floppd controller.
2021-10-11 08:50:20 -07:00
Mark Pizzolato
c73474df8d README: Correct Ubuntu build dependencies
This is a trivial correction since if dependencies are missing at build
time what is missing is and how to fix it is properly described in
build time messages.

As reported in #1081
2021-10-06 23:38:08 -07:00
Seth Morabito
976ba05604 3b2: Allow force interrupt if not attached
This commit fixes an issue that caused floppy diagnostics to fail if
the floppy drive unit was not attached. The 3B2 floppy controller has
a "force interrupt" command that should run whether or not the floppy
unit is attached to an image.
2021-10-05 08:50:01 -07:00
Mark Pizzolato
e897dfc3c9 SCP: Fix missing void parameter declarations 2021-09-30 21:08:01 -07:00