-- ALEFormat.mesa -- Edited by Sweet, September 26, 1980 9:56 AM DIRECTORY ALEOps; ALEFormat: DEFINITIONS = BEGIN PictureBase: TYPE = BASE POINTER TO Header; SubTableBase: TYPE = BASE POINTER TO SubTable; SubTable: TYPE = RECORD[UNSPECIFIED]; BlockDescriptor: TYPE = RECORD [ offset: PictureBase RELATIVE POINTER TO SubTable, length: CARDINAL]; NullDescriptor: BlockDescriptor = [LOOPHOLE[0], 0]; IndexRange: CARDINAL = 37777B; Password: CARDINAL = 9260; Header: TYPE = RECORD [ password: CARDINAL ← Password, hash: BlockDescriptor ← NullDescriptor, string: BlockDescriptor ← NullDescriptor, points: BlockDescriptor ← NullDescriptor, lines: BlockDescriptor ← NullDescriptor, labels: BlockDescriptor ← NullDescriptor]; Point: TYPE = RECORD [pos: ALEOps.APosition]; PointIndex: TYPE = SubTableBase RELATIVE POINTER [0..IndexRange] TO Point; Line: TYPE = RECORD [ width: ALEOps.LineWidth, p1: PointIndex, texture: ALEOps.LineTexture, p2: PointIndex]; LineIndex: TYPE = SubTableBase RELATIVE POINTER [0..IndexRange] TO Line; Label: TYPE = RECORD [ font: ALEOps.FontSize, mode: ALEOps.LabelMode, hti: ALEOps.HTIndex, pos: ALEOps.APosition]; LabelIndex: TYPE = SubTableBase RELATIVE POINTER [0..IndexRange] TO Label; END.