-- 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.