Home Line-ALine-A Draw spriteDraw sprite SeedfillSeedfill

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

Home Line-ALine-A Draw spriteDraw sprite SeedfillSeedfill