Routines called by the Interpreter to actually have output generated.
take a string that is a list of layers to filter for
InitOutput: PROCEDURE [chip: REF MPCDefs.ChipDescriptor] RETURNS [BOOL];
InitProject: PROCEDURE [project: REF MPCDefs.ProjectDescriptor] RETURNS [BOOL];
FinishOutput: PROCEDURE RETURNS [BOOL];
Prints a message on the terminal, followed by a CR if wantCR is TRUE.
SendMessage:
PROCEDURE [type: ParserErrorDefs.ErrorType, message: Rope.
ROPE,
wantCR: BOOL ← TRUE];
associates a CARDINAL with a layer name
Map: PROCEDURE [layerName: Rope.ROPE] RETURNS [CARDINAL];
Each routine below implements the output of one primitive geometric construct form CIF.
OutputWire: PROCEDURE [visible: VisibleType, layerName: CARDINAL, width: LONG CARDINAL, a: ParserTypeDefs.Path];
OutputFlash: PROCEDURE [visible: VisibleType, layerName: CARDINAL, diameter: LONG CARDINAL, center: ParserTypeDefs.Point];
OutputPolygon: PROCEDURE [visible: VisibleType, layerName: CARDINAL, a: ParserTypeDefs.Path];
OutputBox:
PROCEDURE [visible: VisibleType, layerName:
CARDINAL, length, width:
LONG
CARDINAL,
center: ParserTypeDefs.Point, xRotation, yRotation: INT];
OutputUserCommand: PROCEDURE [command: [0..9], userText: Rope.ROPE];
OutputUserObject: PROCEDURE [visible: VisibleType, layerName: CARDINAL, data: REF ANY];
establish ordering
Relation:
PROCEDURE [left1, right1, bottom1, top1,
left2, right2, bottom2, top2: INT]
RETURNS [RelationType];
determine whether an item should be shown
Visible:
PROCEDURE [kind: IntStorageDefs.Object, level:
CARDINAL, parentVis: VisibleType,
left,right,bottom,top: INT] RETURNS [VisibleType]; --parentVis added - MN, June 10, 1981 6:23 PM
returns the bounding box of the primitive interpreted in the current context
BBWire:
PROCEDURE [layerName:
CARDINAL, width:
LONG
CARDINAL, a: ParserTypeDefs.Path]
RETURNS [left,right,bottom,top: INT];
BBFlash:
PROCEDURE [layerName:
CARDINAL, diameter:
LONG
CARDINAL, center: ParserTypeDefs.Point]
RETURNS [left,right,bottom,top: INT];
BBPolygon:
PROCEDURE [layerName:
CARDINAL, a: ParserTypeDefs.Path]
RETURNS [left,right,bottom,top: INT];
BBBox:
PROCEDURE [layerName:
CARDINAL, length, width:
LONG
CARDINAL,
center: ParserTypeDefs.Point, xRotation, yRotation: INT]
RETURNS [left,right,bottom,top: INT];
BBUserObject:
PROCEDURE [layerName:
CARDINAL, data:
REF
ANY]
RETURNS [left,right,bottom,top: INT];
END.