Topic : The ATARI Compendium
Author : Scott Sanders / JAY Software
Version : 1.25 (20/6/2003)
Subject : Documentation
Nodes : 1117
Index Size : 32614
HCP-Version : 6
Compiled on : Atari
@charset : UTF-8
@lang : en
@default :
@help : %About
@options : +g -i -t4 +y +z
@width : 100
View Ref-Filevro_cpyfm()vrt_cpyfm()$A00E - Copy Raster Line-AFunction Copy a raster form using opaque or transparent mode.
Parameters INTIN should point to a WORD array whose first entry
specifies the write mode of the operation. In transparent
mode, this is a VDI standard mode (0-3), however in opaque
mode the full range of BitBlt modes (0-15) are available. In
transparent mode, the second and third array entries of
INTIN contain the foreground and background color of the
destination copy respectively. CONTRL should point to
a memory buffer which is filled in with the source and
destination MFDB's (Memory Form Definition Block's) at
offsets 14 and 18 respectively. The structure of an MFDB is
discussed under vro_cpyfm(). PTSIN should point to an array
of 8 WORD's containing the pixel offsets for the blit in the
order sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2. COPYTRAN specifies the write mode. A value of 0 indicates an opaque
copy while a value of 1 indicates a transparent copy. The
settings for CLIP, XMINCL, YMINCL, XMAXCL, and YMAXCL are
utilitized by this call.
Example ; Copy a 32x32 raster form 'myrast' from a
Binding ; buffer in memory to the ST medium resolution
; screen at ( 100, 100 ) using transparent mode.
move.l #contrl,4(a5) ; CONTRL move.l #srcmfdb,contrl+14
move.l #destmfdb,contrl+18
move.l #intin,4(a5) ; INTIN move.l #ptsin,4(a5) ; PTSIN move.w #1,116(a5) ; COPYTRAN move.w #0,54(a5) ; CLIP ; Fill in some info for MFDB's
move.l #myrast,srcmfdb ; Source raster
move.w #$02,-(sp) ; Physbase() trap #14
addq.l #2,sp
move.l d0,destmfdb
.dc.w $A00E
.data
contrl:
.dc.w 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
intin:
.dc.w 0, 1, 0
ptsin:
.dc.w 0, 0, 15, 15, 100, 100, 115, 115
srcmfdb:
.dc.w 0, 0, 16, 16, 1, 0, 0, 0, 0, 0
destmfdb:
.dc.w 0, 0, 320, 200, 16, 0, 2, 0, 0, 0
myrast:
.dc.w $AAAA,$AAAA,$AAAA,$AAAA
.dc.w $5555,$5555,$5555,$5555
.dc.w $AAAA,$AAAA,$AAAA,$AAAA
.dc.w $5555,$5555,$5555,$5555
.dc.w $AAAA,$AAAA,$AAAA,$AAAA
.dc.w $5555,$5555,$5555,$5555
.dc.w $AAAA,$AAAA,$AAAA,$AAAA
.dc.w $5555,$5555,$5555,$5555
Comments For a more indepth explanation, refer to the VDI calls
parallel to these, vro_cpyfm() and vrt_cpyfm().
See Also vro_cpyfm(), vrt_cpyfm()