-- 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....