-- ROMMakerDefs.mesa -- a program to run within Chipmonk -- last modified by E. McCreight, February 2, 1982 5:49 PM -- written by E. McCreight, October 7, 1981 6:18 PM DIRECTORY ppddefs, ppdefs; RomMakerDefs: DEFINITIONS = BEGIN OPEN ppddefs, ppdefs; -- T y p e s Direction: TYPE = { vertical, horizontal, diagonal, up, down, left, right, upAndLeft, upAndRight, downAndLeft, downAndRight}; topRight: Direction = upAndRight; -- synonyms topLeft: Direction = upAndLeft; bottomRight: Direction = downAndRight; bottomLeft: Direction = downAndLeft; ListPtr: TYPE = listPtr; Cell: TYPE = obPtr; DCell: TYPE = ARRAY BOOLEAN --data in cell-- OF Cell; DCellPr: TYPE = ARRAY BOOLEAN -- data in even cell -- OF DCell; NameGroup: TYPE = RECORD [ x, y: Point _ [x: 1 -- coefficient --, y: 0 -- offset --], basicName: STRING _ NIL ]; nilNameGroup: NameGroup = []; -- V a r i a b l e s lpp: ListPtr; -- where new list elements are assembled uz: UNCOUNTED ZONE; dirFactor: ARRAY Direction OF Point; -- P r o c e d u r e s FindCell: PROCEDURE [ cellFamily: STRING, member: STRING, required: BOOLEAN _ FALSE, vCompat: Cell _ NIL, hCompat: Cell _ NIL] RETURNS [Cell]; FindDCell: PROCEDURE [ cellFamily, memberPrefix: STRING, required: BOOLEAN _ FALSE, vCompat: Cell _ NIL, hCompat: Cell _ NIL] RETURNS [d: DCell]; FindDCellPr: PROCEDURE [ cellFamily, memberPrefix: STRING, required: BOOLEAN _ FALSE, vCompat: Cell _ NIL, hCompat: Cell _ NIL] RETURNS [p: DCellPr]; CheckPitchCompatability: PROCEDURE [ c1, c2: Cell, dir: Direction, rep1: Point _ [1, 1], rep2: Point _ [1, 1]]; Repeat: PROCEDURE[p: Point, cell: Cell, corner: Direction _ topLeft, dir: Direction _ horizontal, rep: locNum _ 1, midCell: Cell _ NIL, midGap: locNum _ 0, altCell: Cell _ NIL, altMod: INTEGER _ 0, name, midName: NameGroup _ nilNameGroup]; RepeatArbitrary: PROCEDURE[p: Point, cp: PROCEDURE[i: INTEGER] RETURNS[Cell], corner: Direction _ topLeft, dir: Direction _ upAndLeft, rep: INTEGER _ 1, midCell: Cell _ NIL, midGap: locNum _ 0, name, midName: NameGroup _ nilNameGroup]; MakeMidGrid: PROCEDURE[p: Point, cell: Cell, rep: Point, midVCell, midHCell, midVHCell: Cell _ NIL, midGap: Point _ [0,0]]; PlaceCell: PROCEDURE[p: Point, cell: Cell, rep: Point _ [0,0], midCellSize: Point _ [0,0], midGap: Point _ [0,0], name: NameGroup _ nilNameGroup]; DirSize: PROCEDURE[size: Point, dir: Direction _ diagonal] RETURNS[Point]; CellSize: PROCEDURE[cell: Cell, dir: Direction _ diagonal] RETURNS[Point]; Offset: PROCEDURE[p: Point _ [0, 0], cell: Cell, dir: Direction, rep: Point _ [0, 0], midCell: Cell _ NIL, midCellSize: Point _ [0,0], midGap: Point _ [0, 0], includeTerminalMid: BOOLEAN _ TRUE] RETURNS [Point]; BlockSize: PROCEDURE [cell: Cell, rep: Point _ [1, 1], midCell: Cell _ NIL, midGap: Point _ [0, 0]] RETURNS [Point]; MakeNewCell: PROCEDURE [name: STRING, lpp: ListPtr] RETURNS [cp: LONG POINTER TO cList]; AddToMasterList: PROCEDURE[lpp: ListPtr]; DrawCell: PROCEDURE [obp: Cell]; BuildRom: PROCEDURE[]; BuildDecoder: PROCEDURE[]; END. -- of RomMakerDefs