On Sat, May 04, 2013 at 02:49:18PM +0200, Sytse van Slooten wrote:
Strangely, if I google that, it comes up with a
reference to Ersatz-11 from
1994 which appears to describe exactly the same behaviour - only then on RL,
apparently. See
ftp://minnie.tuhs.org/pub/PDP-11/Sims/Ersatz-1.1beta/Old/e11beta.txt
If I remember right, the problem was that I had transferred an 11M+ disk
using RT-11, which interpreted the first few locs of the home block as a
bad block replacement table, and scrambled the disk slightly. So that messed
up the home block, and RSX fell back on the official rule of looking for a
valid home block every 256 blocks. Or something. So my (possibly optimistic)
recollection is that the bug turned out not to be in E11 itself, but in how
I copied the disk using a real PDP-11 (which is unlikely to be what's biting
you).
Anyway so my guess is that RSX rejects a home block if it *either* gets a
read error from the controller, *or* finds something wrong with the data in
software (I forget whether there's a checksum, but anyway there's a signature
and a bunch of other things that could fail a range check). Finding the code
that does that and stepping through it (or at least doing breakpoints on both
SW-emulated and HW-emulated machines and seeing if they both get to the same
places) could be illuminating.
I'm sure you've got things well in hand with simh but if I can help at all
using E11 I'd be happy to. Tracing out annoying stuff like this and catching
it in the act is basically my whole life at this point! I've added LOG /PC
for the next release so pinpointing the PDP-11 code that sends a command to
a peripheral (and then dislikes the results) is stupidly easy.
John Wilson
D Bit