----------------------------------------------------------------------------
		SOLO Boot procedure
----------------------------------------------------------------------------

Various notes, to some day be put into a real formal document,
with a lot more information.


  o	ShagBoot is the boot sector, which resides on either the
	first sector of a floppy disk, or in the MBR of the harddrive,
	or in the boot sector of a partition.   It contains a small map
	of the mapfile (8 chunks), and the index of the boot program.
	See 'notes' for the  definition of a 'chunk'.

  o	Shagboot loads the mapfile at MAP_ADR (see 'boot.h'),
	and then uses the boot program index to load the boot
	program (or boot loader), which is usually 'solo.bin'.
	This program is loaded at LOAD_ADR, and then executed
	with 'dl' containing the boot device id.

  o	When an executable filename is typed at the SOLO prompt,
	SOLO checks the header, and checks the CPU type to make
	sure that at least a 386 is used for protected mode 
	386 programs.  It then loads the file at INIT_ADR. 

  o	The command string is parsed into an argv[] array, and
	all the parameters in the BootParam structure are set.

  o	Protected mode is turned on (A20 gate, interrupt remapping
	and everything else), and virtual memory is set up to
	map the executable to the address it was set to be run
	at when it was linked.  Then the executable is called at
	its entry address, with 'ebx' set to point to PARAM_ADR,
	where the BootParam structure is.  

  o     The program can exit by returning or calling 
	bootparam->exit() with an exit value, at which time	
	everything returns to real mode, and back to the SOLO shell.

  o	For more details, type help on booting, bootsector, mksolo,
	partitions, etc, in SOLO.  Or search through the file
	'solo.hlp' (which comes in 'sys/boot/m-pc' in the source tree,
	and 'sys/boot' in the binary tree) to look up the information
	without running SOLO.


