<> <> <> <> <> <<[0..1] bits in contiguous memory, padded with 0's to the next doubleword >> <> <> <> DIRECTORY Environment USING [Block]; Decompress: DEFINITIONS = BEGIN DecompressFlavor: TYPE = -- the first 3 direct from the RES standard {adaptive, ccitt, compressed, -- formerly IMG <> huffman, read}; DecompressInfo: TYPE = RECORD [ scanLength: NATURAL, -- number of pixels (in this case, bits) in scanline flavor: DecompressFlavor, private: LONG POINTER]; -- to impl's private data DecompressHandle: TYPE = LONG POINTER TO DecompressInfo; Error: ERROR [line: CARDINAL]; <> <> Init: TYPE = PROCEDURE [v: Environment.Block] RETURNS [h: DecompressHandle]; <> <> Done: TYPE = PROCEDURE [h: DecompressHandle]; NextLine: TYPE = PROCEDURE [h: DecompressHandle, out: LONG POINTER] RETURNS [valid: BOOLEAN]; <> <> AdaptiveInit: Init; AdaptiveNextLine: NextLine; AdaptiveDone: Done; CcittInit: Init; CcittNextLine: NextLine; CcittDone: Done; CompressedInit: Init; CompressedNextLine: NextLine; CompressedDone: Done; HuffmanInit: Init; HuffmanNextLine: NextLine; HuffmanDone: Done; ReadInit: Init; ReadNextLine: NextLine; ReadDone: Done; END. LOG 5Nov84 - castillo. Newlin 5-Nov-84 modify flavor names, add RETURNS to NextLine & add specific PROCS. 16Nov84 - castillo - changed Init parms, added Error. 20Dec84 - castillo - changed the LONG POINTER in Init for a Env.BLock.