<> <> <> <> DIRECTORY BasicTime USING [GMT], Disk USING [Channel, Label, PageCount, PageNumber, Status], Rope USING [ROPE]; FormatDisk: DEFINITIONS = BEGIN <> <> <> <> Operation: TYPE = {format, write, read, verify}; BadPage: SIGNAL [page: Disk.PageNumber, correctable: BOOLEAN]; Error: ERROR [page: Disk.PageNumber, status: Disk.Status]; Sweep: PROC [channel: Disk.Channel, operation: Operation, firstPage: Disk.PageNumber, pageCount: Disk.PageCount, label: LONG POINTER TO Disk.Label, data: LONG POINTER]; <> <> <> <> <> <> <> FailureType: TYPE = {emptyFile, firstPageBad, flakeyPageFound, microcodeTooBig, other}; MicrocodeInstallFailure: ERROR [why: FailureType]; InstallInitialMicrocode: PROC [channel: Disk.Channel, getPage: PROC [ptr: LONG POINTER] RETURNS [ok: BOOLEAN]]; <> IdentifyInitialMicrocode: PROC [channel: Disk.Channel] RETURNS [microcodeInstalled: BOOLEAN, time: BasicTime.GMT, name: Rope.ROPE]; <> <> hardUCodeStart: Disk.PageNumber; -- first page reserved for initial microcode hardUCodeSize: Disk.PageCount; -- number of pages reserved for initial microcode altoRegionJargon: Rope.ROPE; -- human-sensible name for reservable Alto disk areas altoRegionsMax: INT; -- largest possible number of Alto regions altoRegionsStart: Disk.PageNumber; -- first page usable for Alto regions altoRegionsSize: Disk.PageCount; -- size of each Alto region altoRegionsBottomUp: BOOL; -- whether preferred layout for Alto starts at beginning of disk <> <> Start: PROC; -- call before accessing exported variables END.