-- PDDeviceDriver.mesa
-- Michael Plass, April 10, 1984 10:46:09 am PST
 -- Last Edited by: Lamming, December 7, 1983 2:20 pm
 -- Last Edited by: Gasbarro, 4-Apr-84 9:12:39
 
DIRECTORY
 ColorVersatecDriver;
  
PDDeviceDriver: DEFINITIONS
 IMPORTS ColorVersatecDriver
 = BEGIN

Color: TYPE = ColorVersatecDriver.Color;
 
StoreBand: PROC [
 sourcePtr: LONG POINTER TO WORD,
 destOffset: LONG CARDINAL,
 wordCount: LONG CARDINAL,
 color: Color ← Black
 ];
 -- The destination area is referred to by an offset from the beginning of page image storage.
 --
FallenOffTheEndOfHyperspace: ERROR;
ImproperBandAlignment: ERROR;
 --
PrintPage: PROC [
 passBands: ARRAY Color OF NAT,
 nBands: ARRAY Color OF NAT,
 fourColor: BOOLEAN ← FALSE,
 color: Color ← Black
 ] RETURNS [SuccessCode];
 SuccessCode: TYPE = {ok, warning, error};
 -- Returns when page is complete or an unrecoverable error has occurred.
 -- if warning or error, use LastStatus to find out why. May raise BadParameters;
 --
BadParameters: ERROR;
 
DisplayBadStatusInMP: PUBLIC PROC [s: PrinterStatus];
 -- Display bad status in the Dicentra MP

GetStatus: PROC RETURNS [PrinterStatus];
 
Display: PROC [c0, c1: CHAR];
 -- Blanks, digits, and a few different letters can be displayed.
 
PaperSource: TYPE = MACHINE DEPENDENT {bottom(0), top(1)};
PaperStacking: TYPE = MACHINE DEPENDENT {aligned(0), offset(1)};
 
PrinterStatus: TYPE = MACHINE DEPENDENT {
 noStatus(0B), statusRQtimeout(1B), key0(60B), key1(61B), key2(62B), key3(63B), key4(64B), key5(65B), key6(66B), key7(67B), key8(70B), key9(71B), keyClear(72B), keyTest(73B), keyOnLine(74B), keyOffLine(75B), (76B), (77B), warming(100B), standBy(101B), feederFault(102B), (103B), registrationJam(104B), fuserJam(105B), noExit(106B), (107B), interlockOpen(110B), fuserCold(111B), feeding(112B), readyToFeed(113B), displayAcknowledge(114B), parityError(115B), illegalCharacter(116B), illegalSequence(117B), (120B), noPaper(121B), pageSync(122B), pageAtOutputTray(123B), lowToner(124B), goingOffLine(125B), offLine(126B), (127B), outputTrayFull(130B), goingToSleep(131B), statusOverRun(177B)
 };
 
outputTrayFullFlag: BOOLEAN; -- look at these for warnings
lowTonerFlag: BOOLEAN;

END.