-- BitBltDefs.mesa Edited by: Sandman, June 30, 1980 4:48 PM DIRECTORY Mopcodes USING [zBITBLT, zLI0]; -- Copyright Xerox Corporation 1979, 1980 BitBltDefs: DEFINITIONS = BEGIN BBptr: TYPE = POINTER TO BBTable; BBoperation: TYPE = {replace, paint, invert, erase}; BBsourcetype: TYPE = {block, complement, andgray, gray}; BBTable: TYPE = MACHINE DEPENDENT RECORD [ ptrs: {short, long} ← short, pad: [0..777B] ← 0, sourcealt, destalt: BOOLEAN ← FALSE, -- TRUE to use alternate memory bank sourcetype: BBsourcetype ← block, function: BBoperation ← replace, unused: CARDINAL ← 0, dbca: POINTER ← NULL, -- destination BaseCoreAddress dbmr: CARDINAL ← NULL, -- destination raster width(in words) dlx: CARDINAL ← NULL, -- destination left x dty: CARDINAL ← NULL, -- destination top y dw: CARDINAL ← NULL, dh: CARDINAL ← NULL, sbca: POINTER ← NULL, -- source BaseCoreAddress sbmr: CARDINAL ← NULL, -- source raster width(in words) slx: CARDINAL ← NULL, -- source left x sty: CARDINAL ← NULL, -- source top y gray0: CARDINAL ← NULL, -- four words of "gray" gray1: CARDINAL ← NULL, gray2: CARDINAL ← NULL, gray3: CARDINAL ← NULL, -- Below here is not used by nonXM, nonXMesa Altos slbca: LONG POINTER ← NULL, -- source long BaseCoreAddress dlbca: LONG POINTER ← NULL]; -- destination long BaseCoreAddress BBTableSpace: TYPE = ARRAY [0..SIZE[BBTable]] OF UNSPECIFIED; AlignedBBTable: PROCEDURE [p: POINTER TO BBTableSpace] RETURNS [BBptr] = INLINE BEGIN RETURN[LOOPHOLE[p + LOOPHOLE[p, CARDINAL] MOD 2]] END; BITBLT: PROCEDURE [ptr: BBptr] = MACHINE CODE BEGIN Mopcodes.zLI0; Mopcodes.zBITBLT END; END.