Another RL bug fixed

It isn’t long ago that Robert Keck reported that he’d found the issue in the RL11 core that stopped RT-11 from booting, and now there’s another fix to report on.

This one was found from the new MINC images that were added to Bitsavers in October – more on that later; this bit of the story is just how a freshly installed RL02 image would work fine on simh but not on PDP2011.

After some serious debugging, I could narrow the issue down to that there was a mismatch in the cylinder that the software thought the drive should be on, and the value that the logic maintains – in the real hardware, that would be the position of the heads in the drive.

First I thought that the cause might be an over- or underflow of the drive position; the old logic would just wrap around if you’d tell it to seek down from cylinder 0, and simh had some statements to stop that. But while a fix to that effect did change the behaviour somewhat, it didn’t completely fix the problem.

A bit later I noticed that the software issued a reset instruction just prior to the problem occurring. That pointed me to the logic that clears the registers in the RL11 controller – and yes, that also included the internal representation of the head position in the drives. So I took that out, and surprise – everything just worked.

The actual fix that the MINC software needed turned out to be just the ‘reset without clearing head and cylinder’; the ‘over- and under’ fix wasn’t needed. But I left it in for good measure.

As before, for now I’ll just add the updated source for the RL11 here; a new full release with lots of new stuff should be coming up some time this season. But not just yet, there’s too many things to finish.

Leave a Reply