Line A Routines
The Copy Raster function ($A00E) does much the same
thing as BitBlt, but in a format compatible with the Copy
Raster Opaque and Copy Raster Transparent functions of the
VDI. Copy Opaque is used where the source and destination
have the same number of bit planes, while Copy Transparent
is used to combine a single-plane source with a multiplane
destination. The inputs for Copy Raster are the same ones
used by their VDI counterparts. For both modes, set up
word arrays known as a Memory Form Definition Blocks
(MFDBs), and place the addresses of these arrays in another
array, whose address is placed in CONTRL (offset 4 from the
line A variable table base address). Bytes 14-17 of the
CONTRL array hold the address of the source MFDB, while
bytes 18-21 of the array hold the address of the destination
MFDB. The composition of these 20-byte data blocks is
shown in Table 7-8.
Table 7-8. Composition of Memory Form Definition Blocks (MFDBs)
Byte Offset Contents
00-03 Pointer to image data storage block
04-05 Raster image width in pixels
06-07 Raster image height in lines
08-09 Raster image width in words
10-11 Image format flag
0 = ST specific format (must be used)
1 = Standard GEM format
12-13 Number of color bit planes
14-15 Reserved for future use
16-17 Reserved for future use
18-19 Reserved for future use
For both modes, you must also specify the top-left and
bottom-right coordinates of both the source and destination
rectangles. Do this by creating an array of eight words. The
first four words contain the x and y coordinates for the
source rectangle (SX1, SY1, SX2, SY2), while the last four
contain the coordinates for the destination rectangle (DX1,
DY1, DX2, DY2).
By storing a value in the line A variable COPYTRAN
(offset 116), you may select either the Copy Opaque or Copy
Transparent mode. A value of 0 selects the opaque mode and
any other value chooses transparent mode. For either mode,
you must set up a 16-bit word that contains a logic operation
value and put a pointer to that word in the line A variable
157