-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PDP11: RP11: Major update after XXDP #303
Conversation
You might want to fix an unusual spelling of "suppoerted". In general, the PR creation comments should be in the commit message so that the thinking behind the changes travels with the repo rather than depending on a particular repo instance/location. Commit messages can be of arbitrary length. Start extra info after a blank line following the summary message and wrap long lines less than 80 characters. |
Thanks. Fixed. Although it's not the first typo in the simh code and def is not going to be the last one. Besides, it was inside a comment so not even exposed.
Redid the commit message to re-state all changes detailed in the PR description. Both changes squashed into a single commit and re-pushed. |
0e76945
to
445155e
Compare
UPD: DEC/X11
No errors detected. |
30185cd
to
1cf73e4
Compare
I rebased this commit on top of the latest commits in open-simh master... Can this please be applied? |
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.
I have run the code thru XXDP and some other OS's and scenarios rigorously, and found discrepancies, which need to be addressed by this rather extensive patch.
INT_SET()
/INT_CLR()
inRPCS
write function (wrong order of the "if
" conditions);a. Post-I/O register values in
RPDA
andRPCA
(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. whenSEEK
error detected);e.
SEEK
incomplete should not respond with "device ready" (however, the condition can be cleared byHOME
, d.);f.
WLOA
-induced write-lock violation wasn't reflected in "device status".WLOA
setup command bug was fixed;There is a DEC/X11
IOMODX
test available (XRPAM0
) but I was still unable to build it successfully [somehow, its linker zeroes the entire XXDP+ drive when creating a file on a DU: (RQ) device -- so the XXDP+ disk image can simply be just corrupt]. But I still have a couple of ideas about it, which I want to explore. If the test builds and shows some additional discrepancies (which I do not anticipate from just looking through the listing), I'll post another patch.