HomeLine-ADraw spriteSeedfill

6.19 Copy raster form

Name: »Copy raster form«
Line-A number: $A00E
Syntax: See 'Bindings for copy_raster'
Description: This Line-A function corresponds exactly to the VDI function vro_cpyfm (Copy raster, Opaque). Merely some fields of the contrl field are not set, as no VDI workstation needs to be open. Therefore one should refer to the documentation of the VDI function. The following Line-A variables are used:
Variable Meaning
   
patptr Can contain a pointer to a pattern
multifill 0 if the pattern has only one plane, and 1 for several planes
copy_tran Set to 0 for opaque copying (source and destination have the same number of colour planes) or to 1 for transparent copying (destination is copied to one colour plane)


Note: The binding from Turbo C does not support this function.
Return value: The function does not return a result.
Availability: All TOS versions.
See also: Binding   vro_cpyfm

6.19.1 Bindings for copy_raster

Pure-C: void copy_raster( void ); /* WARNING: NOT supported ! */
Assembler:
movem.l   D0-D2/A0-A2,-(A7)  ; Save registers
move.l    pParamblk,A0       ; Pointer parameter block LINEA
move.l    (4,A0),A1          ; contrl to A1
move.l    s_mfdb,D0          ; Address source MFDB to D0
move.w    D0,(8,A1)          ; Lower WORD source MFDB to contrl[8]
lsr.l     #8,D0              ; Move upper WORD of D0 ...
lsr.l     #8,D0              ; ... onto lower WORD
move.w    D0,(7,A1)          ; Upper WORD source MFDB to contrl[7]
move.l    d_mfdb,D0          ; Address destination MFDB to D0
move.w    D0,(10,A1)         ; Lower WORD destination MFDB to contrl[10]
lsr.l     #8,D0              ; Move upper WORD of D0 ...
lsr.l     #8,D0              ; ... onto lower WORD
move.w    D0,(9,A1)          ; Upper WORD destination MFDB to contrl[9]
move.l    intin,(8,A0)       ; contrl in LINEA.contrl
move.l    (8,A0),-(A7)       ; Save old value of the intin field
move.l    intin,(8,A0)       ; intin in LINEA.intin
move.l    (12,A0),-(A7)      ; Save old value of the ptsin field
move.l    intin,(8,A0)       ; ptsin in LINEA.ptsin
move.w    patptr,(44,A0)     ; Line pattern in LINEA.patptr
move.w    multifill,(50,A0)  ; Plane flag in LINEA.multifill
move.w    copy_tran,(116,A0) ; Copy mode in LINEA.copy_tran
dc.w      $A00E              ; Line-A opcode
move.l    pParamblk,A0       ; Pointer parameter block LINEA
move.l    (A7)+,(12,A0)      ; Restore old value of the ptsin field
move.l    (A7)+,(8,A0)       ; Restore old value of the intin field
movem.l   (A7)+,D0-D2/A0-A2  ; Restore registers

HomeLine-ADraw spriteSeedfill