•  Back 
  •  Main 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help 
  •  Show info about hypertext 
  •  View a new file 
Topic       : The GFA-Basic Compendium
Author      : GFA Systemtechnik GmbH
Version     : GFABasic.HYP v2.98 (12/31/2023)
Subject     : Documentation/Programming
Nodes       : 899
Index Size  : 28056
HCP-Version : 3
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Document not found
@help       : Help
@options    : +g -i -s +z
@width      : 75
@hostname   : STRNGSRV
@hostname   : CAB     
@hostname   : HIGHWIRE
@hostname   : THING   
View Ref-FileGET x1,y1,x2,y2,section$
PUT x1,y1,section$[,mode]

x1, y1, x2, y2, mode: iexp
section$: svar

GET puts a section of screen into a string variable (x1,y1 and x2,y2 are
coordinates of diagonally opposite corners). Similarly PUT places a screen
section (read in with GET) onto the screen at coordinates x1,y1. Using 'mode'
it is possible to control the way the string is placed on the screen in
relation to the existing screen contents. In the following table the
relationship between the new picture and the existing one are shown for each
value of mode. The term 's' represents a pixel from the new picture (the source
picture), and 'd' the corresponding pixel from the existing screen (the
destination).

Mode  Placing rule   Effect
0     0              All points are cleared.
1     s AND d        Only the points which are set in both screens remain set.
2     s AND (NOT d)  Sets only the points which are set in the source and clear
                     in the destination.
3     s              The new source screen is simply transferred (GRAPHMODE 1 -
                     - Default).
4     (NOT s) AND d  Only the points which are clear in the source and set in
                     the destination are set.
5     d              The screen remains unchanged.
6     s XOR d        Only those points which are set in one but not both remain
                     set (GRAPHMODE 3).
7     s OR d         All points are set in which either or both the source and
                     destination are set (GRAPHMODE 2).
8     NOT (s OR d)   All points which are clear in both screens become set.
9     NOT (s XOR d)  All points where both source and destination are set, or
                     both are clear, are set.
10    NOT d          The destination screen is inverted.
11    s OR (NOT d)   A point is set if either the source is set, or the
                     destination is clear, or both.
12    NOT s          The source screen is inverted before the placing.
13    (NOT s) OR d   GRAPHMODE 4
14    NOT (s AND d)  All points which were not set in both screens become set.
15    1              All points are set.

The important modes are:

     3 Replace (default)
     6 XOR
     7 Transparent
    13 Inverse transparent


Memo: Only works if the block requires no more than 32000 bytes.
      The resulting string will always be 6 bytes larger than expected.
      The header is as follows: MKI$(width&-1)+MKI$(height&-1)+MKI$(planes&)

      There is some undocumented option related to the mode parameter.
      If bit 4 of the mode parameter is set, it calls VDI function vro_cpyfm()
      instead of the Line-A blit function. However it's so buggy that it's
      non-functional and results in a crash.

Original manual said this: (There are no such blitmodes supported by the VDI.)
In addition, if the current fill pattern is a user-defined one and bit 4 of
'mode' is set, then the result of the above calculations will be ANDed with the
user-defined pattern.

Line-A BitBlt+, vro_cpyfm()+