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
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;
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
];