-- FormatTrident.mesa (edited by: Taft on: 20-Jun-82 16:38:57) DIRECTORY PhysicalVolume USING [Handle, PageNumber], System USING [GreenwichMeanTime]; FormatTrident: DEFINITIONS = BEGIN DiskPageNumber: TYPE = PhysicalVolume.PageNumber; FailureType: TYPE = { emptyFile, firstPageBad, flakeyPageFound, microcodeTooBig, other}; BadPage: SIGNAL [p: DiskPageNumber]; MicrocodeInstallFailure: SIGNAL [m: FailureType]; -- Generated upon install error. If resumed, InstallBootMicrocode will "eat" the -- remaining input (until NIL) and then return. NotTrident: ERROR; Format, Scan: PROC [ h: PhysicalVolume.Handle, firstPage: DiskPageNumber, count: LONG CARDINAL]; -- Format disk (write headers, labels and data, verify all) -- or Scan (verify headers, read all labels and Data). Do -- [firstPage..firstPage+count) IdentifyInitialMicrocode: PROCEDURE [h: PhysicalVolume.Handle, s: STRING] RETURNS [microcodeInstalled: BOOLEAN, time: System.GreenwichMeanTime]; InstallBootMicrocode: PROC [ h: PhysicalVolume.Handle, getPage: PROC RETURNS [LONG POINTER]]; -- Install microcode on reserved Initial region of the disk. Repeatedly calls NextPage -- until NIL is returned. Copies the information out of the page and does -- the magic. Returned pointer must be page-aligned and point to a resident page. -- Layout of disk partitions, and Pilot volumes within partitions, etc. Partition: TYPE = [1..5]; pagesInPartition: DiskPageNumber = 815*28; -- one surface of the disk pagesReservedInPartition1: DiskPageNumber = 3*28; -- 3 cylinders physical volume overhead firstHardUCodePage: DiskPageNumber = 4; -- start of reserved Initial microcode region hardUCodeSerial: LONG CARDINAL = 064732B*200000B + 064732B; -- fixed FileID END. LOG Time: May 30, 1980 6:41 PM By: Forrest Action: Eliminated Dependence on DiskChannel. Added layout fake Alto volume info.Trimmed log to Amargosa. Time: June 28, 1980 1:40 PM By: Forrest Action: Changed to use PhysicalVolume.Handle; Add SA1000. Time: December 11, 1980 11:43 AM By: Taft Action: Create for Dorado from FormatSA1000andSA4000.mesa Time: January 25, 1981 2:43 PM By: Taft Action: Multi-partition Pilot volumes 12-Jun-81 16:48:36 Taft Mods for new Othello organization 17-Jun-82 10:37:01 Taft Put back InstallBootMicrocode; add firstHardUCodePage, hardUCodeSerial 20-Jun-82 16:16:43 Taft Add IdentifyInitialMicrocode