[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Ewen Wannop's ProDOS Directory Info



Roger Johnstone replied:

>In <20040219034144.11576.00002170@mb-m12.aol.com> Michael J. Mahon wrote:
> 
>> Perhaps the designers were simply hinting at the maximum
>> size they expected for _any_ directory, by enforcing it for
>> the Volume Directory.  Linked-list searches on disk are not
>> a very efficient data organization for directory lookups.
>> 
>> A fixed-size directory of four contiguous blocks allows for
>> a lookup routine to read the entire directory in as a single I/0
>> (or at least, without having to seek), then search in the buffer.
>
>A think you're likely right with your last statement. Whereas DOS was 
>stored on the disk as a nice easy-to-load set of complete tracks at the 
>start of the disk, with ProDOS the OS is stored in a file which can be 
>anywhere on the disk. The only restriction is that the directory entry 
>has to be in the root directory.
>
>So the code stored in the boot blocks has to be able to find the OS file 
>and load it into memory, and this code has to fit into just two blocks. 
>Apple's original boot code would load PRODOS if it was booted on an 
>Apple II, or SOS.KERNEL on an Apple III. Most formatting programs, 
>including later ones from Apple, dropped the Apple III support. On these 
>disks the boot code fits in just the first boot block, or less than 512 
>bytes. It's hardly suprising they wanted the root directory to be in a 
>fixed location!

Of course, at least the first block of the Volume Directory _must_
be in a fixed location, so that it can be located.  (Or a pointer to it
must be in a fixed location, etc., etc...)

-michael

Check out amazing quality sound for 8-bit Apples on my
Home page:  http://members.aol.com/MJMahon/