RavenDriver.mesa
Copyright Ó 1985, 1987 by Xerox Corporation. All rights reserved.
Tim Diebert: April 9, 1987 11:04:35 am PDT
DIRECTORY
Imager USING [Context],
ImagerSample USING [RasterSampleMap],
PrincOps USING [wordsPerPage],
Rope USING [ROPE];
~
BEGIN
PrintingError:
ERROR;
Raised if print engine trouble. Should be used to indicate a retry attempt should be made.
GetPrinterSampleMap:
PUBLIC
PROC RETURNS [sampleMap: ImagerSample.RasterSampleMap];
Provides a Pinned pixelMap for the whole page area.
ContextFromSampleMap:
PUBLIC
PROC [sampleMap: ImagerSample.RasterSampleMap,
fontTunerParms: Rope.
ROPE ←
NIL]
RETURNS [context: Imager.Context];
This proc assumes that the pixelMap is from GetPrinterPixelMap.
PaperFeed: TYPE ~ {bottom, top, alternating};
PrintFromSampleMap:
PUBLIC
PROC [sampleMap: ImagerSample.RasterSampleMap, 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[];