[GET@] コマンド

画面上のグラフィックPatternを配列変数に読み込みます。
文法 GET[@] (Sx1, Sy1) - (Sx2, Sy2) または STEP(x2, y2)
, <配列変数名> [(<添え字>)]
文例  GET@ (100, 50)-(135,69), G%
  GET@ (100, 150)-(135,199), G%(100)

画面上のScreen座標の 2点(Sx1, Sy1)と(Sx2, Sy2)を対角点とする四角形のGraphicPattern
を、<配列変数名>で指定された配列変数に読み込みます。
座標の指定は、ViewPort内に展開されるScreen座標を使用します。
[PUT@] も同様です。)

2つ目の座標指定には、STEPを使って相対座標による指定もできます。
<配列変数名>は、GraphicDataを読み込むために用意する数値型の配列変数の名前です。
<添え字>は、GraphicPatternを配列変数に読み込む際に、格納し始める要素を指定するものです。
省略した場合は配列の最初(要素番号 0)から格納します。同一の配列変数に、複数の
GraphicPatternを格納するために<添え字>を指定します。
GET@を実行する前に、[DIM] 文で配列変数のSizeを宣言しておかねばなりませ
ん。グラフィックPattern Dataを格納するMemoryを確保しておくためです。Memoryno確保、ある
いは、確保Sizeを上回る使用をすればAccessErrorとなります。
尚最初の 4Byteは横(X方向)と縦(Y方向)のDot数を整数Data(2Byte)で格納しています。
配列変数を整数型にしておけば、便利です。
例えば上述の最初の文例では、G%(0)=36、G%(1)=20です。
2番目の文例では、G%(100)=36、G%(101)=50です。
以降、各ドット点のColorDataを 1ドット当たり 3Byteで格納しています。このDataはWindowsのRGB
Dataです。0〜&HFFFFFFの数値です。(N88BASICとは方式が違いますので了承して下さい。)
Sizeの計算式は次のとうりです。
この式は1つのPatternのSizeですから、複数のPatternの場合は足し合わせをして下さい。
必要Byte数=(横のドット数+1)*(縦のドット数)* 3 + 4

添え字の値(Size)=必要Byte数 \ N + 1
但し、整数型配列のとき N = 2
  単精度型配列のとき N = 4
  倍精度型配列のとき N = 8

尚、GET@ 、PUT@命令では、配列は1次元の配列変数として下さい。
  
GET@ コマンドの実行後はLPは最終点(Sx2, Sy2)となります。

サンプル 
10 CLS 3
20 XD=40:YD=20
30 BYTE=(XD+1) * YD *3 +4
40 FACT= BYTE\2+1
50 DIM G%(FACT)
60 LINE (0,0)-(STEP(XD-1,YD-1),1,B
70 CIRCLE (XD/2 , YD/2 ), YD/2,2
80 GET (0,0)-(STEP(XD-1,YD-1),G%
90 FOR X=0 TO 500 STEP 100
100 PUT (x,100), G%
110 NEXT
200 FOR X=0 TO 500 STEP 100
210 PUT (x,200), G%, PRESET
220 NEXT
900 END


この場合、
20行で横 40ドット、縦20ドットとし、
30行でBYTE数を、40行で配列G%のSizeを計算しています。
70行で描いた青色の矩形と赤色の円の図形を80行で読み込み、
90〜110行で 6個 PUT@文でCopyしています。
200〜220行で 6個 PUT@文で反転Copyしています。