Date : Wed, 07 Jan 2004 08:07:00 +0000
From : jgh@... (Jonathan Graham Harston)
Subject: Re: IDE Interface for BBC
Mike Tomlinson <mike@...> wrote:
> <jgh@...> writes:
> >I'm building a prototype IDE interface for the BBC. I think if I'm careful
> >I can get it down to a two-chip solution.
>
> Two chips is great. What about software - would you write your own FS
> ROM, or could you write a "shim" ROM to make your interface work with
> the Acorn ADFS?
I don't need to write my own FS, I've already written one, see
http://www.mdfs.net/Software/HADFS. I've also identified where ADFS
accesses the SCSI interface so I can reply the code with code to access
the IDE card. HADFS already has the relevent entry points to access extra
storage devices, such as a hard drive or a RAM disk. I never got around
to adding Acorn SCSI support because programming the Acorn SCSI card is
such a b*tch. With IDE it's essentially:
?IDE_Sec=sector:!IDE_Cyl=track:?IDE_Head=head:?IDE_Cmd=IDE_Read
FOR A%=0 TO 511 STEP 2:dest%?A%=IDE_Data?0:dest%?(A%+1)=IDE_Data?8:NEXT A%
With Acorn's SCSI card it more like:
REPEAT:UN.(?SCSI_Status AND x)=something
IF?SCSI_Status=y THEN GOTO error
?SCSI_Cmd=SCSI_Read
REPEAT:UN.(?SCSI_Status AND x)=something
IF?SCSI_Status=y THEN GOTO try again
?SCSI_Cmd=SCSI_something
REPEAT:UN.(?SCSI_Status AND x)=something
IF?SCSI_Status=y THEN GOTO error or maybe try again
... but a lot more fiddly...
> >whether I should put the two data registers next to each other in the i/o
> >map, or 8 locations apart?
>
> I prefer the A3 option as the locations are all consecutive, apart from
> the disk data.
>
> >* Ignore the high byte. Each 256-word sector holds 256 bytes of data in
> >the low byte, and the high byte is ignored.
>
> Hard drives are large enough nowadays that the loss of half the capacity
> isn't a problem. This simple 8-bit IDE interface for the Sinclair
> Spectrum does it like this (with one chip) - this may give you some
> ideas: http://members.tripod.com/~piters/simpif.htm
That was my inspiration. In fact, the BBC IDE interface can be reduced to
one chip, just like the Spectrum one, but then it would clash with my
other 1MHz bus hardware. My MIDI interface would cause strange noises to
be made every time a file was loaded!
> Hope your soldering is a bit better than his, though:
> http://members.tripod.com/~piters/pics/HD_interface.jpg
> And if you liked that, this picture should give you nightmares:
> http://members.tripod.com/~piters/pics/Speccy.jpg
I know! Shudder! I've very much of the school of plugging everything
into existing sockets, and tamper with the motherboard as little as
possible.
> (note how the memory has been replaced with two chips. Wonder what the
> breadboard in the top LH corner of the Spec, where the modulator would
> have been, is? An RGB interface?)
It seems to be a 1vp-p video output, like the Beeb's next to the RGB
socket. Why not just use the existing connections? Maybe it's specially
balanced or something.
Kris Adcock <kris@...> wrote:
> Have you considered building a system which would 'fake' a floppy drive?
> I'd always hoped to build a HD interface which plugged into the floppy
> port (or perhaps even replacing the floppy controller, as I think such a
The floppy interface is much too specialised. It would need fake track and
sector counter registers, data serialiser and deserialiser, base track
offset register. Its possible, but more of a job for a programmable
peripheral, maybe PIC based.
> you split the drive up into floppy 'images', and maybe had the current
> image selectable on a simple control-panel affair, the BBC wouldn't know
> the difference. Or would it be simpler to write your own FS ROM?
I'm intending to allow disk images to be mountable, so they can then be
accessed as though they were a disk. *MOUNT 0 $.Games.Chuckie, or
something.
--
J.G.Harston (JGH BBC PD Library) 70 Camm Street, Walkley, SHEFFIELD S6 3TR
jgh@... - Running on BBCs & Masters with SJ MDFS FileServer
Z80+6502/CoPro+Tubes/Econet+SJ - - - - - - - http://www.mdfs.net/User/JGH/