-- PDFileFormat.mesa -- Created March 14, 1983 -- Michael Plass, April 29, 1983 11:01 am -- Tim Diebert, 25-Apr-86 13:39:37 PDFileFormat: DEFINITIONS = BEGIN passwordValue: CARDINAL = 125252B; versionValue: CARDINAL = 1B; DeviceCode: TYPE = MACHINE DEPENDENT { invalid(0), raven300(1), raven384(2), o3(3), plateMaker(4), o5(5), puffin(6), colorVersatec(7), versatec(8), color400(9), c150(10), d4020(11), bw400(12), o13(13), o14(14), o15(15), last(LAST[CARDINAL]) }; Herald: TYPE = MACHINE DEPENDENT RECORD [ password(0): CARDINAL ¬ passwordValue, version(1): CARDINAL ¬ versionValue, deviceCode(2): DeviceCode ¬ invalid, sResolution(3): CARDINAL, fResolution(4): CARDINAL, imageSSize(5): CARDINAL, imageFSize(6): CARDINAL, bandSSize(7): CARDINAL, maxLoadWord(8): LONG CARDINAL, copies(10): CARDINAL ]; Typ: TYPE = MACHINE DEPENDENT {control(0), imaging(2)}; ImagingCom: TYPE = MACHINE DEPENDENT { maskSamplesRef(0), maskRunGroupRef(1), maskRectangle(2), maskTrapezoid(3), maskRunGroup(4), maskSamples(5), colorSamples(6) }; ControlCom: TYPE = MACHINE DEPENDENT { startImage(0), setPriority(1), setColorInk(2), setColorClear(3), setColorTile(4), endBand(5), endDocument(6), storeLoad(7), deviceCommand(8) }; transparentFlag: [0..1] = 1; opaqueFlag: [0..1] = 0; Command: TYPE = MACHINE DEPENDENT RECORD [ command(0): SELECT typ(0:0..1): Typ FROM imaging => [com(0:2..7): ImagingCom, addrHighBits(0:8..15): [0..256) ¬ 0], -- addrHighBits is used by the maskSamplesRef and maskRunGroupRef -- commands. control => [com(0:2..7): ControlCom, rest(0:8..15): [0..256) ¬ 0] -- rest is used by the setPriority and setColorTile commands. ENDCASE ]; SampleArray: TYPE = MACHINE DEPENDENT RECORD [ sSize(0): CARDINAL, fSize(1): CARDINAL -- Followed by the actual scan lines, each padded out to a word. ]; Tile: TYPE = MACHINE DEPENDENT RECORD [ phase(0): CARDINAL, sMin(1): CARDINAL, fMin(2): CARDINAL, sSize(3): CARDINAL, fSize(4): CARDINAL -- Followed by the actual scan lines, each padded out to a word. ]; RunGroup: TYPE = MACHINE DEPENDENT RECORD [ sSize(0): CARDINAL -- Followed by the Runs. ]; Run: TYPE = MACHINE DEPENDENT RECORD [ fMin(0): CARDINAL, lastRun(1:0..0): BOOLEAN, fSize(1:1..15): NAT ]; MaskRectangle: TYPE = MACHINE DEPENDENT RECORD [ sMin(0): CARDINAL, sSize(1): CARDINAL, fMin(2): CARDINAL, fSize(3): CARDINAL ]; MaskTrapezoid: TYPE = MACHINE DEPENDENT RECORD [ sMin(0): CARDINAL, sSize(1): CARDINAL, fMin(2): CARDINAL, fSize(3): CARDINAL, fMinLast(4): CARDINAL, fSizeLast(5): CARDINAL ]; MaskRunGroup: TYPE = MACHINE DEPENDENT RECORD [ sMin: CARDINAL -- Followed by the RunGroup ]; MaskSamples: TYPE = MACHINE DEPENDENT RECORD [ sMin: CARDINAL, fMin: CARDINAL -- Followed by the SampleArray ]; MaskRunGroupRef: TYPE = MACHINE DEPENDENT RECORD [ addrLowBits: CARDINAL, -- High bits are in the command word sMin: CARDINAL, fMin: CARDINAL ]; MaskSamplesRef: TYPE = MACHINE DEPENDENT RECORD [ addrLowBits: CARDINAL, -- High bits are in the command word sMin: CARDINAL, fMin: CARDINAL ]; ColorSamples: TYPE = MACHINE DEPENDENT RECORD [ sMin: CARDINAL, fMin: CARDINAL -- Followed by the SampleArray ]; Priority: TYPE = MACHINE DEPENDENT RECORD [ -- rest field of ControlCom contains high order bits of priority. priorityLowBits: CARDINAL ]; SetColorTile: TYPE = MACHINE DEPENDENT RECORD [ -- rest field of ControlCom contains transparentFlag or opaqueFlag. addr: LONG CARDINAL ]; Toner: TYPE = MACHINE DEPENDENT {black(0), cyan(1), magenta(2), yellow(3)}; StartImage: TYPE = MACHINE DEPENDENT RECORD [ filler(0:0..8): [0..512) ¬ 0, leftOverMode(0:9..9): BOOLEAN, feed(0:10..10): BOOLEAN, strip(0:11..11): BOOLEAN, toner(0:12..15): Toner, passBands(1): NAT, nBands(2): NAT, fMinPage(3): CARDINAL, fSizePage(4): CARDINAL ]; StoreLoad: TYPE = MACHINE DEPENDENT RECORD [ firstAddress(0): LONG CARDINAL, wordCount(2): CARDINAL -- Followed by the data words ]; END.