扱える数値: 0〜65535(符号なし2バイトの整数のみ) 算術演算子: + 加算 - 減算 * 乗算 / 除算 関係演算子: = 等しい < 小なり > 大なり又は等しい 条件が成り立てば"1"を、成り立たなければ"0"を返します。 例) A=B=C 変数BとCの値が等しければ変数Aに1を、そうでなければAに0を代入 演算子の優先順位: 左から順番に演算が行われます。 演算の順序を変えたい場合は"()"を付けます。 変数: AからZまでのアルファベット1文字を使用します。 配列変数: 1次元のものを1種類だけ使う事ができます。 n番目の配列変数は ":n)"と記述します。 例) :X+3)=y 配列はシステム変数"&"以降のメモリ領域を使用しますが、メモリの上限を超えた かどうかの配列添え字のチェックはしていないので注意が必要です。 システム変数: * メモリ最終番地 システムはこの変数の値のアドレスまでメモリが存在すると認識します。 & プログラム最終ポインタ メモリ上のプログラムの最終アドレスを指します。 例) &=300 プログラム格納開始番地300の場合に&=300とすると、プログラム クリアしたことになります。(BASICのNEW) 例) ?=*-& メモリ最終番地からプログラム最終ポインタを引きますので、 プログラムエリアの残りサイズを表示します。 % 除算の結果の余り 演算子"/"で除算した結果の余りが格納されます。 ) コメント ")"に対する代入の形で、プログラムのコメントを記述できます。 ? ターミナル入出力 ?への代入(書き込み)はユーザーターミナルへの出力命令となります。 ?からの代入(読み込み)はユーザーターミナルからの入力命令となります。 例) ?=2+3 5を画面に出力します。改行はされません。 例) ?="" 改行します。 例) ?="Hello World!" 文字列を画面に出力し、改行します。 例) ?="Hello World!"; 文字列を画面に出力し、改行しません。 例) A=? ユーザーが入力した数値を変数Aに入れます。 # プログラムカウンタ 現在インタープリタが実行中のプログラムの行を番号を表します。 #に0が代入された場合は格納をせず、更新しません。 例) #=1 プログラム行番号1から実行する。(BASICのRUN) 例) #=100 プログラム行番号100から実行する。(BASICのGOTO) 例) #=9999 プログラムの中で一番大きい行番号を超える数字を代入することで プログラムを終了することができます。(BASICのEND) 例) #=N=10*200 条件分岐に使用できます。 変数Nの値が10の場合にN=10の条件が成り立ちますので1となり、 1*200の計算がされて#へ200が代入されます。 変数Nの値が10ではない場合はN=10の条件が成り立ちませんので0 となり、0*200の計算がされて#へ0が代入されますが、格納をせず プログラムカウンタは更新しません。 (BASICのIF N=10 THEN GOTO 200) ! サブルーチンリターン システム変数#へ代入した場合に、その時に実行されていた行番号に+1 した値が!へ格納されます。 そのため、#により実行されたサブルーチンの最後で#=!とすることで サブルーチンを呼び出した行番号+1へ戻ります。 なお、サブルーチンの中で更に分岐を行うと!の値が更新されますので、 あらかじめ!の内容を保管する必要があります。 $ 1文字入出力 文字の入出力を行います。文字コードはASCIIコードです。 例) $=65 画面にAを1文字表示します。 例) ?=$ キーボードから1文字入力し、画面に表示します。 ' 乱数 0〜65535の乱数を返します。 例) A='/10 システム変数%に、0〜9の範囲の乱数が得られます。 > マシン語サブルーチンコール 実装しない。 プログラム格納様式($0300〜) 行番号の下位 1バイト 行番号の上位 1バイト 1行の文字数 1バイト(行番号・ステートメント・エンドマーク) ステートメント エンドマーク($00) 1バイト