ArgRecord:
TYPE =
RECORD [
dstWord: WordPtr ¬ NIL, -- pointer to first word of dst to change
dstBit: BitOffset ¬ 0, -- bit offset for first dst bit
dstBpl: NAT ¬ 0, -- destination bits per line
fSize: NAT ¬ 0, -- destination dots per line
sSize: NAT ¬ 0, -- destination number of lines
srcWord: WordPtr ¬ NIL, -- pointer to first word of src brick
srcBit: BitOffset ¬ 0, -- bit offset for first src bit
srcBpl: NAT ¬ 0, -- source bits per line
fSizeTile: NAT ¬ 0, -- dots per line of src
sSizeTile: NAT ¬ 0, -- number of lines of src
firstBit: NAT ¬ 0, -- first bit in first line of src tile; assert: firstBit < fSizeTile
firstLine: NAT ¬ 0, -- first line of src tile to get moved; assert: firstLine < sSizeTile
phase: NAT ¬ 0, -- phase shift for subsequent lines; assert: phase < fSizeTile
srcInvert: WORD ¬ 0, -- XOR'd with every source word fetched
dstFunc: DstFunc ¬ null -- dst function to perform
];