RX02 Bootstrap

From: Pete Turnbull <pete_at_dunnington.u-net.com>
Date: Wed Feb 27 17:58:05 2002

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
Received on Wed Feb 27 2002 - 17:58:05 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:34:49 BST