[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: BOOT?
Dave Althoff Jr <dalloff@gcfn.org> wrote:
> David Empson (dempson@actrix.gen.nz) wrote:
>
> : ProDOS: the boot sector loads sector 1, which consists of the second
> : half of block 0. When put together with the boot ROM, there is enough
> : code in 512 bytes to move the head and read arbitrary blocks from the
> : disk. The PRODOS file is read into memory and executed.
>
> : ProDOS's equivalent of RWTS is the 5.25" driver, which is part of the
> : PRODOS file (kernel). It isn't used during the boot process, until the
> : kernel starts running and loads the startup application and/or other
> : initialization files such as ATINIT.
>
> So...does that mean that PRODOS has to be in an arbitrary location on the
> disk, or somewhere on Track 0?
There is absolutely no restriction as to where the PRODOS file is
located on the disk, or how fragmented it might be. The only
requirement is that it has to be a "sapling" structured file (one index
block, and a maximum of 256 data blocks). It can't be a "seedling" file
(single data block) or a "tree" file (two layer index, up to 65536 data
blocks).
> Or is the root directory entry somewhere in the first eight blocks so that
> the loader can know where to seek to in order to find it?
The root directory happens to be completely contained within track 0,
but the code in the boot block is able to read any block on the disk, so
I imagine it would work if you had a nonstandard disk with a larger root
directory. I'd have to look at the code to check whether it can handle
anything other than 4 blocks in the root directory.
> Then too, I'm guessing that the ProDOS kernel is probably a little smaller
> than DOS 3.3 because it is a bit stripped down, as it does not contain
> the usual I/O patches and command interpreter that make up a certain
> amount of the DOS overhead.
The ProDOS kernel is bigger than DOS 3.3: it almost completely fills
12KB of the language card, and also uses about 1KB of the other 4KB
language card bank, and 256 bytes in main memory. DOS 3.3 is about 10.5
KB ($9600 to $BFFF).
The file management code in ProDOS is rather more complicated than DOS
3.3, since it has to deal with subdirectories, timestamps and multiple
storage types for files. There are also some data structures within the
kernel for managing volumes and open files (DOS 3.3 has most of the file
management data storage outside the kernel). Throw in the RAM disk,
interrupt support, QUIT code, clock driver, SmartPort support (in
2.0.x), and it gets rather big.
- Follow-Ups:
- Re: BOOT?
- From: pausch@saaf.se (Paul Schlyter)