Commit graph

4459 commits

Author SHA1 Message Date
J. David Bryan
fddf5acd2b HP2100: Fix improper REG macro use missed when merging 3.12-2 2022-09-21 09:20:57 -07:00
Mark Pizzolato
1e5caa39c2 I7094: Use appropriate REG macro for array of structures 2022-09-21 09:03:16 -07:00
Bob Supnik
8854da6c1b ID16, ID32: Fix register macro change missed when merging 3.12-2 2022-09-21 09:02:00 -07:00
Mark Pizzolato
21e3c56fa4 PDP11, Qbus & Unibus VAX: Use proper REG macros for arrays and structures
Registers in the DMC, RQ and TQ devices were improperly described
2022-09-21 08:46:23 -07:00
Mark Pizzolato
060f55d23e makefile: Assure that besm6 simulator builds on recent macOS versions
Extend set of paths searched for font files since common fonts have
moved on macOS versions since besm6 simulator support was added.
2022-09-19 12:19:05 -07:00
B. Scott Michel
dc320a84da makefile: Adjust syntax of variable insertions for conversion to cmake 2022-09-19 12:18:30 -07:00
B. Scott Michel
b588b4c28c ETHER: Add stub for clean compiles when building without network support 2022-09-19 12:17:48 -07:00
Seth Morabito
84bf5f4d14 3b2: Update README.md and correct line endings
This change updates the 3B2 README.md file, and fixes
all line endings on 3B2 source files.
2022-09-19 09:37:17 -07:00
Paul Koning
75aefcb75c
video: don't disable the screen saver (#57)
This fixes issue #38 by setting the SDL_HINT_VIDEO_ALLOW_SCREENSAVER
hint to 1, leaving the screen saver enabled.  SDL 2.0.2 had changed
the default to disable the screen saver.

Co-authored-by: Paul Koning <ni1d@arrl.net>
2022-09-18 12:21:42 -04:00
Seth Morabito
8c0f64f332
Merge pull request #56 from sethm/3b2.rev3
3B2-700 Initial Public Release
2022-09-17 14:05:27 -07:00
Seth Morabito
9b62da6567 3B2-700 Initial Public Release
This commit introduces dozens of changes to make the 3B2-700 simulator
fully functional and ready for wider use. In addition to 3B2-700
availability, this commit includes a tremendous amount of refactoring
of the 3B2-400 and common code to make the project structure easier to
maintain and reason about.

One final important change: ROM files are no longer included in the
source code. 3B2 ROM images must be obtained separately and loaded
into the simulator before boot.

Changes:

- The 3b2 target has been aliased to 3b2-400
- The formerly named 3b2-600 project has become 3b2-700
- SCSI QIC tape support has been added to sim_scsi.c
- Header files have been reworked to reduce complexity of includes
- Common code has been consolidated
- Timer code has been unified
2022-09-15 14:15:28 -07:00
J. David Bryan
d862d024ea SCP: Fix details missed when merging update REGister macros from v3.12-2 2022-08-14 21:23:21 -07:00
Trevor Warwick
24260f0613 QBus VAX and PDP11: Add support for HDLC framing to DUP11/DPV11
Fix minor formatting glitches and remove unused variable.
2022-08-04 16:46:56 +01:00
Trevor Warwick
1ab955be30 QBus VAX and PDP11: Add support for HDLC framing to DUP11/DPV11
This commit extends the existing DUP11/DPV11 support to add support for HDLC framing. There
is no requirement to support bit/byte stuffing, so the aim is simply to encapsulate/decapsulate
the datalink frame provided by the host driver.

DDCMP has been regression tested on VMS, RSX and TOPS20, and the HDLC mode was developed
and tested with VAX/VMS DECnet Phase V, only using the HDLC datalink implementation.

In theory this support is sufficient to allow Phase IV/V P.S.I and even VMS/SNA to be used,
but these remain to be demonstrated.
2022-08-03 10:38:17 +01:00
Louis Chrétien
58809e35b4 PDP11: Cleanup help language in TC and DAZ devices 2022-07-26 07:30:55 -10:00
John Dundas
9890acc11c PDP11, VAXen: Fix to VH device to properly reference the line number
- Correct RBUF_GETLINE & RBUF_PUTLINE: these are both sensitive to
  modeling DHU vs. DHV; the correct bit mask was not generated for DHU.
- Make certain the device presents 16 lines when modeling a DHU.
2022-07-24 18:03:49 -07:00
Ken Rector
9eca0980c2 sigma: DP device SEEK(I), RECAL(I) must be coded as fast operations. 2022-07-23 16:55:21 -07:00
Ken Rector
37f0b365a2 sigma: UEND flag in the wrong bit position in channel status word. 2022-07-23 16:54:19 -07:00
Ken Rector
6b544073ae sigma: Fix MT tape mark error handling
revised error handling failed to set tape mark status on space file
forward/reverse.
2022-07-23 16:52:50 -07:00
Bob Supnik
debde9a0a3 sigma: Made CHANA chan_ctl_time accessible as a register 2022-07-23 16:46:55 -07:00
Bob Supnik
4846006b41 sigma: Added IO numeric channel numbers to SET/SHOW 2022-07-23 16:45:43 -07:00
Ken Rector
59ddf72b52 sigma: Clean compiler warning 2022-07-23 06:43:20 -10:00
Ken Rector
677e89bab0 sigma: Fix breakpoint state restore 2022-07-12 13:54:58 -07:00
Ken Rector
2a69f1bdfa sigma: Fix dangling else in IO read/write direct 2022-07-12 13:53:32 -07:00
Bob Supnik
6dc50c564b doc: Update Interdata doc to properly list changed register names 2022-07-12 11:49:20 -07:00
Richard Cornwell
aec04ef956 KA10: Removed duplicate register. 2022-07-08 17:48:04 -04:00
Bob Supnik
adfcff49b7 sigma: Fix error handling in MT device channel errors
Ken's last note led me to look at magtape error handling, and it was
not right. This has resulted in a lot of code changes in sigma_mt.c, but
the changes are mostly mechanical. Instead of trying to be clever and
do channel handling in mt_map_err or at the bottom of the mt_svc
routine, every magtape command now does its own error handling.
This makes the code repetitive, but I hope it is much clearer as a result.
2022-07-07 05:46:32 -10:00
Bob Supnik
fa0c561c28 sigma: Use 2 digit years in dates more consistently in top comments 2022-07-07 05:42:33 -10:00
Bob Supnik
9258e25c0d sigma: Fixed bugs in multi-unit operation
The problems all stem from a single root cause: when an interrupt is
requested - via any one of dozens of mechanisms (uend, normal end,
special request, error, etc), the interrupt routine must be presented
with the full device address, including the unit, which is stored in the
channel data structures. This is so that AIO (acknowledge interrupt)
can retrieve the unit number from the channel data structures and
give it back to the invoking program.

Unfortunately, service routines, error routines, etc were simply using
the base device address, which is good enough for all channel operations
EXCEPT AIO. So the four multi-unit device (RAD, DK, DP, MT) have had
changes to reconstruct the full device address, with unit number, before
any calls into the channel are made.

DP, funnily enough, required the fewest changes. Ken was exactly right
about the need to OR the unit number into dva at the start of the unit
service routine. That had to be done in a few more places where my code
was being lazy.

RAD, DK, MT required many more changes, but they were mostly mechanical.
All references to xx_dib.dva had to be examined and replaced with a full
device address. The full device address had to be reconstructed from the
UNIT pointer and the base device address, through the magic of pointer
arithmetic.

Another sore spot was HIO. HIO stops all the active unit in its tracks
and does a channel UEND on it. The calculation of the unit number in the
UEND was not correct in a few places, notably if DP did a controller reset.

Fixes for the four modules; an updated bug history; and an expanded
design document; are attached.
2022-07-03 13:56:46 -07:00
Ken Rector
bef5b821f0 SCP: Fix parenthesis to avoid potential compiler warnings 2022-07-01 07:23:35 -10:00
Ken Rector
755cb9ccff SCP: Add parenthesis to avoid potential compiler warnings 2022-07-01 07:13:22 -10:00
Ken Rector
254057289f sigma: DP device fixes
- TIO status routine always returns DVS_AUTO instead of proper status.
- DP_SEEK definition is off by 1.
- reset does not properly initialize controller, seek threads.
2022-06-29 08:07:10 -10:00
Bob Supnik
0caa2e7ed5 sigma: Cleanup comment 2022-06-29 08:02:59 -10:00
J. David Bryan
4dde5a69a4 SCP: Updated REG macros and manipulation APIs
- Rewrote get_rval, put_rval to support fields within arrays of structures
- REG "size" field now determines access size
- REG "maxval" field now determines maximum allowed value

Merge from v3.12
2022-06-24 15:39:45 -07:00
Richard Cornwell
8bbec61483 KA10: Removed REG_UNIT. 2022-06-21 19:32:53 -04:00
Richard Cornwell
38cd649a9f KA10: Removed duplicate file in Visual Studio build of KA10. 2022-06-21 13:50:46 -04:00
Richard Cornwell
60d2eaf42b Updated Makefile and Visual Studio project to include extra devices on KL10. 2022-06-21 09:51:19 -04:00
Richard Cornwell
d88aab9ae2 KA10: Updated documentation for PDP10 simulators. 2022-06-21 09:50:43 -04:00
Richard Cornwell
46a5532404 KA10: Added default disable for devices that could be on KL10. 2022-06-21 09:50:05 -04:00
Richard Cornwell
264ca2ef6b KA10: IMP Code support for Tenex. 2022-06-21 09:48:47 -04:00
Richard Cornwell
bad0394323 KA10: Code cleanup for Dectape device. Needed for Tenex support. 2022-06-21 09:47:52 -04:00
Richard Cornwell
d216297a06 KA10: Fixed DK10 to properly interrupt. 2022-06-21 09:47:02 -04:00
Richard Cornwell
25f053e45d KA10: Added switch for DF10 vs DF10C.
Fix bug in interrupt handling in KI when EPT not at 0.
      Fix bug with handling of CCW_COMP flag on DF10 devices.
2022-06-21 09:43:17 -04:00
Bob Supnik
cc6f8ee8ee SCP: Fixed bug in byte deposits if aincr > 1
The PDP11 and VAX have length switches - B, W, and (VAX) L - to
override the default parsing of numberic display or input as words
(PDP11) or longwords (VAX CPU) or bytes (VAX byte devices).
This worked fine if every value is filled in. On the PDP11:

sim> ideposit -b 0-3
0:    1
1:    2
2:    3
3:    4
sim>

But if the user skips an input, IDEPOSIT advances by 2, not 1:

sim> ideposit -b 0-3
0:    1
1:    (cr)
3:    4
sim>

This change now produces the correct behavior.

PDP-11 simulator V3.12-2
sim> id -b 0-3
0:      1
1:
2:      3
3:      4
sim>
2022-06-17 08:23:29 -07:00
Bob Supnik
5543e137f8 I1620, I1401: Add max value to address registers 2022-06-16 16:13:46 -07:00
Bob Supnik
07ea411d3e PDP8: Zeroed result exponent in double precision (COVERITY) 2022-06-16 16:13:46 -07:00
Bob Supnik
28fd79ef06 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
8d49d8c297 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
Anthony Lawrence
bcaed7d0b0 SCP: Fix incorrect disk size reporting when t_addr is 32 bits 2022-06-14 20:21:21 -07:00
Trevor Warwick
2a38dd802b 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