A1.1 Plain_Basicは、小単位のコマンド駆動型プログラム(command driven program)の集合です。このユーザインタフェースは古典的なCUI方式で設計されています。Windowsの環境ですので、メニューを使う処理もありますが、それはPlain_Basicの主な利用とは異なるオプション的な作業に当ててあります。
A1.2 Consoleのラベルが付いたテキスト入力窓(Edit)をアクティブにすると、Plain_Basicは、キーボードからの文字入力を受け付けます。一行単位の文字並びでコマンドやステートメントを入力すると、直ぐに実行します。この状態をダイレクトモード(直接モード)と言います。コンソール画面は、単純なテキストエディタの機能を持つRichTextEditが載せてあって、キーボードからの入力テキストをエコー表示します。
A1.3 毎回、キーボードから文字列を入力する手間を省くため、文字列を内部プログラムに保存しておいて、まとめて連続実行(RUN)させることができます。内部プログラムの作成は、ステートメントの頭に整数の行番号(ラベル)を付けてキーボードから入力します。
A1.4 歴史的な理由があって、コマンドやステートメントに使う英字は大文字で表現してあります。ユーザレベルでの文字入力は、大文字・小文字を区別しません。
A1.5 内部プログラム文はBasic文の文法で作成します。実行順序に合わせて昇順に、1-32767の範囲で整数の行番号ラベルを付けます。番号付け作業を助けるために、AUTOコマンドを入力すると、行番号を昇順に自動的に発行しますので、本文のステートメントだけを入力します。この状態が(プログラム)編集モードです。編集モードから抜け出すにはEXITと入力します。
A1.6 作成したプログラムの確認はLISTコマンドでテキストウインドウに書き出して行います。このプログラムをテキストファイルに保存するにはSAVEコマンドを使います。逆に、テキストファイルからプログラムを読み込むのはLOADまたはMERGEコマンドです。
A1.7 ダイレクトモードでRUNコマンドを入力すると、変数などをクリアして初期状態にして(プログラム)実行モードに入ります。内部に保存されたステートメントを先頭から順々に読んで、これを解読して実行します。GOTO文は、指定された行番号のステートメントから実行させるコマンドとして使用できます。このときは、変数などのクリアは行いません。
A1.8 一部のステートメントは、複数のステートメントの組で実行しなければならないものがあります。例えば、FOR-NEXT, GOSUB-RETURNなどです。これらのステートメントは、ダイレクトモードでは実行できません。また、AUTO, EXIT, LIST, LOAD, SAVE, RUNなどはコマンドですので、逆にこれらをプログラム文に書いて実行させることはできません。
A1.9 コマンドを含め、ユーザがキーボードから入力したそのままを記録したテキストファイルを作って、それを入力させて実行させることをバッチ処理と言います。Plain_Basicでは、バッチファイルからテキストを読み込むコマンドはDECKです。用語としては一寸古いのですが、カードや磁気テープなど、外部に作られたデータをこのように呼ぶ習慣があったためです。この機能があると、ユーザがキーボードから解放されて、デモンストレーションを行うことができますので、教育用にも利用できます。
A1.10 バッチ処理を行わせると、何が現在進行中であるかが分からないことがあります。これを助けるため、エコーをコンソールウインドウに表示するようにできます。エコーという用語は、端末機のキーボードから通信回線を使ってデータをホストコンピュータに送ったとき、実際に正しく受信されたことの確認をとるため、同じデータを送り返して表示する機能を言いました。ECHON/ECHOFFのコマンドはDECKファイルから入力されたテキストを、コンソールウインドウに表示するか、しないかを切り替えます。
A1.11 実行モードのとき、何行目のプログラムが実行されているかをモニタする機能をトレースと言います。TRON/TROFFのコマンドはトレースの機能を「使う・使わない」を切り替えます。トレースは、実行しているプログラム文の整数ラベルをテキストウインドウに表示します。エコーとトレースは、プログラム文の実行状態をモニタしますので、プログラム文のデバッグに応用することができます。
A1.12 キーボードからの文字入力については、システムに依存する制限が種々あるため、非常に基本的な条件で設定しています。一行に書ける文字数は、半角約127文字以内(80文字以内が手頃です)、変数や配列名は15文字までの英数字の並びまで、文字列変数も15文字までの固定長です。因みに、最近のプログラミング言語では長い変数名が使えるようになりましたので、一行に許される文字数が長くなっています。
A1.13 文字列のカット・コピー・貼り付けなど(Cut,Copy,Paste)の基本的な処理はWindowsのEditメニューの定番ですが、これはCtrlキーを併用するキーショートカットが使えますので、意図的にメニューには含ませてありません。
A1.14 Plain_Basicのプログラム文は1行で完結させ、次の行に論理的に継続するように分割できません。しかし、短いプログラム文を、コロン(:)を挟んで書くマルチステートメントができます。これは、プログラムリストの行数を節約し、見易さを助けることができます。
A1.15 Plain_Basic は長大なプログラム文を作成して実行することを考えていませんので、プログラム文全体の文字数は最大で30KB程度の制限があります。これより大きくなるプログラムは、MERGEコマンドを使うことで対処できます。
A1.16 Plain_Basicの言語仕様は、Fortranの言語仕様を真似た部分が幾つかあります。まず、暗黙のデータ型として、型宣言なしで英字のI-Nで始まる変数名や配列名は整数型、それ以外は実数型です。配列のデータ並びは、列の並びです。配列の要素を示す記号は、丸括弧()ではなく、C/C++言語に倣ってブラケット[]にしました。例えば配列A[2,3]は、メモリの中ではA[1,1], A[2,1], A[1,2], A[2,2], A[1,3], A[2,3]の順で並びます。また、配列の基底は1です。
A1.17 Plain_Basicでは、配列名を宣言なしに使うこともできます。このときのデフォルトの配列寸法は3に設定されています。
A1.18 8ビットマイコン時代のBasicは、長い変数名が使えなかったので、短い英字名に記号の添字を付けて型を区別する方法が使われました、例えば、A%, A!, A#, A$は、それぞれ整数型、実数型、倍精度実数型、文字列型の変数名です。この仕様のうち、Plain_Basicでは文字型を表す$だけを採用しています。添字記号を付けた全体の変数名も15文字までです。
A1.19 キーボードから直接入力できる文字種は、それ程多くはありません。歴史的には、キーボードはテレタイプライタ(TeleTYpewriter)で利用できる文字・数字・記号に限られていました。これをTTYコードと言い、英字の小文字を使わないコード系です。Plain_Basicは英小文字も使えます。漢字などの日本語は、ローマ字で入力し、カナ漢字変換をしますので、直接に入力できる文字ではありません。しかし、二つの引用符""で囲めば、PRINT文で利用できます。
A1.20 コマンド入力型のプログラムは、コマンド名を忘れると何もできません。この不便を解消するため、HELPの機能をメニューから使えるようにしました。
A1.21 Plain_Basicを使い慣れてくると、便利な機能が欲しくなります。それは、ユーザにプログラミングの知識が増えたことですので、教育上で効果があったと考えることができます。このことを配慮して、Plain_Basicでは、敢えて古典的で保守的な機能に限定してあります。便利な機能への要求は専門分野と関係しますので、Plain_Basicから特化した幾つかの発展バージョンがあります。幾何の計算を便利にしたGeometry_Basic(G_Basic)、幾何モデリングのサブルーチンパッケージを組み込んだGEOMAP+Basicなどがそうです。これらのユーザーズマニュアルでは、このPlain_Basicのマニュアルを基礎参考資料としています。