DIRECTORY Process, Rope; ColorVersatec: CEDAR DEFINITIONS = BEGIN PlotId: TYPE = INT; PlotterFunction: TYPE = {FirstOfMultiPass, MidOfMultiPass, SinglePass}; Color: TYPE = {black, cyan, magenta, yellow}; blue: Color = cyan; red: Color = magenta; maxWidth: INT = 8400; -- 42 inches x 200 pixels per inch StartPass: PROC [ id: PlotId, color: Color, function: PlotterFunction, lengthInScanLines: INT _ 0, width: INT _ maxWidth, timeout: Process.Seconds _ 300 ] RETURNS [ newId: PlotId, bandHeight: [1..256] ]; StippleIndex: TYPE = [0..31]; HLine: TYPE = [0..255]; Stipples: TYPE = ARRAY StippleIndex OF PACKED ARRAY [0..7] OF HLine; SetStipples: PROC [id: PlotId, stipples: Stipples]; RectDesc: TYPE = RECORD [ xMin, xMax: NAT, yMin, yMax: [0..255], stipple: StippleIndex ]; OrBlock: TYPE = RECORD [ lastInBand: BOOL _ FALSE, nRects: NAT, rects: SEQUENCE maxRects: [0..100] OF RectDesc ]; OrBlockRef: TYPE = REF OrBlock; OrBand: PROC [ id: PlotId, block: OrBlockRef ]; OliverByte: TYPE = RECORD [ repeats: [1..16], pattern: PACKED ARRAY [0..3] OF BOOL ]; OliverScanLine: TYPE = RECORD [ nBytes: NAT, bytes: PACKED SEQUENCE maxBytes: NAT OF OliverByte ]; OliverScanLineRef: TYPE = REF OliverScanLine; PlotOliverScanLine: PROC [ id: PlotId, line: OliverScanLineRef ]; BasicScanLine: TYPE = RECORD [ width: NAT, bits: PACKED SEQUENCE maxWidth: NAT OF BOOL ]; BasicScanLineRef: TYPE = REF BasicScanLine; PlotScanLine: PROC [ id: PlotId, line: BasicScanLineRef ]; ResetTimeout, EndPlot: PROC [ id: PlotId ]; Failed: ERROR [reason: Rope.ROPE]; END. ÊColorVersatec.mesa lives on /indigo/chipndale/colorversatec/... E. McCreight and J. Gasbarro, January 24, 1984 1:17 pm [x: 0, y: 0] is the upper left corner of a band, viewed as it rises out of the plotter. x increases rightward; y increases downward. The intervals xMin..xMax and yMin..yMax include the endpoints. The server keeps no leftover lists, so every rectangle in a band must be sent, even if it is an extension of one in a previous band. ʼ˜Jšœ™Jšœ,™,J˜Jšœ6™6J˜šÏk ˜ J˜J˜J˜—šœœ œ˜"Jš˜J˜Jšœœœ˜J˜Jšœœ2˜GJ˜Jšœœ"˜-J˜J˜J˜Jšœ œ Ïc"˜8J˜Jš Ïn œœKœ œ.œ*˜ÌJšœœ ˜Jšœœ ˜Jš œ œœœœœœ˜DJ˜JšŸ œœ"˜3J˜šœ œœ˜JšœË™ËJšœ œ˜J˜J˜J˜—J˜šœ œœ˜Jšœ œœ˜Jšœœ˜ Jšœœœ ˜.J˜—šœ œœ ˜J˜—JšŸœœ#˜/J˜J˜šœ œœ˜Jšœ˜Jšœ œœœ˜$Jšœ˜—šœœœ˜Jšœœ˜ Jš œœœ œœ ˜2Jšœ˜—šœœœ˜-J˜—JšŸœœ)˜AJ˜J˜šœœœ˜Jšœœ˜ Jš œœœ œœ˜+Jšœ˜—Jšœœœ˜+J˜JšŸ œœ(˜:J˜J˜JšœŸœœ˜+J˜J˜Jšœœœ˜"J˜Jšœ˜——…— ¤