PDFileFormat.mesa
Copyright Ó 1983, 1984, 1985, 1987 by Xerox Corporation. All rights reserved.
Created March 14, 1983
Michael Plass, February 6, 1987 5:48:14 pm PST
Doug Wyatt, March 7, 1985 2:32:31 pm PST
PDFileFormat: CEDAR DEFINITIONS
~ BEGIN
LongCard: TYPE ~ MACHINE DEPENDENT RECORD [lo, hi: CARD16];
passwordValue: CARD16 ~ 125252B;
versionValue: CARD16 ~ 1B;
DeviceCode: TYPE ~ MACHINE DEPENDENT {
invalid(0),
raven(1),
hornet(2),
gnat(3),
platemaker(4),
reticleMaker(5),
puffin(6),
colorVersatec(7),
color400(9),
c150(10),
d4020(11),
bw400(12),
colorado384(15),
last(LAST[CARD16])
};
Herald: TYPE ~ MACHINE DEPENDENT RECORD [
password(0): CARD16 ← passwordValue,
version(1): CARD16 ← versionValue,
deviceCode(2): DeviceCode ← invalid,
sResolution(3): CARD16,
fResolution(4): CARD16,
imageSSize(5): CARD16,
imageFSize(6): CARD16,
bandSSize(7): CARD16,
maxLoadWord(8): LongCard,
copies(10): CARD16
];
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): CARD16,
fSize(1): CARD16
Followed by the actual scan lines, each padded out to a word.
];
Tile: TYPE ~ MACHINE DEPENDENT RECORD [
phase(0): CARD16,
sMin(1): CARD16,
fMin(2): CARD16,
sSize(3): CARD16,
fSize(4): CARD16
Followed by the actual scan lines, each padded out to a word.
];
RunGroup: TYPE ~ MACHINE DEPENDENT RECORD [
sSize(0): CARD16
Followed by the Runs.
];
Run: TYPE ~ MACHINE DEPENDENT RECORD [
fMin(0): CARD16,
lastRun(1:0..0): BOOLEAN,
fSize(1:1..15): NAT
];
MaskRectangle: TYPE ~ MACHINE DEPENDENT RECORD [
sMin(0): CARD16,
sSize(1): CARD16,
fMin(2): CARD16,
fSize(3): CARD16
];
MaskTrapezoid: TYPE ~ MACHINE DEPENDENT RECORD [
sMin(0): CARD16,
sSize(1): CARD16,
fMin(2): CARD16,
fSize(3): CARD16,
fMinLast(4): CARD16,
fSizeLast(5): CARD16
];
MaskRunGroup: TYPE ~ MACHINE DEPENDENT RECORD [
sMin: CARD16
Followed by the RunGroup
];
MaskSamples: TYPE ~ MACHINE DEPENDENT RECORD [
sMin: CARD16,
fMin: CARD16
Followed by the SampleArray
];
MaskRunGroupRef: TYPE ~ MACHINE DEPENDENT RECORD [
addrLowBits: CARD16,
High bits are in the command word
sMin: CARD16,
fMin: CARD16
];
MaskSamplesRef: TYPE ~ MACHINE DEPENDENT RECORD [
addrLowBits: CARD16,
High bits are in the command word
sMin: CARD16,
fMin: CARD16
];
ColorSamples: TYPE ~ MACHINE DEPENDENT RECORD [
sMin: CARD16,
fMin: CARD16
Followed by the SampleArray
];
Priority: TYPE ~ MACHINE DEPENDENT RECORD [
rest field of ControlCom contains high order bits of priority.
priorityLowBits: CARD16
];
SetColorTile: TYPE ~ MACHINE DEPENDENT RECORD [
rest field of ControlCom contains transparentFlag or opaqueFlag.
addr: LongCard
];
Toner: TYPE ~ MACHINE DEPENDENT {black(0), cyan(1), magenta(2), yellow(3), last(15)};
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): CARD16,
fSizePage(4): CARD16
];
StoreLoad: TYPE ~ MACHINE DEPENDENT RECORD [
firstAddress(0): LongCard,
wordCount(2): CARD16
Followed by the data words
];
END.