File BansheeEngine.mesa
Copyright (C) Xerox Corporation 1984, 1985, 1986. All rights reserved.
last edited by Strickberger 14-Oct-85 16:29:28
Tim Diebert: October 6, 1986 2:08:13 pm PDT
DIRECTORY
BansheeStatus USING [Type],
Interpress USING [Master],
LSEPFace USING [BandBufferCount],
PaperHandling USING [BannerMode, PrintOrder],
PaperTypes USING [Paper],
PrincOps USING [PageCount],
PrintingState USING [Type];
BansheeEngine: CEDAR DEFINITIONS = BEGIN
TYPEs:
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,
firstPage: CARDINAL ← 0, -- pages don't include banner sheet
lastPage: CARDINALLAST[CARDINAL]]; -- and numbering is zero-relative
JobHandle: TYPE = REF Job;
DisplayDigit: TYPE = MACHINE DEPENDENT {zero(0), one, two, three, four, five, six, seven, eight, nine, A, L, C, d, E, F, blank(20H)};
Constants:
maximumBufferSize: PrincOps.PageCount = 16 * LAST[LSEPFace.BandBufferCount];
minimumBufferSize: PrincOps.PageCount = 16 * FIRST[LSEPFace.BandBufferCount];
PROCEDUREs:
Beep: PROCEDURE[];
cause the Banshee to beep once
Display: PROCEDURE [digitLS, digitMS: DisplayDigit];
display characters on Banshee display
GetPageBalance: PROCEDURE RETURNS [balance: CARDINAL];
returns number of pages remaining to be printed in job
GetPaperSize: PROCEDURE RETURNS [paperSize: PaperTypes.Paper];
returns type of paper in paper tray
GetPrintingState: PROCEDURE RETURNS [state: PrintingState.Type];
returns current state (started, stopped, or completed) of job
GetStatus: PROCEDURE RETURNS [status: BansheeStatus.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
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: BansheeStatus.Type];
returns with the new status when an engine message is broadcast
END...
LOG
Who / When / What.
Strickberger / 9-Nov-84 15:12:00 / Created.
Strickberger / 28-Jan-85 16:22:43 / Update to new BansheeFace.
Jacks / 20-Jun-85 17:44:32 / Added copyright notice; updated to PS Euclid interfaces.
Strickberger / 24-Jun-85 14:32:23 / Update to Pilot 12.0.
Strickberger / 17-Sep-85 18:35:12 / Added enableUnlimited parameter to Initialize.
Strickberger / 114-Oct-85 16:29:28 / GetPaperSize returns PaperTypes.Paper instead of PaperTypes.PaperSize.