Date : Wed, 26 Oct 2005 18:58:27 +0100 (BST)
From : Pete Turnbull <pete@...>
Subject: Re: BBC using 3.5 high density format
On Oct 26 2005, 16:07, Richard Gellman wrote:
> Paul J wrote:
>
> > Has anyone had a go at getting a 3.5 high density drive working
> > at high density capacity ?
> *comes out from behind the pete-turnbull-proof wall*
No need to hide, 'cos I'll support you on this one :-)
> Two things spring to mind:
>
> 1) The Master 128 (possibly also the BBC B?) has a 16Mhz clock
generator
> already. VIDPROC downsteps it to 8, 4, 2, and 1Mhz clocks (as this is
> VIDPROC, it suggests the B has it too).
Yup, they all do, Beeb, B+, Master. The input to the VIDPROC on pin 8
is 16MHz, and on a Beeb, it's also fed to the serial ULA to generate
the baud rate clocks.
> 2) You wouldn't necessarily need a modified ADFS ROM. Since the disks
> are HD, the PC floppy drive will read them happily (at least in terms
of
> density). You only need a PC program to re-format them to 256-byte
> sectors (PCs use 512-byte sectors), and "inject" the root directory.
>
> From working with the 1770 emulation in BeebEm, ADFS only uses the
read
> sector(s)/write sector(s) commands for data access, which don't take
> into account the layout data either side of the sector (sector ID,
etc)
> - they simply read in n sectors x b bytes-per-sector bytes on a
req/ack
> basis.
Indeed, the only things I've ever seen on a Beeb that use anything else
are disk analysers and format programs -- and you could even write a
format program to do the appropriate number of 256-byte sectors.
> Once such a disk is made therefore, it should "just work" (tm). Of
> course, if you want the fully independent mode of operation, then
yes, a
> patched ADFS is required ;)
You'd want that to make the free space work properly and make use of
the extra sectors in each track. Perfectly do-able, though; there are
other patched ADFS versions; even a patched ADFS for HD on an
Archimedes.
The only problems might be:
-- availability of the faster 1770-type controller. I know the Atari
used a particular fast version, the WD1772-PH-02-02 (note the extra
"-02" on the end). There is (or used to be, I can't find it now) a
similar upgrade on the net for an Archimedes that uses the same chip,
and they're very hard to get now.
That upgrade uses the fast 1772 as the cont5roler and an LS TTL
multiplexer to do the density switching under software control.
-- and the speed of the Beeb, to keep up with the faster data rate.
I've not worked it out for a 6502, but some years ago I set about
designing and building a floppy controller for a Z-80 based machine
that had never had one. I had a real problem getting the read loop
tight enough to manage MFM (double density) on a 2.5MHz Z80. I seem to
remember resorting to some trickery with the hardware to get it to work
properly, though it's easy on a 4MHz Z80A. Now, as a very approximate
rule of thumb, a Z80 at any given clock speed manages about as many
useful instructions per second as a 6502 at half that clock speed
(because of the different ways the clocks are used). So MFM is easy
enough for a 6502A at 2MHz, but might not be for a 6502 running at a
bit over 1MHz; that implies that HD MFM, which is twice the data rate
of DD MFM, might not be a go-er on a 2MHz 6502A, perhaps needing
something more like 3MHz. Someone who has more knowledge than I of the
inner workings of ADFS and is on more intimate terms with the timing of
the instructions in the read loop might have a more useful opinion.
If that's a problem, you could solve it by throwing some more hardware
at it, but then it wouldn't be such a simple and attractive drop-in
replacement.
--
Pete Peter Turnbull
Network Manager
University of York