mirror of
https://github.com/open-simh/simh.git
synced 2026-01-13 15:27:46 +00:00
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.