-- File IntStorageDefs.mesa -- July 24, 1980 9:48 PM by MN DIRECTORY ParserTypeDefs: FROM "ParserTypeDefs" USING [Point, Path], IntVMDefs: FROM "IntVMDefs" USING [VMAddr, NilVMAddr], IntTransDefs: FROM "IntTransDefs" USING [TransformRecord]; IntStorageDefs: DEFINITIONS = BEGIN Object: TYPE = POINTER TO ObjectRecord; ObjectType: TYPE = {STEntry, SetNode, Call, Box, MBox, Flash, Polygon, Wire, User}; ObjectName: TYPE = IntVMDefs.VMAddr; BBoxRecord: TYPE = RECORD [left,right,bottom,top: LONG INTEGER]; NilObjectName: ObjectName = IntVMDefs.NilVMAddr; ObjectRecord: TYPE = RECORD [ SELECT type: ObjectType FROM STEntry => [ bb: BBoxRecord, bbValid,deleted,expanded,bound,defined: BOOLEAN, guts: ObjectName, symNumber: LONG CARDINAL, overflow,sameNumber: ObjectName, cby: ObjectName], SetNode => [ contents: LONG CARDINAL, next: ObjectName], Call => [ bb: BBoxRecord, next: ObjectName, symNumber: LONG CARDINAL, uniqueID: ObjectName, t: IntTransDefs.TransformRecord], Box => [ bb: BBoxRecord, next: ObjectName, layer: CARDINAL, length, width: LONG CARDINAL, center: ParserTypeDefs.Point, xRot, yRot: LONG INTEGER], MBox => [ --Manhattan Box bb: BBoxRecord, next: ObjectName, layer: CARDINAL], Flash => [ bb: BBoxRecord, next: ObjectName, layer: CARDINAL, diameter: LONG CARDINAL, center: ParserTypeDefs.Point], Polygon =>[ bb: BBoxRecord, next: ObjectName, layer: CARDINAL, p: ParserTypeDefs.Path], Wire => [ bb: BBoxRecord, next: ObjectName, layer: CARDINAL, width: LONG CARDINAL, p: ParserTypeDefs.Path], User => [ bb: BBoxRecord, next: ObjectName, layer: CARDINAL, size: CARDINAL, data: POINTER TO UNSPECIFIED], ENDCASE]; -- Object oriented storage package for CIF Parser InitStorage: PROCEDURE RETURNS [BOOLEAN]; FinishStorage: PROCEDURE RETURNS [BOOLEAN]; -- Stores Thing in VM, returns a name by which Thing may be later retrieved using FetchObject. StoreObject: PROCEDURE [src: Object] RETURNS [ObjectName]; FetchObject: PROCEDURE [src: ObjectName, dest: Object]; -- Replace, dest with thing, they had better be of the same size... ReplaceObject: PROCEDURE [src: Object, dest: ObjectName]; -- Get rid of the named object. DeleteObject: PROCEDURE [what: ObjectName]; END. (635)\31b28B1b1B114i9I63b15B26b6B35b10B10i61I4b10B28b10B56b13B25i9I4b12B52i7I187i7I59i4I140i3I165i4I86i5I134i7I96i4I122i4I185b11B32b13B129b11B49b11B116b13B80b12B