File RavenEngine.mesa
Copyright Ó Xerox Corporation 1981, 1982, 1983, 1984, 1985, 1986, 1987. All rights reserved.
last edited by Strickberger 17-Sep-85 18:33:17
Tim Diebert: March 31, 1987 9:14:31 am PST
DIRECTORY
Interpress USING [Master],
LSEPFace USING [BandBufferCount],
PaperHandling USING [BannerMode, PaperFeed, PaperStacking, PrintOrder, RavenRegistration, TwoPaperSizes],
PrincOps USING [PageCount],
PrintingState USING [Type],
RavenStatus USING [Type];
RavenEngine: CEDAR DEFINITIONS = BEGIN
Job:
TYPE =
RECORD [
banner: PaperHandling.BannerMode ← oncePerDocument,
printOrder: PaperHandling.PrintOrder ← lastPageOutFirst,
copyCount: CARDINAL ← 1,
document: Interpress.Master, -- for lack of anyting bettter for BandBLTImage.Handle,
paperFeed: PaperHandling.PaperFeed ← fromBottom,
firstPage: CARDINAL ← 0, -- pages don't include banner sheet
lastPage: CARDINAL ← LAST[CARDINAL], -- and numbering is zero-relative
paperStacking: PaperHandling.PaperStacking ← aligned];
JobHandle: TYPE = REF Job;
PaperTraySize: TYPE = {unknown, small, large};
bandBufferSize: PrincOps.PageCount = 16; -- From BandBLT
maximumBufferSize: PrincOps.PageCount = bandBufferSize * LAST[LSEPFace.BandBufferCount];
minimumBufferSize: PrincOps.PageCount = bandBufferSize * FIRST[LSEPFace.BandBufferCount];
Beep:
PROCEDURE[];
cause the Raven to beep once (if printer option installed)
DeclarePaperSupply:
PROCEDURE [paperSupply: PaperHandling.TwoPaperSizes];
sets global variable recording type of paper in top and bottom trays
DozeOff:
PROCEDURE[];
"issues" doze-off command to the printer
GetPageBalance:
PROCEDURE
RETURNS [balance:
CARDINAL];
returns number of pages remaining to be printed in job
GetPaperTraySizes:
PROCEDURE
RETURNS [bottom, top: PaperTraySize];
returns the sizes of the two paper trays (if printer option installed)
GetPrintingState:
PROCEDURE
RETURNS [state: PrintingState.Type];
returns current state (started, stopped, or completed) of job
GetStatus:
PROCEDURE
RETURNS [status: RavenStatus.Type];
returns current printer status
Initialize:
PROCEDURE [bufferSize: PrincOps.PageCount, enableUnlimited:
BOOLEAN];
bufferSize should be a multiple of 16 Environment.PageCount.
enableUnlimited is ignored if memory size < 1.5Mb
SetJob:
PROCEDURE [job: JobHandle];
sets the implementation's internal job handle to the value passed as a parameter
SetPrintingState:
PROCEDURE [state: PrintingState.Type];
sets next state of job
SetRegistration:
PROCEDURE [registration: PaperHandling.RavenRegistration];
sets page offsets
WaitPrintingState:
PROCEDURE [targetState: PrintingState.Type, targetEqual:
BOOLEAN]
RETURNS [state: PrintingState.Type];
returns when current job achieves desired relationship (equal or not equal) with the target state
WaitStatus:
PROCEDURE
RETURNS [status: RavenStatus.Type];
returns with the new status when an engine message is broadcast
WakeUp:
PROCEDURE;
"issues" wake-up command to the printer
LOG
Who / When / What.
Claude Pany / 1981 / Created.
19-Oct-82 10:31:08 - Trowell - added documentation, changed range in RegistrationLong
Strickberger / 15-Sep-83 17:58:49 / Decompose ← BandBltImage
Strickberger / 16-Dec-83 18:18:57 / PS 8.0 interfaces. Merged in RavenControl.
Jacks / 18-Sep-84 10:23:07 / Updated to PS 9.0 interfaces.
Jacks / 20-Jun-85 17:39:44 / Added copyright notice; updated to PS Euclid interfaces.
Strickberger / 31-Jul-85 13:53:17 / Updated to Pilot 12.0. Added Beep and GetPaperTraySizes. Removed reeneteringRepairMode from initialize.
Strickberger / 17-Sep-85 18:33:17 / Added enableUnlimited parameter to Initialize.