REM


 [機能] コメントの記述ができます。

 [書式] REM [コメント]

 [説明]
  このあとの文は実行されません。
  REMは省略してアポストロフィ(')で置き換えることもできます。

 [例]



  LET


 [機能] 変数に値を代入します。

 [書式] [LET] 変数[$]=値

 [説明]
  変数の型とデータの型は同じでなければいけません。
  変数名は先頭はアルファベットで以下は他に数字と'_'アンダーラインを使うことができます。
  大文字と小文字は区別され別の変数として処理されます。
  'let' は省略することができます。(SQLモード時は省略できません)
  参照:'func'命令‐グローバル変数定義位置の注意点 も一読して下さい。

 [例]
    let n=2
    m=4
    dim d(4) : d(0)=8
    ss$="hello"
    print ss$;n;m;d(0)
 [結果]
    hello 2 4 8


  DIM


 [機能] 配列変数を定義します。

 [書式] DIM 変数1[$](a[,b][,c]...)[,変数2[$]...]

 [説明]
  配列の大きさを添字で次元の数だけ指定します。
  使用できる添字の範囲は(0~指定した大きさ)までとなります。
  連続で複数定義することもできます。
  文字配列の時は変数名に $ を付けます。

 [例]
   dim member(20,10),name$(20)
   member(15,5)=164
   print member(15,5)
   erase member



  ERASE


 [機能] 配列変数を消去します。

 [書式] ERASE 変数[$][,変数[$]]...

 [説明]
  グローバルな配列と現在のスコープで参照可能なローカルの配列のみ消去できます。

 [例]



  DATA


 [機能] 'READ'文で読まれる数値、文字データを定義します。

 [書式] DATA データ1[,データ2]...

 [説明]
  'DATA'文はどこにでも配置することができます。
  文字変数で読み込むデータはダブルクォーテーションで囲まれていても
  囲まれていなくても読み込むことができます。

 [例] [smp_data.bas]
   10 read a,b
   20 print a;b
   30 read s1$,s2$
   40 print s1$;s2$
   50 print "Line:";dtl
   60 restore 120
   70 read s1$,s2$
   80 print s1$;s2$
   90 'Datagroup
   100 data 10,11,12,abc
   110 data 20,21,22
   120 data Apple,"Orange"
  [結果]
    10 11
   12abc
   Line: 110
   AppleOrange



  READ


 [機能] 'DATA'文から読み込んだデータを変数に格納します。

 [書式] READ 変数1[$][,変数2[$]]...

 [説明]
  文字変数は数値、文字両方のデータが読めます。
  数値変数では数値データしか読み込めません。

 [例]



  RESTORE


 [機能] 読み込まれる'DATA'文の位置を行番号で指定します。

 [書式] RESTORE 行番号

 [説明]

 [例]



  DTL


 [機能] 'READ'文で読まれた'DATA'の行の位置を保持して返します。

 [書式] 

 [説明]

 [例]



  SWAP


 [機能] 2つの数値変数の値を入れ替えます。

 [書式] SWAP (配列)変数1,(配列)変数2

 [説明]
  配列変数にも使用できます。(具体的な配列要素数まで記述します)

 [例]
    st=5:dt=12
    swap st,dt
    print st;dt

 [結果]
     12  5



  SEARCH  (関数)


 [機能] 数値配列変数の中から指定した値を探し出しその添字のナンバーを返す。

 [書式] SEARCH( 数値配列変数名、検索値[、開始添字[、ステップ値]] )

 [説明]
  数値の配列変数から指定の'検索値'を探し出しその添字のナンバーを返します。
  見つからなかった時は-1を返します。
  配列変数は1次配列でなければいけません。事前に DIMで宣言されていることが必要です。
  開始添字は配列のどこから探し始めるかを指定します。省略時は0です。
  'ステップ値'はその間隔で探します。省略時は1です。

 [例]
    dim as(10)
    as(4)=45
    as(7)=28
    print search(as,28)

 [結果]
     7



  RANGE


 [機能] 数値変数の値を指定の範囲内に収めます。

 [書式] RANGE (配列)変数,範囲最小値,範囲最大値,[L]

 [説明]
  変数の値が指定の最小値より小さければ最小値の値に
  最大値より大きければ最大値の値に加工します。
  数値配列変数(添字指定)も使用できます。
  L スイッチ(小文字可)が指定された時は、最小値と最大値は
  ループ状に繋がったものとして、はみ出した部分は逆側に加算されて値が加工されます。

 [例]
     num=120: range num,-50,100: print num
      100
     OK
     num=120: range num,-50,100,l: print num
      -30
     OK


  CLEAR


 [機能] 変数領域の全初期化及び文字、数値変数の領域サイズを決定します。

 [書式] CLEAR [文字変数領域サイズ] [,数値変数領域サイズ]

 [説明]
  全ての変数は初期化されます。(起動時と同じ状態に)
  Open中のファイルは閉ざされます。
  全ての割り込みはOFF状態になります。乱数発生系列も初期化されます。
  文字と数値の変数領域サイズを指定します。
  初期状態では文字4000、数値100000となっています。
  文字はこの値とは別に実データ格納領域を持っています。(1つの文字列データの長さは自由です)
  省略された場合は元の値が維持されます。

 [例]
    clear ,200000
    dim mc(200000)
    '指定した直後に最大でその大きさの配列を定義することができます。


  VARPTR


 [機能] 変数エリアでの変数の格納アドレスを返します。

 [書式] VARPTR("配列または変数名")

 [説明]
  BSAVE,BLOADとセットで使用され数値配列変数の出し入れに使われます。

 [例] [smp_varptr.bas]
    100 dim az(12)
   110az(0)=8:az(1)=345:az(2)=-24
    120 bsave "da.dat",varptr("az")
    130 erase az
    140 dim az(12)
    150 bload "da.dat",varptr("az")
    160 print az(0)
    170 print az(1)
    180 print az(2)
 [結果]
    8
    345
    -24



  BSAVE


 [機能] メモリの変数エリアのデータをファイルに保存します。

 [書式] BSAVE "ファイル名",変数エリアアドレス

 [説明]
  保存したい数値配列のアドレスをVARPTR関数を使って指定します。
  配列の値は小数を切り捨てられて2バイト符号付き整数型へ変形されてから保存されます。
  保存できるのは数値配列のみです。
  配列終了までの長さは自動判別されます。

 [例]
    dim sh(9,9)
    bsave "sh.var",varptr("sh")



  BLOAD


 [機能] ファイルからメモリの変数エリアへデータを読み込みます。

 [書式] BLOAD "ファイル名",変数エリアアドレス

 [説明]
  読み込みたい数値配列のアドレスをVARPTR関数を使って指定します。
  読み込まれる配列は保存されたものと同じサイズでなければなりません。

 [例]
    dim gd(4095)
    bload "gd.var",varptr("gd")