1
0
mirror of https://github.com/open-simh/simh.git synced 2026-03-11 21:15:20 +00:00
Commit Graph

308 Commits

Author SHA1 Message Date
Patrick Linstruth
48830b9ab9 Release V3.12-5 2024-07-18 19:21:36 -04:00
Timothe Litt
4fa9ca4811 Change archives from BZIP2 to ZIP
PowerShell can create ZIP files, which Windows explorer
can access natively.

Add LICENSE.txt from master
2023-02-26 22:22:55 -05:00
Timothe Litt
41c7ade454 Enable Windows CI for Supnik-Current
Details in commit to master.

Added preprocessor _WINSOCK_DEPRECATED_NO_WARNINGS to suppress
warnings with VS2022

Backported VS2022 fix for FMA error in pdp18b_fpp from V4.1

Fixed uninitialized warnings fromVS2022.

Added download of external libraries
2023-02-26 22:22:55 -05:00
Bob Supnik
26610bc582 Floating loads are src,dst (nickd4) 2023-02-03 09:27:41 -05:00
Bob Supnik
c0f0a8877e Common code: various bugfixes; Mac "Classic" and OS/2 support has been removed v3.12-3 2023-01-30 18:05:21 -05:00
Bob Supnik
d6d5e8637a PDP11: numerous 11/70 compatibility fixes 2023-01-30 18:05:21 -05:00
Bob Supnik
874bd3f473 SIGMA: Invalid address must set a TDV-visible error flag (Ken Rector) 2023-01-30 18:05:21 -05:00
Bob Supnik
4fe3a5a0f0 PDP11, VAX: Re-enabled VH11 after fixes (Mark Pizzolato) 2023-01-30 18:05:21 -05:00
Bob Supnik
c7f0c6eb1b I7094: Changed structures to arrays for display 2023-01-30 18:05:21 -05:00
Tony Lawrence
3f9ea0f6bd PDP11: Fix RK11/RL11 byte/word count mismatch (and cyl upd in RK11) 2022-12-05 12:20:12 -05:00
Mark Pizzolato
7b78b6d313 makefile: Remove irrelevant checks for VIDEO support building v3 simulators 2022-09-04 19:14:44 -06:00
Bob Supnik
a847ee13a3 PDP11: CPU MMR1 and FP changes
There are a lot of niggling fixes, mostly for incompatibility issues
found by Walter Mueller. Working out the 11/70 behavior is still not
fully done, but it's a lot better than it was, and it passes more of the
11/70 MMU diagnostic.

- Floating point. Now model sensitive in treating MMR1, for 2.11 BSD.
- MMR1 now tracks PC changes on 11/44, 11/45, 11/70, and J11 -(PC) and @-(PC).
- MMR1 is cleared at start of trap sequence on 11/45, 11/70.
- Red stack abort occurs before memory writes on 11/45, 11/70 (no other model has them).
2022-09-04 19:13:38 -06:00
Bob Supnik
e93d21ac79 PDP11: Remove OPT_RH11 as a CPU option
There are 3 variations of RH11:
- 11/70 Massbus adapter AKA RH70.
- All other PDP11 systems had a Massbus adapter known as the RH11.
- Qbus PDP11 systems had a Massbus adapter known as a RH70 emulator.
2022-09-04 18:59:42 -06:00
Mark Pizzolato
7a68c268b9 PDP11: Revert DZ device to prior version.
The code in 3.12-2 is only part of a complete solution and thus merely
hangs the device/processor.

The reverted version wouldn't normally have the problem since the
normally partial code was trying to fix since I/O completion happens
right in dz_wr().  However, the "complete it immediately" model could
logically lose data if the sending side were driven harder than the TMXR
TCP transport was able to deliver data to the TCP session.  The easiest
answer is to revert to the earlier v3 DZ code since at least that worked
almost all of the time.

The right answer would be to only signal the transmit completion
interrupt if the transmit didn't end up getting buffered and if it did
get buffered (and not successfully flushed), then schedule a separate
unit to retry the pending output until it actually made it to the TCP
wire.  That separate unit would then signal the interrupt for the line
indicated in the CSR and mark CSR_TRDY.

This is more change to realize relatively little value so simply revert
and be done.
2022-09-04 18:09:37 -06:00
Bob Supnik
49fb037eba sigma: COC device, add LNORDER command option 2022-09-04 17:58:16 -06:00
Ken Rector
b5ef85aef4 sigma: COC device, handle transmit long, stop transmit and receive break 2022-09-04 17:56:46 -06:00
John Dundas
02bcdc82cd 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.
- In vh_reset(), make certain the number of lines makes sense in the
  context of the current bus and adjust if not appropriate; mark each
  unit correctly for DHU vs. DHV; mark each unit enabled or disabled as
  appropriate; reset the vector length; reset the number of units.
- Retrofit updates from V4 SIMH: (Mark Pizzolato)
  - VH_LINES must be  set according to the bus type (Unibus: 16,
    Qbus: 8).
  - Define VH_LINES_ALLOC at 16 lines/unit to reserve the maximum space
    for lines.
  - SET VH LINES=n is now sensitive to mode; appropriate values are
    DHV: 8, 16, 24, 32; DHU: 16, 32, 48, 64
  - In fifo_get(), sense immediately when the FIFO empties, rather
    than the next time through.
  - In vh_setnl(), call vh_reset () to adjust the state of the units
    and lines, and invoke auto_config().
2022-07-24 17:07:05 -07:00
Ken Rector
0eb28d601e sigma: DP device SEEK(I), RECAL(I) must be coded as fast operations. 2022-07-23 16:55:21 -07:00
Ken Rector
fc18eaa047 sigma: UEND flag in the wrong bit position in channel status word. 2022-07-23 16:54:19 -07:00
Ken Rector
7953088407 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
6ca5a58043 sigma: Made CHANA chan_ctl_time accessible as a register 2022-07-23 16:46:55 -07:00
Bob Supnik
6f5b5c3387 sigma: Added IO numeric channel numbers to SET/SHOW 2022-07-23 16:45:43 -07:00
Ken Rector
d6544e09b9 sigma: Fix breakpoint state restore 2022-07-12 13:54:58 -07:00
Ken Rector
8dc14a4b52 sigma: Fix dangling else in IO read/write direct 2022-07-12 13:53:32 -07:00
Bob Supnik
801a3be07d ID16, ID32: Fixed Duplicate register names 2022-07-12 11:11:59 -07:00
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