[Simh] More on the RK611

Bob Supnik bob at supnik.org
Sat Aug 31 15:52:54 EDT 2013


The RK611 is modeled as though it was a monolithic controller, a la the 
RP series, in which all the state in both the controller and the drives 
is interrelated and constantly interlinked. In fact, this is not true. 
The RK611 is a command-response model; status from the drive is only 
available in response to a command. Thus, when state in the controller 
is altered WITHOUT a command (eg, controller clear), the existence of 
state in the drives cannot be seen.

What this means is that the update_hkcs  and update_hkds routines are 
basically wrong. The former can only look at state within the 
controller. The latter can only look at state within the drive. 
Information about drive errors is dynamic: it has to be captured when 
generated, and after that, from the point of view of the controller, 
"it's gone." In particular, if DTER (drive type error) is generated by a 
command, it "persists" in the drive, but the actions that resulted in 
the controller (setting combined error) are ephemeral. A subsequent 
controller clear will clear combined error, even though the "drive type 
error" still exists in the drive.

So when errors are set, all related consequences (setting ATA if 
appropriate, setting CERR if appropriate) must be done at the time, and 
not in the master update_hkcs routine. update_hkcs can only deal with 
controller state.

This will result in a lot of small changes throughout the HK simulator. 
I've started in, and the result passes an initial smoke test with RT11; 
but then again, RT always worked. The real tests are RSTS, RSX, and VMS.

/Bob



More information about the Simh mailing list