This is an old version from the tos.hyp. The new is on GitHub!

HomeLine-AFilled polygonText block transfer

6.12 Bit block transfer

Name: »Bit block transfer«
Line-A number: $A007
Syntax: See 'Bindings for bit_blt'
Description: This Line-A function copies between a rectangular source and destination block. For this the source area can be combined with a raster. Source and destination can be combined with one of 16 possible logical operations. This function also serves as the basis for the Line-A functions Text block transfer and Copy raster form.

For the parameters a structure of the type BITBLT has to be filled and passed in register A6.

The following logical combinations are available:

Operation Function
0 D' = 0 Destination is background colour
1 D' = S & D
2 D' = S &  D
3 D' = S
4 D' =  S & D
5 D' = D
6 D' = S ^ D
7 D' = S | D
8 D' =  (S | D)
9 D' =  (S ^ D)
10 D' =  D
11 D' = S |  D
12 D' =  S
13 D' =  S | D
14 D' =   (S & D)
15 D' = 1 Destination is foreground colour

D' is the destination after the combination, S and D are the source and destination before the combination. & is the logical AND combination, | is OR, ^ is the exclusive OR (XOR) combination, ! is a NOT inversion.
Return value: The function does not have a return value.
Availability: All TOS versions.
See also: Binding   Text block transfer   Copy raster form

6.12.1 Bindings for bit_blt

Pure-C: void bit_blt(BITBLT *bitblt);
movem.l   D0-D2/A0-A2,-(A7)  ; Save registers
move.l    bitblt,A6          ; Address BITBLT structure
dc.w      $A007              ; Line-A opcode
movem.l   (A7)+,D0-D2/A0-A2  ; Restore registers

HomeLine-AFilled polygonText block transfer