mirror of
https://github.com/open-simh/simh.git
synced 2026-02-13 11:34:39 +00:00
It looks like disk controllers, which automatically update disk address (DA) after completion of I/O, are expected to do so even if there was no data transfer because of I/O errors. I was studying RSX-11's Error Logger documentation and examples are clearly offsetting disk addresses backwards by one when I/O errors are reported by the controller. Since once the controller has found the DA-specified sector, the I/O begins regardless of the condition of the sector (bad or good data) or ability to transfer the contents between the disk and the memory. If an error occurs (NXM, for instance) the operation would stop (with the error reported) at the end of the sector. So if, for example, the bus address register had a bad address from the get-go, no data would be able to transfer at all, yet DA should still be updated with DA + 1 once the controller asserts the DONE bit. This patch makes sure that DA is always advanced when I/O has actually been commenced.
63 KiB
63 KiB