*-----------------------------------------------------------
Title[BootDefs.mc...November 23, 1982  1:08 PM...Taft];
* Definitions for microcode and Pilot boot file transfers.
*** Pilot-only version ***
*-----------------------------------------------------------

*-----------------------------------------------------------
* Register usage -- Alto Emulator registers
*-----------------------------------------------------------
SetRMRegion[BBRegs];		* BitBlt registers used as temporaries

* Used throughout Initial and Pilot booting:
	RVN[BootDataPtr];	* Memory address for boot file transfer

* Used only during calls to BootTransfer:
	RVN[IOCB];		* -> disk IOCB throughout boot sequence
	RVN[DMBLink];		* Return link
	RVN[BTemp0];		* Temporaries
	RVN[BTemp1];
	RVN[BTemp2];

* Note: disk and ether drivers for Initial microcode use additional registers.


*-----------------------------------------------------------
* Data structures
*-----------------------------------------------------------

* Pilot definitions, from Boot.mesa and PhysicalVolumeFormat.mesa:

* -- Root page of physical volume, at real disk address 0
* Descriptor: TYPE = MACHINE DEPENDENT RECORD [
MC[Desc.seal, 0];		* seal: CARDINAL ← 121212B,
  MC[DescSealValue, 121212];
MC[Desc.currentVersion, 1];	* currentVersion: CARDINAL ← 6,
  MC[DescCurrentVersionValue, 6];
				* -- other stuff not referenced by microcode
				* bootingInfo: PVBootFiles,
				* ... ];

* PVBootFiles: TYPE = ARRAY BootFileType OF DiskFileID;
* BootFileType: TYPE = {hardMicrocode, softMicrocode, germ, pilot}
MC[Desc.bi.softMicrocode,  21];	* = @Descriptor.bootingInfo[softMicrocode]
MC[Desc.bi.germ, 32];		* = @Descriptor.bootingInfo[germ]

* DiskFileID: TYPE = MACHINE DEPENDENT RECORD [
MC[DFID.fID, 0];		* fID: File.ID,
MC[DFID.firstPage, 5];		* firstPage: File.PageNumber,
MC[DFID.da, 7];			* da: DiskAddress];