simh-testsetgenerator/PDP11
Tony Lawrence eeebbed273 PDP11: RP11: Implement delayed CS_DONE for "initiation" commands (SEEK/HOME)
Running earlier XXDP tests revealed that a technique of concurrent command
initiation and continued housekeeping for the command completion was used in
the old code.

For example, code could initiate a SEEK command for a drive, and knowing that
CS_DONE (and thus, an interrupt) is coming in about 16us, it would then go
ahead and clear a flag, which registers that the interrupt has occurred
(expected to be set to 1 by the ISR).  If CS_DONE is set by the implementation
at the function initiation immediately, that would mean that the interrupt
could be triggered before the next instruction, and the flag would be set by
the ISR right away.  The main code, however, would proceed with the the flag
clear as the following instruction, thus, never detecting the interrupt down
the road.

Since this technique was in existence, it is better to introduce a delay for
setting CS_DONE in the "fast" initiation commands like SEEK and HOME, to
accommodate the software that was relying on it.

So far, however, no issues were encountered in testing (except one), where
this delay mattered, but it's hard to tell if it would not be needed at all.

All I/O commands always delay CS_DONE already because they were never supposed
to be immediate.

Since the time for CS_DONE in initiation commands was documented at 16us, the
introduced delay is set to 10 instructions, which usually took more than that
to execute.  But the interrupt flag clear case would be covered, as well as
the counted waits, which used some 25+-iteration tight loops for "drive ready",
before flagging a time-out (so the delay cannot be longer, either).

It also looks like more modern code never used any such tricks, so for it, it
should not matter if CS_DONE was slightly delayed or not.
2023-10-24 12:45:59 -04:00
..
11logo PDP11: Add 11LOGO programming language and make it bootable from the NG device. 2019-02-07 08:16:52 +01:00
dazzledart PDP11: Add Dazzle Dart game and make it bootable from the DAZ device. 2019-02-07 08:16:49 +01:00
lunar11 DISPLAY: Latest version of display code from Phil Budne and Doug Gwyn including initial pdp1_dpy and pdp11_vt 2013-10-16 01:02:12 -07:00
CMakeLists.txt PDP11: RP11-C (RP02/03) disk implementation 2023-09-22 19:41:33 -04:00
ddcmp_sync.md Various simulators: Set line endings to CRLF for consistency, remove stray tabs 2023-03-19 16:51:27 -04:00
pdp11_11logo_rom.h BuildROMs: Change name define logic to avoid conflicts 2021-08-23 13:36:04 -07:00
pdp11_ch.c PDP11: Fix warning about size_t converted to uint16. 2020-04-14 07:44:24 +02:00
pdp11_cis.c PDP11: Cleanup potential compiler warnings 2021-08-13 09:11:42 -07:00
pdp11_cpu.c PDP11: numerous 11/70 compatibility fixes 2023-01-31 13:06:04 -05:00
pdp11_cpumod.c PDP11: 11/70 read-only registers must not return NXM on write 2023-10-10 19:52:41 -04:00
pdp11_cpumod.h PDP11: Fix model indexes after model table previously got reordered 2021-08-24 10:47:01 -07:00
pdp11_cr.c PDP11, PDP10, Qbus & Unibus VAX: Correct CR device translation help and parsing 2022-01-15 15:38:35 -08:00
pdp11_cr_dat.h PDP11, All VAX: Change ERROR in CR device translation tables to avoid conflicts 2017-06-04 09:56:22 -07:00
pdp11_daz.c PDP11: Cleanup help language in TC and DAZ devices 2022-07-26 07:30:55 -10:00
pdp11_dazzle_dart_rom.h BuildROMs: Change name define logic to avoid conflicts 2021-08-23 13:36:04 -07:00
pdp11_dc.c PDP11: Improve idling. 2022-10-29 14:15:41 -04:00
pdp11_ddcmp.h PDP11, Unibus VAX: Fix Coverity identified warning 2019-07-16 03:15:25 -07:00
pdp11_defs.h PDP11: RP11-C (RP02/03) disk implementation 2023-09-22 19:41:33 -04:00
pdp11_dh.c PDP11: Support byte write access to DHCSR. 2023-03-30 09:33:41 -04:00
pdp11_dl.c PDP11: Add more thorough help to the DLI/DLO device 2020-06-25 11:06:04 -07:00
pdp11_dmc.c PDP11, Qbus & Unibus VAX: Use proper REG macros for arrays and structures 2022-09-21 08:46:23 -07:00
pdp11_dup.c QBus VAX and PDP11: Add support for HDLC framing to DUP11/DPV11 2022-08-04 16:46:56 +01:00
pdp11_dup.h PDP10,PDP11,VAX: Addition of inter operable DUP11, DMC11 and KDP11 devices 2013-11-25 07:00:17 -08:00
pdp11_dz.c Various simulators: Set line endings to CRLF for consistency, remove stray tabs 2023-03-19 16:51:27 -04:00
pdp11_fp.c PDP11: numerous 11/70 compatibility fixes 2023-01-31 13:06:04 -05:00
pdp11_hk.c PDP11, VAX scsi systems: Migrate DEV_DISK devices using common autosize code 2022-02-11 15:26:21 -08:00
pdp11_io.c PDP11: Fix I/O Page DMA to reflect hardware that only worked on Unibus 2018-09-06 13:41:43 -07:00
pdp11_io_lib.c PDP11: RP11-C (RP02/03) disk implementation 2023-09-22 19:41:33 -04:00
pdp11_io_lib.h Qbus & Unibus VAX: Add a SHOW QBA|UBA MAP{=n} command to display the bus map 2020-08-29 08:16:58 -07:00
pdp11_ke.c PDP10, PDP11, VAX: const cleanup 2015-02-13 06:18:24 -08:00
pdp11_kg.c PDP11: Rework KG device debug support to leverage sim_debug and bitfields 2022-02-04 08:00:50 -08:00
pdp11_kmc.c PDP11: Fix SET command parsing to require values for all ADDRESS and VECTOR 2019-08-01 07:16:34 -07:00
pdp11_lp.c All LP and CD devices: Removed use of ftell for pipe compatibility 2022-06-16 16:13:46 -07:00
pdp11_mb.c Various simulators: Set line endings to CRLF for consistency, remove stray tabs 2023-03-19 16:51:27 -04:00
pdp11_mscp.h Changed use of compile #defines which start with a _ character to not do this since defined symbols starting with _ are reserved to local compiler/runtime implementations in the C language. This addresses issue #32 2013-03-12 11:07:58 -07:00
pdp11_ng.c PDP11: Improve idling. 2022-10-29 14:15:41 -04:00
pdp11_pclk.c PDP11, Qbus/Unibus VAX: Silence various compiler warnings 2020-10-09 05:10:12 -07:00
pdp11_pt.c PDP1, PDP10, PDP11, ID16, ID32, NOVA, VAX: Open LPT, PTP devices for append 2020-04-28 07:09:20 -07:00
pdp11_rc.c PDP11: Migrate RC device to use sim_disk meta data and file system detection 2022-02-13 23:05:43 -08:00
pdp11_rf.c PDP11: RF11: Fix DAE computation in service routine 2023-10-09 20:16:01 -04:00
pdp11_rh.c PDP11: numerous 11/70 compatibility fixes 2023-01-31 13:06:04 -05:00
pdp11_rk.c PDP11: RK11: Complete fix for WC as implemented in V3 + other fixes 2023-06-24 13:34:38 -04:00
pdp11_rl.c PDP11: numerous 11/70 compatibility fixes 2023-01-31 13:06:04 -05:00
pdp11_rom.c PDP11: ROM device. 2018-09-10 15:13:06 +02:00
pdp11_rp.c PDP11, Unibus VAX: DEC standard 144 corrections and RP device update 2021-08-08 11:39:13 -07:00
pdp11_rq.c DISK: add RQDX1 model and make it default for MV1. 2023-07-18 20:13:11 -04:00
pdp11_rr.c PDP11: RP11: Implement delayed CS_DONE for "initiation" commands (SEEK/HOME) 2023-10-24 12:45:59 -04:00
pdp11_rs.c ALL: Correct help text in "SET <unit> LOCKED" MTAB entries 2021-04-19 15:22:15 -07:00
pdp11_rx.c ALL: Correct help text in "SET <unit> LOCKED" MTAB entries 2021-04-19 15:22:15 -07:00
pdp11_ry.c ALL: Correct help text in "SET <unit> LOCKED" MTAB entries 2021-04-19 15:22:15 -07:00
pdp11_stddev.c PDP11: Add description display routine to the KW11-L line frequency clock 2020-09-15 04:45:25 -07:00
pdp11_sys.c PDP11: RP11-C (RP02/03) disk implementation 2023-09-22 19:41:33 -04:00
pdp11_ta.c All Tape DEVICES: Added extra case points for new MTSE definitions 2022-06-16 16:13:46 -07:00
pdp11_tc.c PDP11: Cleanup help language in TC and DAZ devices 2022-07-26 07:30:55 -10:00
pdp11_td.c ALL: Correct help text in "SET <unit> LOCKED" MTAB entries 2021-04-19 15:22:15 -07:00
pdp11_td.h PDP11, All VAX: Fix TU58 device (TDC) failure when not ATTACHED 2017-01-05 09:36:17 -08:00
pdp11_tm.c All Tape DEVICES: Added extra case points for new MTSE definitions 2022-06-16 16:13:46 -07:00
pdp11_tq.c PDP11, Qbus & Unibus VAX: Use proper REG macros for arrays and structures 2022-09-21 08:46:23 -07:00
pdp11_ts.c PDP11: TS11: Fix help output for BOOT command 2023-10-10 13:02:02 -04:00
pdp11_tu.c ALL: Standardize writelock behavior adding global UNIT_WLK & UNIT_WPRT 2021-04-19 10:58:51 -07:00
pdp11_tv.c Various simulators: Set line endings to CRLF for consistency, remove stray tabs 2023-03-19 16:51:27 -04:00
pdp11_uc15.c PDP11: Fix SET command parsing to require values for all ADDRESS and VECTOR 2019-08-01 07:16:34 -07:00
pdp11_uqssp.h Changed use of compile #defines which start with a _ character to not do this since defined symbols starting with _ are reserved to local compiler/runtime implementations in the C language. This addresses issue #32 2013-03-12 11:07:58 -07:00
pdp11_vh.c PDP11, VAXen: Fix to VH device to properly reference the line number 2022-07-24 18:03:49 -07:00
pdp11_vt.c PDP11: Fix VT help entry in DEVICE definition 2021-08-01 19:02:10 -07:00
pdp11_vt_lunar_rom.h BuildROMs: Change name define logic to avoid conflicts 2021-08-23 13:36:04 -07:00
pdp11_xq.c PDP11, VAX: Fix Coverity issues in XQ and XU devices 2022-03-11 12:34:59 -08:00
pdp11_xq.h PDP11, VAX, ETHER: Generalize XQ device address filtering 2021-12-14 11:39:18 -08:00
pdp11_xq_bootrom.h PDP11, VAX: Fix compiler warnings about quotes in #if 0 #endif block 2016-01-20 10:51:01 -08:00
pdp11_xu.c PDP11, VAX: Fix Coverity issues in XQ and XU devices 2022-03-11 12:34:59 -08:00
pdp11_xu.h PDP11, PDP10, all VAX: General extern cleanup. 2017-02-04 19:37:20 -08:00
txt2cbn.c ALPHA, ALTAIR, AltairZ80, I7094, NOVA, PDP1, PDP10, PDP11, PDP18B, PDP8, SAGE, sigma, swtp6800, TX-0, VAX: Change tabs to spaces which had crept in over time 2015-03-30 10:24:24 -07:00