--File PressCompressDefs.mesa
--Last edited February 22, 1982 3:44 PM By Glen Williams
--

--DIRECTORY
--
TridentDefs USING [FP, PAGE, tfsdskPtr, VDA];

PressCompressDefs: DEFINITIONS =

BEGIN
--OPEN TridentDefs;


--Types and Variables

CompressSpec: TYPE = POINTER TO CompressSpecRec;
CompressSpecRec: TYPE = RECORD
[src1:POINTER TO ARRAY OF WORD,--this buffer is overwritten
src2:POINTER TO ARRAY OF WORD, --this buffer is not destroyed
sink:PROCEDURE[nib: NibbleRunSpec],
srcLen:CARDINAL,--length of source buffers + 1 word (for overflow of bit-shifts)
nibbleSize:CARDINAL--size of nibble (either all 0’s or all 1’s).
];
Color: TYPE = {white, black};
NibbleSpecType: TYPE = {atom, run};--specifies either one nibble or many
NibbleRunSpec: TYPE = MACHINE DEPENDENT RECORD
[fILLER:[0..377B],
descriptorType: SELECT type: NibbleSpecType FROM
run=> [color: Color, nibbleCt: NibbleRange],
atom=> [thisNibble: [0..177B]],
ENDCASE
];
RunState: TYPE = {zeros, ones, random};
NibbleRange: TYPE = [0..77B];

remTable
: ARRAY [0..nibbleSize] OF CARDINAL;
nibbleSize:
CARDINAL = 7;

--Procedures

--
Usually from PressNetDecompressor.mesa
OpenDecompressor: PUBLIC PROCEDURE [scanLen, nibbleSize: CARDINAL];
NextLine: PUBLIC PROC[];
GetNibble: PUBLIC PROC[nib: NibbleRunSpec];
CloseDecompressor: PUBLIC PROC [];
CompareLines: PROC[original: POINTER TO ARRAY OF WORD] RETURNS [same: BOOLEAN ← TRUE];

END.
--of PressDefs