RavenDriver.mesa
Copyright Ó 1985, 1987 by Xerox Corporation. All rights reserved.
Tim Diebert: January 27, 1987 12:17:07 pm PST
DIRECTORY
Imager USING [Context],
ImagerPixelMap USING [PixelMap],
PrincOps USING [wordsPerPage],
Rope USING [ROPE];
RavenDriver: DEFINITIONS
~ BEGIN
GetPrinterPixelMap: PUBLIC PROC RETURNS [pixelMap: ImagerPixelMap.PixelMap];
Provides a Pinned pixelMap for the whole page area.
ContextFromPixelMap: PUBLIC PROC [pixelMap: ImagerPixelMap.PixelMap,
fontTunerParms: Rope.ROPENIL]
RETURNS [context: Imager.Context];
This proc assumes that the pixelMap is from GetPrinterPixelMap.
PaperFeed: TYPE ~ {bottom, top, alternating};
PrintFromPixelMap: PUBLIC PROC [pixelMap: ImagerPixelMap.PixelMap, copies: CARDINAL ← 1, paperFeed: PaperFeed ← alternating]
RETURNS [endingStatus: PrinterStatus, type: StatusType];
Prints to the Raven using data in the pixelMap. Assumes that the PixelMap came from GetPrinterPixelMap.
PrinterStatus: TYPE = Rope.ROPE;
StatusProc: TYPE = PROC [status: PrinterStatus, type: StatusType];
StatusType: TYPE = {normal, error};
SetScanLineLength: PUBLIC PROCEDURE [scanLineLength: (0..PrincOps.wordsPerPage]];
RegisterStatusProc: PUBLIC PROC [sp: StatusProc];
UnRegisterStatusProc: PUBLIC PROC [sp: StatusProc];
RavenRegistration: TYPE = RECORD [ --applies to raven engine
long: RavenRegLong,
short: RavenRegShort
];
RavenRegLong: TYPE = RegistrationTab [10..43]; -- fMargin
RavenRegShort: TYPE = RegistrationTab [1..30]; -- sMargin
RegistrationTab: TYPE = CARDINAL; --unit is registrationTabSize
registrationTabSize: CARDINAL = 6; -- Dictated by Alignment Test Pattern (unit: 6 pixels)
SetRegistration: PUBLIC PROCEDURE [registration: RavenRegistration];
WakeUp: PUBLIC PROCEDURE[];
END.