1
0
mirror of https://github.com/simh/simh.git synced 2026-01-14 15:45:18 +00:00

4334 Commits

Author SHA1 Message Date
Mark Pizzolato
8da65638df VIDEO: Avoid disabling screen saver until a video display is active 2022-07-15 07:37:17 -10:00
Mark Pizzolato
6f4d97f045 Visual Studio Projects: Update windows-build dependent version
Support the latest VS2022 libraries for build
2022-07-14 18:41:55 -10:00
Mark Pizzolato
e246888e99 makefile, README: Update MacOS required libraries to include pcre 2022-07-14 18:40:12 -10:00
Ken Rector
d406b7771a sigma: Fix breakpoint state restore 2022-07-12 13:54:58 -07:00
Ken Rector
cfce67f702 sigma: Fix dangling else in IO read/write direct 2022-07-12 13:53:32 -07:00
Bob Supnik
4fe173f314 doc: Update Interdata doc to properly list changed register names 2022-07-12 11:49:20 -07:00
Mark Pizzolato
505b5fde78 PDP11 and VAXen: Add supported breakpoint type to help information 2022-07-11 23:57:22 -07:00
Mark Pizzolato
52bda05f70 SCP: Add API for device help to display supported breakpoints 2022-07-11 23:56:27 -07:00
Mark Pizzolato
3358800c66 IBM1130: Fix duplicate register name in GDU device 2022-07-11 08:35:12 -07:00
Richard Cornwell
8d0b4aae65 KA10: Removed duplicate register. 2022-07-08 17:48:04 -04:00
Mark Pizzolato
c053b7e91f SCP: Report source file context for any/all register sanity check errors
Not just the duplicate/ambiguous cases.
2022-07-07 09:00:09 -10:00
Mark Pizzolato
d8ebf7d25a README: Update to reflect current changes and Open SIMH differences 2022-07-07 08:18:21 -10:00
Mark Pizzolato
a28da088be Interdata, SAGE, various VAXen: Fix devices with duplicate/ambiguous register names
Discovered by recent extension of register sanity check logic
2022-07-07 08:12:10 -10:00
Mark Pizzolato
a6f9d02cff SCP: Reword ambiguous REGister message to more easily locate source
Add source and line reference to REG macros.
2022-07-07 08:11:37 -10:00
Bob Supnik
9291318e63 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
2eaf9eb988 sigma: Use 2 digit years in dates more consistently in top comments 2022-07-07 05:42:33 -10:00
Mark Pizzolato
99524be9df SCP: Add missing SRDATA REGister macro and a unit test for it
- The SRDATA macro wasn't used anywhere in the codebase, so it got missed.
- Extend RegisterSanityCheck logic to detect ambiguously named REGisters
2022-07-06 18:40:13 -07:00
Mark Pizzolato
c3a71713ca DISK: Properly handle metadata fixup for empty container files
- Silently allow containers that are the precise unit size even if no
  file system is detected.
2022-07-06 15:36:40 -10:00
Mark Pizzolato
8809507650 doc: Update PDP11 and VAXen documents to reflect limits on # of lines 2022-07-06 15:32:30 -10:00
Mark Pizzolato
8612ec38ae PDP11, VAXen: Avoid potential for incorrect unit names on VH device 2022-07-06 06:52:47 -10:00
Mark Pizzolato
05d3d2c320 DISK: Allow clean container copy upon attach
- Source disk is attached read-only
- Copy reads the minimum of the source or destination container sizes
2022-07-05 16:45:05 -10:00
Bob Supnik
ffc71c5315 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
Mark Pizzolato
7b1d8fb34c README: Update to reflect current changes and Open SIMH differences 2022-07-01 09:41:00 -10:00
Mark Pizzolato
fb4c3ee653 SCP: Include unit based logical names in SHOW NAMES output 2022-07-01 09:39:52 -10:00
Mark Pizzolato
3aa8b5da91 SCP: Extend Logical Name functionality to units as well as devices
Display of devices and units prefers logical names but accepts both
2022-07-01 09:13:46 -10:00
Ken Rector
c81e6b9c3c SCP: Fix parenthesis to avoid potential compiler warnings 2022-07-01 07:23:35 -10:00
Ken Rector
1aaba87cc2 SCP: Add parenthesis to avoid potential compiler warnings 2022-07-01 07:13:22 -10:00
Ken Rector
a648b8a730 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
a1aa65ee7c sigma: Cleanup comment 2022-06-29 08:02:59 -10:00
Mark Pizzolato
580cc8f176 PDP11: Add help description for DLI LINES and DISCONNECT 2022-06-29 07:42:34 -10:00
Mark Pizzolato
8eae7bb4a6 README: Update MacOS dependency information 2022-06-26 14:41:31 -07:00
Mark Pizzolato
4d71b42120 doc: Updated faq to remove support for Windows 9x 2022-06-26 14:40:43 -07:00
Mark Pizzolato
bc99d6d5de SCP: Updated REG manipulation APIs and REGister sanity checks for all macros
- bounds check accesses in get_rval and put_rval for circular registers
- extend unit tests for REGister sanity checks to include all macros
- add sanity checks for new REGister macros
2022-06-26 14:39:25 -07:00
J. David Bryan
72196b08bb 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
6c919c41e1 KA10: Removed REG_UNIT. 2022-06-21 19:32:53 -04:00
Richard Cornwell
1a8029996b KA10: Removed duplicate file in Visual Studio build of KA10. 2022-06-21 13:50:46 -04:00
Richard Cornwell
eae0123879 Updated Makefile and Visual Studio project to include extra devices on KL10. 2022-06-21 09:51:19 -04:00
Richard Cornwell
5fbff11002 KA10: Updated documentation for PDP10 simulators. 2022-06-21 09:50:43 -04:00
Richard Cornwell
942e7d4bb7 KA10: Added default disable for devices that could be on KL10. 2022-06-21 09:50:05 -04:00
Richard Cornwell
68a21703b2 KA10: IMP Code support for Tenex. 2022-06-21 09:48:47 -04:00
Richard Cornwell
662a2817ab KA10: Code cleanup for Dectape device. Needed for Tenex support. 2022-06-21 09:47:52 -04:00
Richard Cornwell
54900824cd KA10: Fixed DK10 to properly interrupt. 2022-06-21 09:47:02 -04:00
Richard Cornwell
3d9f54119b 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
Mark Pizzolato
38b3aff4ca PDP11 & Unibus VAXen: Properly size RY Drives and no DEC144 2022-06-19 19:21:13 -07:00
Mark Pizzolato
ec117739b7 PDP11, Unibus & Qbus VAXen: Properly set RQ device unit names in extended units 2022-06-19 19:15:32 -07:00
Mark Pizzolato
4cf86e0e64 SCP: Add NOAUTOSIZE status to the output of SHOW VERSION 2022-06-18 16:08:40 -07:00
Mark Pizzolato
c13214a98c SCP: Avoid DEPOSIT to DEVICEs which aren't attached to a seekable file 2022-06-17 13:23:37 -07:00
Bob Supnik
77cd8d1802 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
Mark Pizzolato
b91a9d2bd6 README: Update to reflect current changes and Open SIMH differences 2022-06-16 18:20:54 -07:00
Bob Supnik
c55139c0a8 I1620, I1401: Add max value to address registers 2022-06-16 16:13:46 -07:00