1
0
mirror of https://github.com/open-simh/simh.git synced 2026-03-12 21:44:14 +00:00
Commit Graph

283 Commits

Author SHA1 Message Date
Bob Supnik
6ea9c58b8b 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
93acb96dd8 sigma: Use 2 digit years in dates more consistently in top comments 2022-07-07 05:42:33 -10:00
Bob Supnik
a28585d265 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
29404358d7 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
622dc28bc8 sigma: Cleanup comment 2022-06-29 08:02:59 -10:00
Bob Supnik
14dccaa4e7 simh v3.12-2 v3.12-2 2022-06-17 09:03:47 -07:00
Bob Supnik
b0568dc2cb 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:40:34 -07:00
J. David Bryan
f7ccf334a2 TIMER, TMXR: Add casts for down-conversion potential compiler warnings 2022-06-16 21:06:46 -07:00
J. David Bryan
13c9ca5bec TAPE: Added extended SIMH format support
- Improved tape_erase_fwd corrupt image error checking
- Added sim_tape_erase global, tape_erase internal functions
2022-06-16 21:05:23 -07:00
Bob Supnik
980c21e50f I1401, I1620: Define max memory address values 2022-05-16 07:51:22 -07:00
Bob Supnik
80ed10e9a2 PDP11, VAX, VAX780: Cleanup format of conflict error messages 2022-05-16 05:21:42 -07:00
Bob Supnik
c744b3ee06 PDP11: Add MMU as settable option to 11/23, 11/40, 11/45 2022-05-16 05:20:31 -07:00
Bob Supnik
4a94125810 PDP11: Fix XQ Register declarations 2022-05-16 05:11:35 -07:00
Reindert Voorhorst
13562ba65a PDP11: Fix bug in KG device continuous computation 2022-05-16 05:09:18 -07:00
Bob Supnik
6e61f64fa5 PDP8: Zeroed result exponent in double precision (COVERITY) 2022-05-16 05:01:07 -07:00
Bob Supnik
e2d3a2ae70 All LP and CD devices: Removed use of ftell for pipe compatibility 2022-05-16 04:57:30 -07:00
Bob Supnik
5d04198757 All Tape DEVICES: Added extra case points for new MTSE definitions 2022-05-16 03:36:09 -07:00
Mark Pizzolato
9b2899cfef ETHER, CARD, SOCK: Include shared components from V4 codebase 2022-05-16 03:10:18 -07:00
Bob Supnik
8c31bb08e3 alpha: Correct register declarations 2022-05-16 03:03:28 -07:00
Bob Supnik
d29c6f43e3 S3: Restore original S3 code to branch 2022-05-16 03:01:45 -07:00
Rick Murphy
adf023bf86 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-07 10:39:14 -08:00
Bob Supnik
fa113143d0 PDP8: Fix device conflict warnings to report problems correctly
As reported in #1084
2021-10-23 14:40:34 -07:00
Bob Supnik
a39b50ff63 PDP8: Update clock options in documentation 2021-06-08 02:00:05 -07:00
Ken Rector
dadb00eb19 SDS: Added C register implementation for various devices 2021-06-08 01:55:07 -07:00
Mark Pizzolato
21c70a82f8 I7094: Replaced MT device dynamic buffers with static ones 2021-06-08 01:51:06 -07:00
Bob Supnik
e44586a917 PDP8: Fixed RF/DF and LP decoding 2021-06-08 01:44:25 -07:00
Bob Supnik
6edc4994eb PDP8, PDP18b: Fixed RF, DF, DT device bug if read overwrites WC memory location 2021-06-08 01:43:32 -07:00
Bob Supnik
e039527a34 PDP8: Added diagnostic mode for TSS/8 2021-06-07 20:40:35 -07:00
Mark Pizzolato
53fa9e5cb1 PDP8: Fixed bug in binary loader 2021-06-07 20:38:23 -07:00
Mark Pizzolato
7ed7d38ff4 CARD: Latest from 4.x master branch 2021-01-17 11:20:15 -08:00
Mark Pizzolato
c263d60a86 ETHER: Latest from 4.x master branch 2021-01-17 11:19:53 -08:00
Ken Rector
79878eb6ed SDS: Add Card Reader and Card Punch devices 2020-12-27 13:51:07 -08:00
Bob Supnik
541d1c3c90 SCP: Update to Bob Supnik's latest source candidate v3.11.2 2020-12-27 13:25:10 -08:00
Mark Pizzolato
507be1f2e2 CARD: Backport sim_card functionality to Supnik-Current branch 2020-12-18 04:19:17 -08:00
Bob Supnik
e76f5d7fae PDP11: Update doc to include SET CPU BEVENT option 2020-12-18 04:04:33 -08:00
Mark Pizzolato
344fafcc1b sigma: Compiler warning fixups 2020-12-18 04:03:27 -08:00
Mark Pizzolato
f9dd01d8a8 H316, I1401, I1620, I7094, PDP1, PDP11, PDP18B, PDP8: Compiler warning fixups 2020-12-18 04:03:02 -08:00
Mark Pizzolato
dc6d05e9f5 S3: Removed legacy version of IBM System 3 not maintained by Bob Supnik 2020-12-18 03:56:15 -08:00
Bob Supnik
71e2a37ec1 VAX780: Silence bogus gcc warnings 2020-10-07 15:33:11 -07:00
Bob Supnik
c8270f7865 SCP: Update to Bob Supnik's latest source 2020-10-04 05:56:32 -07:00
Samuel Deutsch
adf1a4c1dc NOVA: Fix carry display in CPU instruction history
Problem: Currently when viewing the Nova CPU history the carry flag is always
displayed as 0 regardless of it's actual value at the time.

Cause: The carry bit is stored in bit 17 and is lost when stored into the
int16 carry member of struct Hist_entry

Solution: Shift carry into bit 0 before storing it in the CPU history.
Improve code for displaying carry bit.
2020-10-04 05:51:04 -07:00
Mark Pizzolato
aaa4e4ca5e SCP: Update to Bob Supnik's latest source 2020-09-17 14:04:40 -07:00
Bob Supnik
682d692c8c PDP11: Fixed problem in KDJ11-E programmable clock 2020-09-16 03:37:21 -07:00
Bob Supnik
133a2c98ee UC15: Zero out DR15 shared state on first allocation 2020-09-15 14:34:51 -07:00
Bob Supnik
694c7f8ad0 PDP11: Added KSR mode to TTI/TTO 2020-09-15 14:34:03 -07:00
Bob Supnik
baf14114eb PDP8: Fixed comments in DT device bootstrap 2020-09-15 14:33:18 -07:00
Bob Supnik
b555b7252d PDP11: Change TU device comment text 2020-09-15 14:32:24 -07:00
Mark Pizzolato
29b0e7f121 SHMEM: Fix Linux code to properly use built-in's and cleanup on shutdown
As reported in #909
2020-09-15 14:31:03 -07:00
Bob Supnik
02f97392d4 PDP10: Fix TC_RIP macro in TU device 2020-09-08 03:05:24 -07:00
Mark Pizzolato
91048325e7 SCP: Bob Supnik's pre-release 3.11-2 2020-06-07 13:03:38 -07:00