DIRECTORY BansheeCodes USING [PrinterCommand, PrinterStatus], PrincOps USING [PageCount]; BansheeControl: CEDAR DEFINITIONS = BEGIN 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)}; 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}; unlimitedAvailable: READONLY BOOLEAN; -- enough real memory for unlimited mode Initialize: PROCEDURE [bufferSize: PrincOps.PageCount, enableUnlimited: BOOLEAN]; BandBLTTransferReady: PROCEDURE[]; BandBLTCreatePageTransfer: PROCEDURE [firstPlate: BOOLEAN]; PageTransferSet: PROCEDURE[pageNumber: CARDINAL]; TransferRelease: PROCEDURE[]; SendEngineCommand: PROCEDURE [command: BansheeCodes.PrinterCommand]; Display: PROCEDURE [digitLS, digitMS: EngineDisplayDigit]; GetEngineStatus: PROCEDURE RETURNS [engineStatus: EngineStatus]; GetEnginePaper: PROCEDURE RETURNS [paper: EnginePaper]; GetEngineFirmwareRevision: PROCEDURE RETURNS [revision: CARDINAL]; WaitEngineEvent: PROCEDURE [eventContext: REF EventContext] RETURNS [event: BansheeControl.EngineEvent]; SetToCurrentEventContext: PROCEDURE [eventContext: REF EventContext]; WaitEngineStatus: PROCEDURE RETURNS [engineStatus: EngineStatus]; WaitLogItem: PROCEDURE RETURNS [logItem: LogItem]; WaitEngineDiagnostic: PROCEDURE RETURNS [diagnostic: EngineDiagnostic]; RunTurnaroundTest: PROCEDURE RETURNS [ok: BOOLEAN]; 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. ”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 TYPEs: from BansheeCodes.PrinterStatus + endDiagnosticMode variables: PROCEDUREs: bufferSize should be a multiple of 16 PrincOps.PageCount. enableUnlimited is ignored if memory size < 1.5Mb bandslist/fontload are resident and ready for imaging WaitEngineEvent RETURNs transferReady event bandslist/fontload are resident - creates page bitmap utilizes previous page bitmap bands if firstPage is FALSE Make page bitmap resident and ready for imaging WaitEngineEvent RETURNs transferReady event release dependancy on transfer sends command to Banshee display characters on Banshee display returns current Banshee engine status returns type of paper in paper tray returns Banshee IOT firmware revision level returns when an event occurs initializes the context to reference the current state of the eventQ returns with the new engine status when it changes returns with an item to be logged returns with the new status when it changes exercises command/status hardware (assumes loopback cable) Κ΄˜codešΟi™Kš$œ™AKš*™*K™,—J˜J˜šΟk ˜ Kšœ žœ!˜3Kšœ žœ ˜—K˜KšΟnœžœž˜)˜Kšœ™—˜Kšœžœ˜—˜Kš œ žœžœž œˆžœžœ˜Ί—˜šœžœžœž œ“˜½K˜0—Kšœ3™3—˜Kšœžœžœž œ^˜Š—˜Kšœ žœ=˜N—˜šœžœρ˜ƒK˜)——˜šœ žœžœ˜Kšžœ ž˜K˜2K˜=K˜/K˜*Kšžœ˜ ——˜Kšœ žœ%˜6—˜šœžœD˜VK˜——˜Kšœ ™ —˜KšœžœžœΟc(˜O—˜Kšœ ™ —˜šŸ œž œ3žœ˜QKšœ9™9Kšœ1™1—K˜šŸœž œ˜"Kšœ5™5Kšœ+™+——˜šŸœž œžœ˜;Kšœ5™5Kšœ9™9——˜šŸœž œ žœ˜1Kšœ/™/Kšœ+™+——˜šŸœž œ˜Kšœ™——˜šŸœž œ(˜DKšœ™——˜šŸœž œ(˜:Kšœ%™%——˜šŸœž œžœ˜@Kšœ%™%——˜šŸœž œžœ˜7Kšœ#™#——˜šŸœž œžœ žœ˜BKšœ+™+—K˜šŸœž œžœ˜;Kšžœ%˜,Kšœ™——˜šŸœž œžœ˜EKšœD™D——˜KšŸœž œžœ˜AKšœ2™2—˜šŸ œž œžœ˜2Kšœ!™!——˜šŸœž œžœ ˜GKšœ+™+——˜šŸœž œžœžœ˜3Kšœ<™<——˜Kšžœ˜—K˜Kšž˜K˜K˜,˜eK˜lK˜P—K˜RKšœ'žœžœ9˜w—…— zΒ