-- Copyright (C) 1983 by Xerox Corporation. All rights reserved. -- SA4000HeadDummy.mesa, HGM, 3-Jul-85 3:44:11 DIRECTORY Device USING [Type], HeadStartChain USING [Start], PilotDiskFace USING [ DeterminationMode, DeviceHandle, DiskAddress, FormattingUnit, GlobalStatePtr, OperationPtr, Status], PilotDiskFaceExtras USING [FormattingSpec]; SA4000HeadDummy: PROGRAM IMPORTS RemainingHeads: HeadStartChain EXPORTS HeadStartChain, PilotDiskFace, PilotDiskFaceExtras = BEGIN OPEN PilotDiskFace; ControllerHandle: PUBLIC TYPE = MACHINE DEPENDENT RECORD [CARDINAL]; DiskHandle: TYPE = MACHINE DEPENDENT RECORD [CARDINAL]; -- Constants -- nullControllerHandle: PUBLIC ControllerHandle ← [0]; nullDiskHandle: DiskHandle = [0]; nullDeviceHandle: PUBLIC DeviceHandle ← LOOPHOLE[nullDiskHandle]; operationSize: PUBLIC CARDINAL ← 0; -- Public procedures -- DetermineDiskShape: PUBLIC PROC [ DeviceHandle, OperationPtr, DeterminationMode, LONG POINTER] RETURNS [BOOLEAN] = {ERROR}; GetControllerAttributes: PUBLIC PROCEDURE [ControllerHandle] RETURNS [globalStateSize: CARDINAL] = {ERROR}; GetDeviceAttributes: PUBLIC PROCEDURE [DeviceHandle] RETURNS [cylinders, movingHeads, fixedHeads, sectorsPerTrack: CARDINAL] = {ERROR}; GetDeviceType: PUBLIC PROCEDURE [DeviceHandle] RETURNS [Device.Type] = {ERROR}; GetDriveInfo: PUBLIC PROCEDURE [PilotDiskFace.DeviceHandle] RETURNS [ firstPageOfInitialMicrocode: PilotDiskFace.DiskAddress, lastPageOfInitialMicrocode: PilotDiskFace.DiskAddress, firstPilotPage: PilotDiskFace.DiskAddress, formattingSpec: PilotDiskFaceExtras.FormattingSpec, formattingAlignment: PilotDiskFace.FormattingUnit] = {ERROR}; GetFormattingUnit: PUBLIC PROCEDURE [device: DeviceHandle] RETURNS [FormattingUnit] = {ERROR}; GetNextController: PUBLIC PROC [ControllerHandle] RETURNS [ControllerHandle] = { RETURN[nullControllerHandle]}; GetNextDevice: PUBLIC PROCEDURE [DeviceHandle] RETURNS [DeviceHandle] = BEGIN RETURN[nullDeviceHandle]; END; InitializeCleanup: PUBLIC PROCEDURE [controller: ControllerHandle] = BEGIN ERROR; END; InitializeController: PUBLIC PROCEDURE [ controller: ControllerHandle, globalState: GlobalStatePtr, mask: WORD] = {ERROR}; Initiate: PUBLIC PROCEDURE [operationPtr: OperationPtr] = {ERROR}; Poll: PUBLIC PROCEDURE [controller: ControllerHandle] RETURNS [status: Status, op: OperationPtr, retriedCount: CARDINAL] = {ERROR}; Recalibrate: PUBLIC PROCEDURE [device: DeviceHandle] = {ERROR}; Reset: PUBLIC PROCEDURE [controller: ControllerHandle] = {ERROR}; Start: PUBLIC PROCEDURE = BEGIN RemainingHeads.Start[]; END; END....