On Feb 27, 22:48, Andreas Freiherr wrote:
Also, the last three locations are slightly different,
but this
shouldn't present a problem:
2130 005000 CLR R0
2132 005007 CLR PC (my favourite PDP-11 instruction, really!)
2134 000000 HALT
I've seen one like that too.
> sectors, not two. The reason for missing the
even-numbered sectors is
> because they are software interleaved to give time for the memory
transfers
between reads.
I thought this is done by spacing the sectors on the disk surface (like
1, 13, 2, 14, etc.) and having drive electronics deal with the sector
number from the preamble? Consequently, this would be a property of the
floppy that would be implemented when the media was formatted.
RX02s are usually formatted with the physical sectors in strict order, so
software interleave is used.
> Some versions actually have the HALT elsewhere.
I once spent ages
trying
to work out
the shortest variation on this bootstrap, IIRC I managed to
save just one word.
I think more significant savings could perhaps be obtained by
initializing a stack at the beginning and then using a subroutine like
WAITRX: BIT R0, (R1)
BEQ $-4
BMI ABORT
RTS PC
ABORT: HALT
to wait for any of the TR, ERR or DONE bits to come up, instead of
repeating these instructions every time.
Possibly. But if you work it out completely, I think you'll find you save
very little. Not all of the tests are checking for an error, either.
Since you never set the INTR ENB bit in the RX2CS
register, you just
need to keep your fingers crossed so no other device will issue an
interrupt request... ;-)
Yes :-)
Yes. But this is neither a typo nor a printing error.
If you read four
blocks of 200(8) _words_ each, starting at zero, you fill exactly
2000(8) _bytes_, and the next free location is 2000(8). As you state,
the printed version is prepared for conversion to single density (by
clearing the 400 bit in locations 2036 and 2072, right?) by reading in
four blocks... - So, the reason is somewhat similar to that for the
TS-11.
Yes, but if it's single density, which is the only reason you'd read four
sectors, the sectors are 128 bytes [100(8)] not 256, so it's still only
1000(8).
--
Pete Peter Turnbull
Network Manager
University of York