<> <> <> <> <> GriffinFileFormat: CEDAR DEFINITIONS = BEGIN SectorIndex: TYPE = MACHINE DEPENDENT RECORD [sector: CARDINAL [0 .. 32767]]; GFileSector: TYPE = ARRAY BYTE OF CARDINAL; BYTE: TYPE = CARDINAL [0 .. 255]; <
> maxFigNum: CARDINAL = 100; ValidFigRange: TYPE = CARDINAL [1 .. maxFigNum]; cNameWords: CARDINAL = 20; pNameWords: CARDINAL = 20; cNameChars: CARDINAL = 2*cNameWords-1; pNameChars: CARDINAL = 2*pNameWords-1; ZeroHeaderRange: TYPE = CARDINAL [5+maxFigNum+cNameWords+pNameWords .. 255]; GFileHeader: TYPE = MACHINE DEPENDENT RECORD [ majversion: BYTE, minversion: BYTE, createtime: LONG CARDINAL, numfigs: CARDINAL, zero1: BOOLEAN, nextsector: SectorIndex, figure: ARRAY ValidFigRange OF SectorIndex, creatorname: PACKED ARRAY [0 .. cNameChars] OF CHARACTER, portfolioname: PACKED ARRAY [0 .. pNameChars] OF CHARACTER, zero: ARRAY ZeroHeaderRange OF CARDINAL ]; lGFileHeader: CARDINAL [SIZE [GFileSector] .. SIZE [GFileSector]] = SIZE [GFileHeader]; <> GFileHardcopyController: TYPE = MACHINE DEPENDENT RECORD [ centerx: REAL, centery: REAL, width: REAL, height: REAL, presscenterx: CARDINAL, presscentery: CARDINAL, scale: REAL ]; lGFileHardcopyController: CARDINAL = SIZE [GFileHardcopyController]; GFileDisplayController: TYPE = MACHINE DEPENDENT RECORD [ centerx: CARDINAL, centery: CARDINAL, width: CARDINAL, height: CARDINAL, xscale: REAL, yscale: REAL, gridxo: REAL, gridyo: REAL, gridsize: CARDINAL, numcontrolpairs: CARDINAL ]; lGFileDisplayController: CARDINAL = SIZE [GFileDisplayController]; <> GFileControlPair: TYPE = MACHINE DEPENDENT RECORD [ hue: BYTE, brightness: BYTE, saturation: BYTE, greytouse: BYTE ]; lGFileControlPair: CARDINAL = SIZE [GFileControlPair]; fontWords: CARDINAL = 10; fontChars: CARDINAL = 2*fontWords-1; GFileFont: TYPE = MACHINE DEPENDENT RECORD [points, face, rotation: CARDINAL, char: PACKED ARRAY [0 .. fontChars] OF CHARACTER]; lGFileFont: CARDINAL = SIZE [GFileFont]; <