Commit graph

459 commits

Author SHA1 Message Date
Bob Supnik
3b67a8658d PDP11, All VAX: Change ERROR in CR device translation tables to avoid conflicts 2017-06-04 09:56:22 -07:00
Mark Pizzolato
47c917a55d PDP11, VAX: Fix stray TABs which crept in over time 2017-04-26 15:42:36 -07:00
Matt Burke
4b41b3372f All VAX, PDP11, PDP10: Minor fixes to DZ device 2017-04-26 15:34:01 -07:00
Mark Pizzolato
1a8bc50130 PDP11, Qbus VAX: Add delay when starting XQ device in DELQA-T mode 2017-04-24 13:25:10 -07:00
Mark Pizzolato
c4931bbd30 PDP11: Fix error path check on disk I/O status 2017-04-13 21:55:40 -07:00
Mark Pizzolato
8c5305c857 PDP11: Fix rounding up sector count computation
Fix #412, #424
2017-04-13 20:42:47 -07:00
Mark Pizzolato
cd8e9eb5da PDP11: Properly handle reads of less than 1 sector
Fix #412, #424
2017-04-13 18:20:01 -07:00
Mark Pizzolato
c638950211 PDP11: Properly handle reads of less than 1 sector
Fix #412, #424
2017-03-26 06:52:21 -07:00
Bob Supnik
3eb4598456 SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
Bob Supnik
62879beb70 PDP1, PDP8, PDP18B, PDP11: Fixed dt_seterr to clear successor states
For the PDP11, this includes deferring the setting of DONE on an error, allowing RSTS V4 to work correctly.

There was a minor (possibly only theoretical) bug in dt_seterr as well.
dt_seterr is supposed to stop the drive. If the drive is accelerating, at
speed, or stopped, it works fine. But if the drive is decelerating, it did
not clear out the "successor" states. In theory, the drive could be in the
middle of reversing - that is, there are successor states of accelerating
(in reverse) and at speed. So the successor states need to be cleared,
or the drive won't actually stop.

The fifth DECtape controller (the PDP8's TD8E) is much simpler and
doesn't have the problem.
2017-03-15 10:04:52 -07:00
Bob Supnik
e7a38cc56f 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:59:14 -07:00
Bob Supnik
d1768d2771 PDP10, PDP11, PDP18B, PDP8: Annotate switch case fall through (COVERITY) 2017-03-13 10:59:06 -07:00
Mark Pizzolato
4da04e06ce PDP11, VAX: Fix RQ device potential memory reference errors (COVERITY) 2017-03-12 19:41:23 -07:00
Mark Pizzolato
14b9265af3 PDP11, VAX: Cleaned MSCP/TMSCP packet queues to be uint16 2017-03-12 19:06:46 -07:00
Mark Pizzolato
aa0924816a PDP11, VAX: Fix RQ device Endian compatibility problem (COVERITY) 2017-03-11 22:24:41 -08:00
Mark Pizzolato
c4e963921b PDP11, VAX: Fix TQ device Endian compatibility problem (COVERITY) 2017-03-11 22:23:38 -08:00
Mark Pizzolato
c6ed19aec3 PDP11, VAX780: XU device fixes (COVERITY)
- Fix potential beyond array bounds memory references
- Fix layout of Read System Id Parameter block (diagnostics)
2017-03-11 16:04:56 -08:00
Mark Pizzolato
235a39714c PDP11, VAX: XQ device fixes (COVERITY)
- Fix potential beyond array bounds memory references
- Fix MOP protocol packet parsing
2017-03-11 16:00:00 -08:00
Mark Pizzolato
009e5061e2 PDP11, PDP10: Fix DUP Modem signal change logic (COVERITY) 2017-03-10 11:55:30 -08:00
Mark Pizzolato
7af3e357f0 PDP11, VAX: Fix debug output state reference (COVERITY) 2017-03-10 11:55:30 -08:00
Sergey Svishchev
2bf538f59c PDP11, All VAX: fix CID: 1415573, 1415452 "Operands don't affect result"
Character length of 5 is stored as 0.
2017-03-09 18:33:40 -08:00
Sergey Svishchev
2e2df8fc2d PDP11, All VAX: fix CID: 1415818 "Uninitialized scalar variable" 2017-03-09 17:20:00 -08:00
Sergey Svishchev
4bee16578a PDP11, All VAX: fix CID: 1415538, 1415766 ("Dereference before null check") 2017-03-09 17:19:09 -08:00
Bob Supnik
b41d10f189 PDP11, PDP10, VAX780: CR11 is BR6, CD11 is BR4 2017-03-07 09:42:37 -08:00
Mike Hill
4c746682f1 PDP11: Correct the address of MMR3 in a comment 2017-03-03 05:01:03 +01:00
Mark Pizzolato
1e981e0d64 PDP11: Reworked RH to device mapping for proper static address assignment
Operating systems and boot driver code presume that each Massbus
device will always be at a specific fixed address and use a specific fixed vector.
The prior implementation assigned the first active Massbus device to RHA
and followed in order for subsequent devices.  This could leave devices at
addresses and vectors that software or boot drivers wouldn't expect.

The problem which was originally reported in #301 should now be properly
solved.  As a consequence of the need to have fixed addresses and vectors,
some combinations of devices can not coexist in a system without causing
conflicts with each other.  TM and TU have conflicting interrupts.  TM and
TS have conflicting addresses and interrupts.
2017-02-23 12:26:39 -08:00
Mike Hill
f9cfae0c00 PDP11: Fix RH address range disappearing after disable/enable of RP/TU/RS
As discussed in #396
2017-02-20 14:21:24 +01:00
Mike Hill
7f2c7480ef PDP11: Fix PDP-11 boot code for TDCn where n>0 (TU58)
As discussed in #401
2017-02-14 10:57:29 -08:00
Bob Supnik
5233af7c89 PDP11: Fixed RF device CSR address comments in boot code 2017-02-13 08:29:42 -08:00
Paul Koning
d112c22f5e PDP11: Fix setting of CSR address in RF11 boot command. 2017-02-12 15:08:26 -05:00
Mark Pizzolato
bce72b2b1a PDP11: Fix RS device address window size and propagate that through to RH
As discussed  in #396
2017-02-11 10:39:52 -08:00
Mark Pizzolato
50ee02a2c7 PDP11: Fix psw_mode map in PSW register bitfield 2017-02-09 09:59:45 -08:00
Mark Pizzolato
641d72c3a7 PDP11, VAX: convert RL and HK devices to use sim_disk
This adds file system size verification to allow robust auto sizing and
adds the potential to use VHD and/or access RAW devices if desired
2017-02-07 16:46:55 -08:00
Mark Pizzolato
76dda8a01e PDP11, VAX: Fix SET RPn BADBLOCK behavior and auto sizing.
BAD144 info was written correctly if the user answered Y when the disk
image was created, but would not work if SET RPn BADBLOCK was
entered later.

Auto sizing would be potentially wrong if a disk had been created
without writing the BAD144 data.  Now, if the disk contains a file system
that information along with the physical container's size is used to
properly auto size the disk.
2017-02-07 13:02:21 -08:00
Mark Pizzolato
7d432406b6 PDP11, PDP10, all VAX: General extern cleanup.
Remove explicit redundant extern declarations in source files that are
defined in processor include files.
2017-02-04 19:37:20 -08:00
Paul Koning
5dc6d9a487 PDP11: Add initial UC15 support from Bob Supnik
Include files I (Mark Pizzolato) missed in prior commit
2017-02-04 13:43:40 -08:00
Paul Koning
998cf5c122 PDP11: Add initial UC15 support from Bob Supnik 2017-02-04 12:19:41 -08:00
Mark Pizzolato
d8dbc7e6b5 SCP: Migrate all stdio writes to pass through SCP provided Fprintf() 2017-01-14 20:48:09 -08:00
Mark Pizzolato
ae25c72a8e PDP11, VAX730, VAX750, VAX780, VAX8600: Moved CR11/CD11 from BR4 to BR6 2017-01-07 04:56:52 -08:00
Mark Pizzolato
0db0236bed PDP11: Add more debug info to PCLK device 2017-01-05 13:30:57 -08:00
Mark Pizzolato
b935a173e5 PDP11, All VAX: Fix TU58 device (TDC) failure when not ATTACHED 2017-01-05 09:36:17 -08:00
Mark Pizzolato
8661cf1a06 PDP11, All VAX: Add bitfield decode for VH registers 2017-01-05 08:26:47 -08:00
Mark Pizzolato
01e114c37f PDP11, All VAX: Fix SET ADDRESS alignment value to 010 from 020 2017-01-03 14:46:42 -08:00
Mark Pizzolato
3d159936c6 PDP11, All VAX: Added extended debugging options to the VH device 2017-01-03 12:57:12 -08:00
Mark Pizzolato
6eb13f0259 PDP11: Add debug support to PCLK device 2016-12-31 11:01:02 -08:00
Mark Pizzolato
dbed84c370 PDP11: Fix PCLK device to properly behave with a 0 value interval (65536)
Also migrate to usecs remaining API to simplify producing the remaining
interval value.
2016-12-30 14:43:12 -08:00
Mark Pizzolato
e52ac6d57f SCP: Add help for NOEXPECT and spelling cleanups 2016-12-29 13:52:06 -08:00
Mark Pizzolato
257738a4e0 PDP11, all VAX: Extend debug options to track timing activities 2016-12-24 09:52:05 -08:00
Mark Pizzolato
65cfd2a63d PDP11, PDP10: Add pseudo internal device to KDP for receive units
This allows the device to be identified when the event queue is examined
with SHOW QUEUE for KDP devices.
2016-12-18 13:31:44 -08:00
Mark Pizzolato
0a0bad9139 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:09:55 -08:00