Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PDP11: RP11: Major update after XXDP
Having run the device code thru XXDP and some other OS's and scenarios rigorously, a bunch of discrepancies were found, which need to be addressed by this rather extensive patch. 1. Each unit must implement its own "drive status" register, to be able to track per-drive errors / conditions correctly; 2. Fixed INT_SET() / INT_CLR() in RPCS write function (wrong order of the "if" conditions); 3. Some behavior was implemented not exactly how it was expected from the real hardware, such as: a. Post-I/O register values in RPDA and RPCA (including the corner case of pack overflow); b. I/O stacking, which wasn't mentioned in any available documentation, but only XXDP listings; c. RESET/IDLE function must be accepted for a "busy" controller; d. HOME function must always execute, even when "device ready" is not set (e.g. when SEEK error detected); e. SEEK incomplete should not respond with "device ready" (however, the condition can be cleared by HOME, d.); f. WLOA-induced write-lock violation wasn't reflected in "device status". 4. Some timing was off so that the device worked "too fast" -- this was fixed (except for the pathological cases when the races are in the actual test code, and cannot be logically fixed); 5. WLOA setup command bug was fixed; 6. Added more code comments found per the above peculiarities.
- Loading branch information