1
0
mirror of https://github.com/open-simh/simh.git synced 2026-03-14 22:28:43 +00:00
Commit Graph

90 Commits

Author SHA1 Message Date
Bob Supnik
26610bc582 Floating loads are src,dst (nickd4) 2023-02-03 09:27:41 -05:00
Bob Supnik
d6d5e8637a PDP11: numerous 11/70 compatibility fixes 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
Tony Lawrence
3f9ea0f6bd PDP11: Fix RK11/RL11 byte/word count mismatch (and cyl upd in RK11) 2022-12-05 12:20:12 -05: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
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
Bob Supnik
14dccaa4e7 simh v3.12-2 2022-06-17 09:03:47 -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
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
Bob Supnik
682d692c8c PDP11: Fixed problem in KDJ11-E programmable clock 2020-09-16 03:37:21 -07:00
Bob Supnik
694c7f8ad0 PDP11: Added KSR mode to TTI/TTO 2020-09-15 14:34:03 -07:00
Bob Supnik
b555b7252d PDP11: Change TU device comment text 2020-09-15 14:32:24 -07:00
Bob Supnik
be1df57fa2 Nova, PDP10, PDP11, PDP8, SIGMA: Unload call sim_tape_detach (Mark Pizzolato) 2020-05-29 05:59:44 -07:00
Bob Supnik
462656d199 PDP11: Fixed PTR and PTP INT register definitions (Mark Pizzolato) 2020-03-01 18:25:52 -08:00
Bob Supnik
6d4ad46f79 PDP11, VAX: Disabled VH11 2020-03-01 18:24:46 -08:00
Bob Supnik
fac557150d PDP11, VAX: Fixed DZ race condition for multiple transmitters (Mark Pizzolato) 2020-03-01 18:23:41 -08:00
Bob Supnik
43360191c8 simh 3.11 2019-11-30 20:19:00 -08:00
Bob Supnik
d90ed88199 PDP11: Add SP to instruction history 2019-04-15 19:18:27 -07:00
Bob Supnik
5ccef2e6f8 simh 3.10-RC2
3.10 is mostly an attempt to get aligned with the current head of the
GitHub 4.0 sources. While the core libraries and SCP have diverged too
far for real forward and backward compatibility, enough 4.0 workalikes
have been added to allow much closer convergence of the two streams.

3.10 will provide the basis for my future simulation work.
2018-07-21 10:39:14 -07:00
Mark Pizzolato
a2bc6a9508 UC15: Fix incorrect shared region size 2018-07-21 03:01:11 -07:00
Bob Supnik
3fada8da5a simh 3.10-RC1a
3.10 is mostly an attempt to get aligned with the current head of the
GitHub 4.0 sources. While the core libraries and SCP have diverged too
far for real forward and backward compatibility, enough 4.0 workalikes
have been added to allow much closer convergence of the two streams.

3.10 will provide the basis for my future simulation work.
2018-06-04 07:59:42 -07:00
Mark Pizzolato
140ab5b350 various: Fixed nested comments 2018-06-03 18:44:55 -07:00
Bob Supnik
bf82092493 GRI, PDP11, PDP8, VAX: Misc formatting and typo cleanups 2018-03-09 14:03:13 -08:00
Bob Supnik
0dc94bf3ec PDP11, VAX780: Fix TM03 Read tape mark must set Massbus EXC 2017-12-28 16:00:43 -08:00
Bob Supnik
884a744fb5 PDP11, VAX: Change ERROR in CR device translation tables to avoid conflicts 2017-06-04 09:54:13 -07:00
Mark Pizzolato
c6399f7e40 PDP11: Change DC and TTI device to be 7B instead of 7P
7P interfered with the ability to determine the ID of a remote Telnet based
terminal session.
2017-03-20 07:34:49 -07:00
Bob Supnik
a6469c255d NOVA, PDP1, PDP11, sigma: Various cosmetic/typo changes 2017-03-19 09:45:12 -07:00
Bob Supnik
9f60279a51 PDP1, PDP8, PDP18B, PDP11: Fixed dt_seterr to clear successor states 2017-03-15 09:57:58 -07:00
Bob Supnik
4a5d829c46 PDP11: Fixed spurious interrupt when setting GO
The code wasn't handling interrupts correctly when TCCM was written. In
particular, if the GO bit clears DONE, the code looked for the "SET IE" case
too soon and didn't clear the interrupt that was incorrectly generated.
The new code factors "GO" into the calculation.
2017-03-14 09:58:17 -07:00
Bob Supnik
48a9b5b42b PDP10, PDP11, PDP18B, PDP8: Annotate switch case fall through (COVERITY) 2017-03-13 10:32:27 -07:00
Bob Supnik
ae3179e2fe PDP11, PDP10, VAX780: CR11 is BR6, CD11 is BR4 2017-03-07 09:05:59 -08:00
Bob Supnik
e22ffedb29 PDP11: Fixed RF device CSR address in boot code 2017-02-13 08:27:47 -08:00
Bob Supnik
9f4b198afd PDP11: Fix address block length for RS device
As discussed in #396
2017-02-11 10:33:51 -08:00
Mark Pizzolato
b414f54fd4 PDP11, VAX780: Moved CR11/CD11 from BR4 to BR6 2017-01-06 12:33:59 -08:00
Mark Pizzolato
99bbc5f8cf PDP11: Add initial UC15 support from Bob Supnik 2016-12-04 15:51:22 -08:00
Mark Pizzolato
fa1fba5bd5 PDP11: TC11 - Revised to model TCCM correctly
As reported by Josh Dersch in #358

   Read hardware notes:

   - While the TCCM error bit is a real flop, it is supposed to reflect
     the OR of the TCST error bits at all time, so it is updated on read.
   - A read of TCDT while the function is RALL clears DONE.

Write hardware notes:

   - The TC11 behaves much more like a traditional DECtape controller
     than a typical PDP11 peripheral. In particular, execution is
     initiated/controlled by any write to TCCM, rather than setting
     the GO (DO) bit. Unless the function is STOP or STOP ALL, writing
     TCCM will put the selected tape in motion.
   - Writing GO (DO) clears DONE (READY) and the error flops in TCST.
   - Writing a 0 to ERROR clears the error flops in TCST. Because it
     is write 0 to clear (later controllers used write 1 to clear),
     the simulator has to know whether ERROR is actually written.
   - STOP ALL ignores select errors. Every other function is rejected
     if there is a select error.
   - An illegal operation (setting ILO) will stop the selected tape.
   - A write of TCDT while the function is RALL, WALL, or WTMK clears
     DONE (READY). RALL should not be included, but it saved a gate
     not to prevent it.
   - Because DONE (READY) may not be clear when an operation completes
     and DONE (READY) is set, the DT_SETDONE must test for DONE (READY)
     not being already set.
2016-12-04 11:08:23 -08:00
Mark Pizzolato
88105d0b16 PDP11: Removed old source files 2016-12-04 11:07:37 -08:00
Mark Pizzolato
ee59a6b6d2 PDP11: Fixed bad register definitions 2016-10-11 06:34:35 -07:00
Mark Pizzolato
f5e3d3b5b2 PDP11: Fix ambiguous -D decimal vs data space reference - Add -T for data 2016-08-30 13:05:49 -07:00
Mark Pizzolato
1f3c9550d5 PDP11: Fixed bug in history virtual addressing (Bob Supnik)
The problem has to do with the difference in how the PSW is stored when
the simulator is running (it's all in pieces) or stopped (it's collected in PSW).
cpu_ex is a console routine and expects the PSW to be stored in PSW, but
when history is collected, it's not. In particular, cm (current mode) is in local
variable cm.

cpu_ex with /v calls relocC, which derives the current mode from the
switches:

- if /ksup, use kernel/supervisor/user/previous mode (from PSW); otherwise,
   use current mode from PSW
- if /d, use data space; otherwise, use instruction space

relocC is doing current mode i-space, which is what's wanted... except that
it's deriving current mode from PSW, rather than cm, which is where it's stored
while the simulator is running. It's fairly likely that PSW is long obsolete by the
time the history is invoked.
2016-03-06 06:24:33 -08:00
Mark Pizzolato
30857a3550 PDP11: Addition of option to disable BEVENT for 11/03 and 11/23 CPUs (Bob Supnik's latest state). 2015-12-30 11:59:28 -08:00
Mark Pizzolato
4d48f44857 Bob Supnik's state as of 5/9/2015 after backporting some things from the master branch 2015-05-10 05:48:11 -07:00
Mark Pizzolato
3a279c013a PDP11: FP fix from Bob Supnik: MMR1 does not track register changes (Johnny Billquist) Fix #44 2015-03-26 14:25:01 -07:00
Mark Pizzolato
d906445c4a Fixed bug in read forward with byte swap - From Bob Supnik 2014-10-27 13:25:41 -07:00