This is a continuation of #215, which was "closed as fixed" by @vaxorcist, but not actually fixed in this repo, and I couldn't reopen the issue myself.
To really fix the issue in open-simh, I added a RQDX1 flavor to our RQ device family. As discussed, I also made that version the default in microvax1.
The model ID for RQDX1 I obtained from the list in appendix C of http://www.bitsavers.org/pdf/dec/dsa/mscp/Mass_Storage_Control_Protocol_Ver_2.4.0_Jun92.txt . While having that list, I checked it against our implementation and I noticed some discrepancies. I added some comments in the code, with the goal to discuss them, and resolve that before committing the final version. Here is a copy:
// AFAIK the UNIBUS KLESI and QBUS KLESI used the same controller type ...
#define KLESI_CTYPE 1 // RC25 controller (UNIBUS and QBUS both)
#define KLESI_UQPM 1 // Mass_Storage_Control_Protocol_Ver_2.4.0_Jun92.txt Appendix C:
#define KLESI_MODEL 1 // 1 | HSC50; 3 | RC25 integrated controller
I suppose we should change to 3 here since the model value we have now is for HSC50.
#define UDA50_CTYPE 3 // UNIBUS SDI (RAxx) controller
#define UDA50_UQPM 6 // really type of UDA50A; UDA50 is 2
#define UDA50_MODEL 6
The model value we are using is really for UDA50A, not UDA50. I changed the name in one location in the text as a place holder. Maybe we should change it everywhere. Or maybe the difference is too small to bother.
#define KDA50_CTYPE 6 // QBUS SDI (RAxx) controller
#define KDA50_UQPM 13 // KDA50-Q
#define KDA50_MODEL 13
Here the given name is just slightly different. Probably doesn't matter.
#define KRU50_CTYPE 8 // UNIBUS RRD40/50 CDROM controller
#define KRU50_UQPM 26 // unassigned in appendix C
#define KRU50_MODEL 26
This one doesn't occur in the list at all.
As we have seen in practice, these model numbers don't matter in the vast majority of cases, so we could decide to do nothing about the discrepant cases. Or add a few more models so that we have both versions. Or we just add a pseudo register to access the model number, so that you can set any arbitrary value.
I also deleted a few #defines that were already no longer in use. They related to the selection of the default model, and while previously they did the same as the code that actually did that, they no longer match. So they'd better go.
With these changes, the scenario from #271 also works now: microvax1 uvms.ini 2, using the uvms.ini from comment #271 (comment) , and other files from #271 and #215.
Link to merge request: #278 .
This is a continuation of #215, which was "closed as fixed" by @vaxorcist, but not actually fixed in this repo, and I couldn't reopen the issue myself.
To really fix the issue in open-simh, I added a RQDX1 flavor to our RQ device family. As discussed, I also made that version the default in
microvax1.The model ID for RQDX1 I obtained from the list in appendix C of http://www.bitsavers.org/pdf/dec/dsa/mscp/Mass_Storage_Control_Protocol_Ver_2.4.0_Jun92.txt . While having that list, I checked it against our implementation and I noticed some discrepancies. I added some comments in the code, with the goal to discuss them, and resolve that before committing the final version. Here is a copy:
I suppose we should change to 3 here since the model value we have now is for HSC50.
The model value we are using is really for UDA50A, not UDA50. I changed the name in one location in the text as a place holder. Maybe we should change it everywhere. Or maybe the difference is too small to bother.
Here the given name is just slightly different. Probably doesn't matter.
This one doesn't occur in the list at all.
As we have seen in practice, these model numbers don't matter in the vast majority of cases, so we could decide to do nothing about the discrepant cases. Or add a few more models so that we have both versions. Or we just add a pseudo register to access the model number, so that you can set any arbitrary value.
I also deleted a few #defines that were already no longer in use. They related to the selection of the default model, and while previously they did the same as the code that actually did that, they no longer match. So they'd better go.
With these changes, the scenario from #271 also works now:
microvax1 uvms.ini 2, using theuvms.inifrom comment #271 (comment) , and other files from #271 and #215.Link to merge request: #278 .