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

Re: ProDOS Kernel Rewritten



Bryan Parkoff <BParkoff@satx.rr.com> wrote:

> > Bryan,  it is not necessary for a disk to be addressed below the block
> level,
> > which for ProDOS is 512 bytes.  Simply adding another high-order disk
> > address byte will get you 256x32MB or 8GB addressable capacity.
> 
>     What do you mean 256x32MB?  Is it like 256 sectors?  It may be over
> hundred thousand sectors.  It will allow 1024 bytes per sector instead of
> 512 bytes per sector or higher that will improve performance when it
> accesses to read and write faster.

If you change the block size, you will have to rewrite _all_ ProDOS-8
applications, because the open file interface to the ProDOS kernel only
provides a 512 byte buffer for holding the current block being accessed.
(The alternative would be to store the sector buffer elsewhere in
memory, but there isn't any memory available in a 128K Apple II to do
this, without breaking compatibility with existing applications in some
other way.)

You would also have to rewrite the firmware on all disk controller cards
(including SCSI interface cards, etc.), as they also assume a block size
of 512 bytes.

There are quite a few cards available (e.g. Apple's SCSI cards) which
support the SmartPort firmware interface.  SmartPort is a well
established standard which supports accessing block devices with 512
bytes per block and up to 24 bits for the block number (32 bits for a
SCSI card running on a IIgs).

A 24-bit block number will allow up to 8 GB of data to be addressed.  (A
32-bit block number would be 2 TB.)

It would probably be a good idea to limit the maximum file size to 2 GB
or 4 GB, so that applications don't have to deal with numbers larger
than 32 bits for keeping track of file positions, etc.  The volume size
could be larger, as that doesn't need to count bytes, only blocks.

-- 
David Empson
dempson@actrix.gen.nz