BansheeControl.mesa
Copyright (C) Xerox Corporation 1984, 1986. All rights reserved.
last edited by prochaska 14-May-86 19:43:1
Tim Diebert: December 2, 1986 3:08:57 pm PST
DIRECTORY
BansheeCodes USING [PrinterCommand, PrinterStatus],
PrincOps USING [PageCount];
BansheeControl: CEDAR DEFINITIONS = BEGIN
TYPEs:
EventContext: TYPE [1];
EngineEvent: TYPE = MACHINE DEPENDENT {readyToFeed(0), feeding, transferReady, imaged, imagedOverrun, pageSyncMiss, pageDelivery, feedError, softError, hardError, timeout, (LAST[WORD])};
EngineDiagnostic: TYPE = MACHINE DEPENDENT{alternatePowerUp(62H), test36(63H), test37, test38, test39, test40, test41, test42, test43, test44, test45, test46, test47Loopback, testStop(6FH),
testPrintRequest(70H), endDiagnosticMode(0FFH)};
from BansheeCodes.PrinterStatus + endDiagnosticMode
EngineDisplayDigit: TYPE = MACHINE DEPENDENT{zero(0), one, two, three, four, five, six, seven, eight, nine, A, L, C, d, E, F, blank(20H)};
EnginePaper: TYPE = BansheeCodes .PrinterStatus[paperLetter..paperEnvelopeRX];
EngineStatus: TYPE = {okay, okayFlushRequired, diagnosticOkay, noPaper, preregistrationJam, fuserJam, noExit, outputTrayFull, feedTrayNotEngaged, clamShellOpen, copyModeOn, noToner, callForService, diagnosticNotReady, offline, communicationFault, imageFault1,
imageFault2, imageFault3, sequenceFault};
LogItem: TYPE = RECORD [
SELECT sort: * FROM
command => [command: BansheeCodes.PrinterCommand],
printerStatus => [printerStatus: BansheeCodes.PrinterStatus],
softwareStatus => [statusExtras: StatusExtras],
plateStatus => [plateStatus: PlateStatus],
ENDCASE];
PlateStatus: TYPE = {okay, bandOverrun, pageSyncMiss};
StatusExtras: TYPE = {okay, communicationFault, imageFault1, imageFault2, imageFault3,
sequenceFault};
variables:
unlimitedAvailable: READONLY BOOLEAN; -- enough real memory for unlimited mode
PROCEDUREs:
Initialize: PROCEDURE [bufferSize: PrincOps.PageCount, enableUnlimited: BOOLEAN];
bufferSize should be a multiple of 16 PrincOps.PageCount.
enableUnlimited is ignored if memory size < 1.5Mb
BandBLTTransferReady: PROCEDURE[];
bandslist/fontload are resident and ready for imaging
WaitEngineEvent RETURNs transferReady event
BandBLTCreatePageTransfer: PROCEDURE [firstPlate: BOOLEAN];
bandslist/fontload are resident - creates page bitmap
utilizes previous page bitmap bands if firstPage is FALSE
PageTransferSet: PROCEDURE[pageNumber: CARDINAL];
Make page bitmap resident and ready for imaging
WaitEngineEvent RETURNs transferReady event
TransferRelease: PROCEDURE[];
release dependancy on transfer
SendEngineCommand: PROCEDURE [command: BansheeCodes.PrinterCommand];
sends command to Banshee
Display: PROCEDURE [digitLS, digitMS: EngineDisplayDigit];
display characters on Banshee display
GetEngineStatus: PROCEDURE RETURNS [engineStatus: EngineStatus];
returns current Banshee engine status
GetEnginePaper: PROCEDURE RETURNS [paper: EnginePaper];
returns type of paper in paper tray
GetEngineFirmwareRevision: PROCEDURE RETURNS [revision: CARDINAL];
returns Banshee IOT firmware revision level
WaitEngineEvent: PROCEDURE [eventContext: REF EventContext]
RETURNS [event: BansheeControl.EngineEvent];
returns when an event occurs
SetToCurrentEventContext: PROCEDURE [eventContext: REF EventContext];
initializes the context to reference the current state of the eventQ
WaitEngineStatus: PROCEDURE RETURNS [engineStatus: EngineStatus];
returns with the new engine status when it changes
WaitLogItem: PROCEDURE RETURNS [logItem: LogItem];
returns with an item to be logged
WaitEngineDiagnostic: PROCEDURE RETURNS [diagnostic: EngineDiagnostic];
returns with the new status when it changes
RunTurnaroundTest: PROCEDURE RETURNS [ok: BOOLEAN];
exercises command/status hardware (assumes loopback cable)
END...
LOG
When / Who / What.
11-Dec-84 1:37:37 / Strickberger / Created.
Strickberger / 14-Feb-85 17:14:15 / Strickberger / Add offline to EngineStatus, fix EngineDiagnostic.
1-Apr-85 22:28:41 / Strickberger / Add okayFlushRequired to EngineStatus - part of ImageFault fix (AR13951).
4-Aug-85 21:37:03 / Strickberger / Add unlimited printing. Update for Pilot 12.
19-Sep-85 18:51:50 / Strickberger / Added enableUnlimited parameter to Initialize.
14-May-86 19:42:37 / Prochaska / Added TYPE EventContext, PROC SetToCurrentEventContext; Added parm to WaitEngineEvent.