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()+