<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 02 Jan 2011 22:51:21 +0100
From   : rick@... (Rick Murray)
Subject: Patching a CF card patched ADFS

On 02/01/2011 00:35, J.G.Harston wrote:

> There was a big reallocationing sometime in the early 1990s which
> pruned Acorn's huge claimed chunk an rationalised things a bit.

I can see the stable door, but I can't see the horse anywhere...


> HardwareDriverX_ReadSectors, HardwareDriverXX_WriteSectors is all
> that's needed.

I've considered writing a veneer to allow ADFS to "talk" to FileStore 
floppies, but the whole thing just seemed to be complicated. I recall, 
also, some quirk in the link-in code (sorry it isn't specific, it was a 
decade ago - the bit that links in as a filing system) where what the 
PRMs said and what actually arrived were totally different things. My 
code was called when a disc of unknown format was inserted, and it 
attempted to read the first sectors of the disc to ID the disc, but 
regardless of what I set the code to (claim anything as "ours" or say 
"not known"), my code was never called again. It's like ADFS 
(FileSwitch?) called me, ignored the reply, then reported the standard 
"Not understood" response.

I asked around for the DOSFS sources (to see how that worked) but as 
nothing was forthcoming, I gave up.


> The whole point of writing device drivers instead of whole filing
> systems is to leave all the complexity higher up in
> pre-existing code,

...which works to a point. The point being where you need to support 
stuff that ADFS can't do.

You see, the *idea* is that it is supposed to be easy and simple. DOSFS 
shows how. But DOSFS is well within the capabilities of something ADFS 
could do itself if you patch the sources to understand the disc. 
Multi-Gb multi-partition drives, the ability to mount/unmount 
partitions, etc. Does vanilla ADFS do any of this even as yet?


> I can imagine hearing Acorn saying "...but you've just duplicated
> xxx-thousand lines of pre-existing code to re-invent a pre-existing wheel!"

And I can imagine <developer> saying "...no, we duplicated xxx-thousand 
lines of code in order to get it working the way it should have done in 
the first place."


> A single common CDROMFS instead of at least three different CDROMFSs.

Mmmm... I'm aware of three:

1. The Morley version, doesn't do ATAPI as it talks SCSI to a SCSI bus.

2. The lesser Acorn version. Made by somebody else, incidentally.

3. The Warm Silence one, does fancy filenames and such. [though I think
    the later RISC OS (>=4) does this sort of thing too?

Back the the dark ages, CD-ROM drives were notoriously tricky little 
buggers, and tended to need specific drivers. Then ATAPI came along, and 
it took market forces plus a couple of years of procrastination before 
that worked. Even today you'll get units that won't work with harddiscs, 
or refuse to be slave, or rubbish like that. A single common CDROMFS 
might be viable these days (I think the Warm Silence one is a single 
type?) but originally there needed to be... many... and in this case 
even then some things were highly quirked if you didn't have the exact 
sort of drive the FS was written for. I managed to get some sort of 
eesox (sp?) driver to talk to my ancient CD drive, but it never managed 
to eject the platter via code. I had to reach forward (okay, all of a 
matter of inches) and poke the button.


> Quite a bit of it was Acorn letting things run away from them too
> quickly.

Or burying their heads in the sand. Make no mistake, some of the 
technical innovations going on were mind-blowing. Thank God the ARM 
legacy is still with us today. I also believe that small embedded 
devices do not require Linux, they could have used a patched up version 
of RISC OS.

Take a look through my b.log sometime and look at the stuff I've written 
about the Neuros OSD. Basically it is an ARM926 (or something like that) 
bolted to a DSP. 16Mb Flash, 64Mb RAM. SD/CF/USB and network support. It 
is, basically, a fancy video recorder. Sure, people have made it sing 
and dance in cute ways, as it is not unlike a proto Beagleboard. But its 
goal in life is to be a video recorder.
Does it need Debian and Qt4? My god, the install of the more recent of 
the firmwares (that moved to Qt4) requires a CF card to always be 
inserted as the code outgrew the 16Mb Flash.
You tell me a reasonably complete RISC OS, the Ingenient codecs, and 
some UI code couldn't fit into that. Given the base size of RISC OS 3.70 
(and I'd say a fair whack of that stuff wouldn't even be necessary), you 
will probably have space left over. Okay, it won't be as feature-rich as 
the Debian installed, but why the hell am I actually running lighttpd on 
my video recorder?!?

But RISC OS was never really developed that much. Niall Douglas wrote 
some rather interesting code to pre-empt certain things, but I got the 
feeling he was jeered more than applauded, which is a shame as patching 
some of that functionality into RISC OS itself probably wouldn't have 
been terribly difficult. That's not to say a pre-emption hybrid would be 
useful in an embedded device, but these are the things Acorn should have 
been considering. It was a powerful, lightweight, damn-easy-to-use OS 
that could have made in-roads in the embedded scene. Now we're looking 
at "AndroidLite" for these lower end devices (where "whoo, my processor 
is faster than yours" doesn't figure into the equation much).


> I've gone blurry-eyed working my way through FileSwitch/FileCore/
> ADFS code and documentation way too many times. ;)

I went blurry eyed (and slightly insane) trying to decypher the 
paragraphs describing the New Map.


Best wishes,

Rick.

-- 
Rick Murray, eeePC901 & ADSL WiFI'd into it, all ETLAs!
BBC B: DNFS, 2 x 5.25" floppies, EPROM prog, Acorn TTX
E01S FileStore, A3000/A5000/RiscPC/various PCs/blahblah...
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>