<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 17 Oct 2010 21:17:41 +0100
From   : afra@... (Phill Harvey-Smith)
Subject: Fw: DD & HD Floppies

Rick Murray wrote:
> On 17/10/2010 14:44, J.G.Harston wrote:
> 
>> See all the work Beardo has done with HD disk access. It is *very*
>> difficult on a BBC due to the incredibly tight access loops to
>> get the data transfered fast enough, and needs customised hardware
>> and rewritten firmware.
> 
> This might be a stupid question...
> 
> ...but given some of us have experience with microcontrollers and the 
> like, would it not be better to hook some sort of microcontroller to FDC 
> and an old SIMM to "pretend" to be a disc drive, and arbitrate between 
> the slow Beeb and the fast floppy?

I have had the same thought myself a couple of times, and if you chose 
the right microcontroler you might not even need external RAM, as you 
realistically would only need to buffer a sector or two's data if it 
where done correctly. For example the ATMega1284 is available in DIP and 
has 16K of onboard RAM.

It's a real shame that we don't have the original source code to 
DFS/ADFS as it would make this sort of hacking much easier though I 
guess it can't be that difficult as people have managed to hack DFS to 
talk to other media e.g. MMBeeb, DataCentre etc.

> This might be a better solution than "tight code" (eek, so what happens 
> if copying a file off Econet?!) and firmware rewrites.

There shouldn't be a problem as you should only ever be reading or 
writing a block to one device at once, asuming that your tight code is 
operating with interrupts disabled. Someting like :

Begin
   Open source file
   Open dest file
   repeat
     Read a block from net
     Writa block to disk
   until (end of file)
   Close dest file
   Close source file
End

Cheers.

Phill.

-- 
Phill Harvey-Smith, Programmer, Hardware hacker, and general eccentric !

"You can twist perceptions, but reality won't budge" -- Rush.
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>