-- file: PackCode.mesa -- Edited by Sweet, 27-Jan-81 13:31:52 -- Edited by Lewis, October 20, 1980 3:14 PM -- Edited by Levin, September 8, 1982 4:34 pm DIRECTORY PackageSymbols USING [WordIndex], PieceTable USING [PieceIndex], Segments USING [FHandle]; PackCode: DEFINITIONS = BEGIN Address: TYPE = [0..77777B]; -- max of 32K WordIndex: TYPE = PackageSymbols.WordIndex; NullWordIndex: WordIndex = LAST[WordIndex]; SeenModuleRecord: TYPE = RECORD [ seen: BOOLEAN ← FALSE, newOffset: Address ← NULL, -- of entry vector within segment newPiece: PieceTable.PieceIndex ← NULL, -- of beginning of vector oldCodeFile: Segments.FHandle ← NULL, oldCodePosition: LONG CARDINAL ← NULL, newConstants: LONG POINTER ← NIL]; -- to new constant values PackError: SIGNAL [reason: Problem]; Problem: TYPE = {InvalidCodeOffset, SegmentTooBig, StrangeJI, nonZeroBase}; -- implemented in PackCodeImpl ComputeCodePlacement: PUBLIC PROC; WriteBcdToFile: PUBLIC PROC; WriteCodeToBcdFile: PUBLIC PROC; -- implemented in PackagerBcdTabDriver InitBcdTab: PROC; FinalizeBcdTab: PROC; END.