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

Re: Native /// bootstrapping?



schmidtd wrote:
> Jeppson has a pretty good discussion of the boot sequence:
> "Boot Sequence: On power-up, or after control-reset, the boot process
> begins in ROM#1 (ROM#2 doesn't yet exist). Low-level diagnostics are
> performed. Then block 0 is read from the disk in the built-in drive.
> This is the SOS boot code and is present on every disk that has been
> formatted by the System Utilities program. It must be present for a
> successful boot. It consists of one block of "absolute" code and is
> loaded into the computer at $A000, where it begins to run.
> 
> The boot code begins by locating and switching in the highest bank of
> RAM. Then it goes back to the disk and loads in five more blocks
> (blocks 1..5). These are placed in $A200..ABFF. Block 1 currently
> contains all zeros; blocks 2..5 are the disk directory. The boot code
> then scans the directory and locates SOS.Kernel, which it loads into
> memory at $1E00..73FF."

And SOS.KERNEL has a header similar to but more complex than SOS.INTERP. 
The bootstrap does check for the header (I checked the ProDOS-8 1.7 source
for this).  I got the SOS.INTERP voodoo working, though.

> Have you seen the dealer diagnostic diskette?  It boots a /// and
> makes it look almost like an Integer-wielding ][:
> http://apple3.org/Software/system/Apple3Diagnostics.dsk

I haven't, but will look at it.

I've *almost* got the hang of ProDOS-8, which is why I want to continue to
use it rather than the more complex SOS.

-uso.