NStripeDefs.mesa
Updated: November 19, 1979 9:22 PM
Last Edited by: McCreight, February 1, 1985 4:56:03 pm PST
DIRECTORY
PartitionDefs;
NStripeDefs: CEDAR DEFINITIONS =
BEGIN
InitStripe: PROCEDURE [x: CARDINAL, y: CARDINAL];
WriteRectangle: PROCEDURE [
Layer: PartitionDefs.layerNumber, Width, Height, X1, Y1: REAL];
WriteTrapezoid: PROCEDURE [
Layer: PartitionDefs.layerNumber, Width, Height, X1, Y1, dX1, dX2: REAL];
Output block formats
Code: TYPE = [0..100B);
rectangleCode: Code = 16;
parallelogramCode: Code = 17;
trapezoid1Code: Code = 18;
trapezoid2Code: Code = 19;
trapezoid3Code: Code = 20;
Rectangle: TYPE = MACHINE DEPENDENT RECORD [
H (0: 0..9): (0..2000B],
.. biased representation: if you store a 1, a 0 appears in the binary form of the record.
code (0: 10..15): Code ← rectangleCode,
W (1): [0..100000B], -- 0 is not permitted
X1 (2): [0..100000B),
reserved1 (3: 0..7): [0..400B) ← 0,
Y1 (3: 8..15): [0..400B)];
BasicQuadrilateral: TYPE = MACHINE DEPENDENT RECORD [
H (0: 0..9): (0..2000B],
.. biased representation: if you store a 1, a 0 appears in the binary form of the record.
code (0: 10..15): Code,
W (1): [0..177777B],
X1 (2): [0..177777B],
reserved1 (3: 0..7): [0..400B) ← 0,
Y1 (3: 8..15): [0..400B),
DX (4): [0..177777B],
DXHigh (5: 0..5): [0..100B),
if DXHigh<40B, dx = 200000B*DXHigh+DX
if DXHigh>=40B, dx = 200000B*(DXHigh-100B)+DX
X1High (5: 6..10): [0..40B), -- x1 = 200000B*X1High+X1
WHigh (5: 11..15): [0..40B)]; -- w = 200000B*WHigh+W
Trapezoid3: TYPE = MACHINE DEPENDENT RECORD [
H (0: 0..9): (0..2000B],
.. biased representation: if you store a 1, a 0 appears in the binary form of the record.
code (0: 10..15): Code ← trapezoid3Code,
W (1): [0..177777B], -- 0 is not permitted
X1 (2): [0..177777B],
DX2High (3: 0..5): [0..100B),
if DX2High<40B, dx2 = 200000B*DX2High+DX2
if DX2High>=40B, dx2 = 200000B*(DX2High-100B)+DX2
Y1 (3: 6..15): [0..2000B),
DX1 (4): [0..177777B],
DX2 (5): [0..177777B],
DX1High (6: 0..5): [0..100B),
if DX1High<40B, dx1 = 200000B*DX1High+DX1
if DX1High>=40B, dx1 = 200000B*(DX1High-100B)+DX1
X1High (6: 6..10): [0..40B), -- x1 = 200000B*X1High+X1
WHigh (6: 11..15): [0..40B)]; -- w = 200000B*WHigh+W
OutOfBoundsNumber: ERROR;
END.