-- FloppyChannelInternal.mesa: (last edited by: Luniewski, January 19, 1981 11:06 AM) --
DIRECTORY
DiskChannel USING [PVHandle],
FloppyChannel USING [Status],
PilotFloppyFormat USING [FloppyPageCount],
SA800Face USING [Buffer, DiskAddress, Function];
FloppyChannelInternal: DEFINITIONS =
BEGIN
-- The part of the basic serial read/write access to a floppy disk drive of the SA800 family which is hidden from the client, but not from the Pilot floppy driver.
-- TYPES
OpBlock: TYPE = RECORD [
device: DiskChannel.PVHandle,
--pointer to drive object.
function: SA800Face.Function,
--e.g., readSector, writeSector, readID, writeDeletedSectors, nop, recovery.
address: SA800Face.DiskAddress ← nullAddress,
--disk address.
buffer: SA800Face.Buffer ← nullBuffer,
--client data address.
incrementDataPtr: BOOLEAN ← TRUE,
--FALSE = use same buffer for all sectors.
count: PilotFloppyFormat.FloppyPageCount ← 1];
--number of sectors to transfer.
-- CONSTANTS
maxDrives: CARDINAL = 2;
maxSectorsPerTrack: CARDINAL = 15;
maxWordsPerSector: CARDINAL = 256; -- excludes Troy format
nullAddress: SA800Face.DiskAddress = [0, 0, 0];
nullBuffer: SA800Face.Buffer = [NIL, 0];
-- PROCEDURES
DoRequest: PROCEDURE [pOp: POINTER TO OpBlock]
RETURNS [status: FloppyChannel.Status,
countDone: PilotFloppyFormat.FloppyPageCount];
--Does the real work of the request, including communication with the Face and error handling.
END...
LOG
Time: June 17, 1980 4:18 PMBy: JoseAction: Created file.
Time: September 5, 1980 4:07 PMBy: JoseAction: Added BasicChangeState.
Time: September 15, 1980 2:22 PMBy: JoseAction: Added SimpleRequest, deleted BasicChangeState.
Time: October 10, 1980 3:24 PMBy: JoseAction: Changes for moving runs of pages from driver to head, added constants.
Time: January 19, 1981 11:06 AMBy: LuniewskiAction: Change type of countDone in DoRequest to be a PilotFloppyFormat.FloppyPageCount.