SELECT t1
MOD 100B
FROM
16 =>
BEGIN -- Manhattan Rectangle
IF stripeVisible
THEN
BEGIN
x, width, y, height: INT;
height ← t1/100B + 1;
width ← 256*LOOPHOLE[block[index], Byte]+LOOPHOLE[block[index+1], Byte];
x ← 256*LOOPHOLE[block[index+2], Byte]+LOOPHOLE[block[index+3], Byte];
y ← 256*LOOPHOLE[block[index+4], Byte]+LOOPHOLE[block[index+5], Byte];
InsertRectangle[x, width, stripe*stripeHeight+y, height, data];
END;
index ← index+6;
END;
17 =>
BEGIN -- Parallelogram
x, width, leftEdge: INT;
y, height, tmp1: INT;
height ← t1/100B + 1;
width ← ReadMebesWord[];
x ← ReadMebesWord[];
y ← ReadMebesWord[];
leftEdge ← ReadMebesWord[];
tmp1 ← ReadMebesWord[];
width ← width + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
x ← x + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
leftEdge ←
leftEdge + (tmp1
MOD 100B)*200000B +
(IF tmp1/40B # 0 THEN 37760000000B ELSE 0);
InsertTrapezoid[x, width, stripe*stripeHeight+y, height, leftEdge, leftEdge, data];
END;
18 =>
BEGIN -- Trapezoid 1
x, width, leftEdge: INT;
y, height, tmp1: INT;
height ← t1/100B + 1;
width ← ReadMebesWord[];
x ← ReadMebesWord[];
y ← ReadMebesWord[];
leftEdge ← ReadMebesWord[];
tmp1 ← ReadMebesWord[];
width ← width + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
x ← x + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
leftEdge ←
leftEdge + (tmp1
MOD 100B)*200000B +
(IF tmp1/40B # 0 THEN 37760000000B ELSE 0);
InsertTrapezoid[x, width, stripe*stripeHeight+y, height, leftEdge, 0, data];
END;
19 =>
BEGIN -- Trapezoid 2
x, width, rightEdge: INT;
y, height, tmp1: INT;
height ← t1/100B + 1;
width ← ReadMebesWord[];
x ← ReadMebesWord[];
y ← ReadMebesWord[];
rightEdge ← ReadMebesWord[];
tmp1 ← ReadMebesWord[];
width ← width + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
x ← x + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
rightEdge ←
rightEdge + (tmp1
MOD 100B)*200000B +
(IF tmp1/40B # 0 THEN 37760000000B ELSE 0);
InsertTrapezoid[x, width, stripe*stripeHeight+y, height, 0, rightEdge, data];
END;
20 =>
BEGIN -- Trapezoid 3
x, width, leftEdge, rightEdge: INT;
y, height, tmp1: INT;
height ← t1/100B + 1;
width ← ReadMebesWord[];
x ← ReadMebesWord[];
y ← ReadMebesWord[];
leftEdge ← ReadMebesWord[];
rightEdge ← ReadMebesWord[];
tmp1 ← ReadMebesWord[];
width ← width + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
x ← x + (tmp1 MOD 40B)*200000B;
tmp1 ← tmp1/40B;
leftEdge ←
leftEdge + (tmp1
MOD 100B)*200000B +
(IF tmp1/40B # 0 THEN 37760000000B ELSE 0);
tmp1 ← y/2000B;
y ← y MOD 2000B;
rightEdge ←
rightEdge + (tmp1
MOD 100B)*200000B +
(IF tmp1/40B # 0 THEN 37760000000B ELSE 0);
InsertTrapezoid[x, width, stripe*stripeHeight+y, height, leftEdge, rightEdge, data];
END;
9 => index ← blockSize; -- end of buffer
4 => RETURN; -- end of drawing
7 =>
BEGIN -- start of stripe
stripe ← t1/256;
stripeVisible ← StripeVisible[stripe, data];
END;
8 => NULL; -- end of stripe
3, 6 => FOR i: INT IN [1..16) DO [] ← ReadMebesWord[]; ENDLOOP; -- header
ENDCASE => ERROR NotMEBESFormat;