2020.9.26
前へ
次へ
ホームページトップへ戻る

[新連載]復活!TINY BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
すべてはここからはじまりました。
中日電工も。
40年前を振り返りつつ新連載です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜



[第98回]


●プログラムファイルを差し換えました

今回の記事を書くためにTINY BASICのテスト作業をしていてプログラムのバグに気が付きました。
いえ、TINY BASICではありません。
バイナリファイルとしてセーブしたTINY BASIC用のプログラムファイルTBFをTXTに変換するプログラムTBF2TXT.EXEです。
[第93回]のソースプログラムリストと[第95回]のダウンロード用のリンクは修正済みのものに差し換えました。
もし以前のファイルをダウンロード済みでしたら旧ファイルを削除して修正済みのファイルを再ダウンロードしてください。

●「中日電工版」TINY BASIC(スクリーンエディタなし)の最終版を作りました

前回は「スクリーンエディタ版」を「中日電工版」TINY BASICの最終版にするつもりです、と書きました。
それ以前の最終版(tinybste.txt)はとりあえずの暫定的なものですが、それにはもう手を加えないつもりでした。
そういうつもりだったのですが、やっぱりそれじゃあ中途半端でちょいと心残りです。
今までのものもせっかくそこまで作ってきたのですから、あともう少し手を加えてとりあえずは完成したプログラムにしておいてから、さらにそれを機能アップしてスクリーンエディタ版を作る、というのがまっとうな手順でありましょう。

前回ちょっと書きましたが、オリジナル版の当時と違ってRAM容量には余裕がありますから、せめてシステム用のワークエリアはもう少し拡げるべきでしょう。
オリジナル版ではキー入力時に入力した文字を訂正するBS的な機能がついていたようです。
やっぱりせめてBS(Back Space)は必要でしょう。
またオリジナル版ではユーザープログラムの実行中やLIST表示中に途中でキー入力によってブレークさせる機能もついていたようです。
確かにブレーク機能も必要でありましょう。
そのいずれの機能も「中日電工版」TINY BASICの暫定版(tinybste.txt)にはありません。

ということでスクリーンエディタ機能はありませんが、上記の機能を付加した「中日電工版」TINY BASIC(スクリーンエディタなし)の最終版を作ってしまいました。
今までの旧版と同様にダウンロードしていただけるようにするつもりですが、今回はとりあえず新たに付加した機能について実際にテスト中の画像をお見せしながら説明をすることにします。

ZB3BASICを起動して、「中日電工版」TINY BASIC(スクリーンエディタなし)の最終版をロードしました。
最終版はtinybs2e.binです。

まずはBS(Back Space)のテストです。
10A=12345
と入力しました。

上の画像の続きです。

[Back Space]キーを2回押しました。

上の画像の続きです。

そのあと[6][7]と入力して[Enter]を入力しました。
LISTコマンドを実行して正しく入力されたことを確認しました。
BSのテストの続きです。
最後のOKの表示の下に’)’が表示されるはずですがそれが見えません。
実は’)’が表示されたあと[Back Space]を入力してカーソルを画面の左端まで移動したのです。

上の画像の続きです。

その位置から20P.A[Enter]と入力しました。
通常の’)’の表示を[Back Space]で消してプログラム行を入力したことになります。
そのあとLISTコマンドを実行して、そのようにしても正しく入力されていることを確認しました。
その次の30行はデタラメの入力です。
入力バッファを越えて入力したときのテストをしているのです。
オリジナルのTINY BASICは1行が最大64字だったようです。
ZB3BASICでは1行は最大80字ですが、Windows側のプログラムとの都合で、スクリーンエディタなし版はオリジナルと同じ1行64字にしてあります。
入力文字が64字を越えたらどうなるかのテストです。
上の画像では先頭の30から最後のJまでが丁度64文字です。

上の画像の続きです。

そのあと続けて[K][L][M]と入力しましたがカーソルはそこから移動せず続けて入力した文字はその位置で上書きされています。

上の画像の続きです。

その位置で[Enter]を入力しました。
そのあとLISTコマンドを実行して確認しました。
最後の’M’の位置で[Enter]を入力したので、それより前の文字(’I’)までが入力されています。

次はブレーク機能のテストです。

ブレーク入力はZB3BASICと同じで、[Ctrl]+[B]を入力します。
40ABCDEと入力したところで[Ctrl]+[B]を入力しました。
行入力時のブレーク操作では[Ctrl]+[B}を入力してブレークしたことを明示するため’^B’が表示されたあと通常の行入力後と同じように改行後に’OK’と’)’が表示されます。
そのあとLISTコマンドを実行して40行は入力されていないことを確認しました。

ブレーク機能のテストの続きです。

無限ループになるプログラムを作成して実行しました。
実行中に[Ctrl]+[B]を入力しました。
プログラムの実行が途中で中止されました。
実行中のブレークの時には’^B’は表示されません

次もブレークのテストです。

今度はLIST表示中のブレークです。
LIST表示は結構速いので余程長いプログラムを用意しないと[Ctrl]+[B]を入力するよりも前に表示が完了してしまいます。
デタラメのプログラムですが上のように長い文字数の行を60行用意しました。
上は普通にLIST表示を行なったところです。

今度はLIST表示中に[Ctrl]+[B]を入力しました。

なんとか間に合いました。
途中でブレークしてLIST表示が中止されました。

今度はINPUT文でのBSの操作です。

プログラムを実行してA:の表示に1234567と入力したところです。
もちろんこれは32767を越えていますから入力の誤りです。

上の画像の続きです。

[Back Space]を2回入力して訂正しました。

上の画像の続きです。

そこで[Enter]を入力しました。
下に12345と表示され、正しく入力されたことが確認できました。
続いて次の表示に6789と入力しました。

上の画像の続きです。

そのあと[Back Space]を続けて入力して画面左端までカーソルを移動しました。
そこで876[Enter]と入力しましたが、その場合にも正しく入力されて876と表示されました。
これはテストのためあえてそのようにしたのですが、’:’の前まで表示を消す意味はありませんし、本来はすべきではありません。

今度はINPUT文でのブレーク操作です。

A:の表示に123と入力したあとそこで[Ctrl]+[B]を入力しました。
INPUT文でのブレーク操作では[Ctrl]+[B]を入力してブレークしたことを明示するため’^B’が表示されたあとプログラムの実行が中止され、’OK’と’)’が表示されました。

「中日電工版」TINY BASICを終了してZB3BASICに戻るときは[Ctrl]+[Z]を入力します。

’^Z’は表示されませんが、END of TINYBASICと表示されてZB3BASICに戻ります。
ZB3BASICを終了するには/exit[Enter]を入力します。

復活!TINY BASIC[第98回]
2020.9.26upload

前へ
次へ
ホームページトップへ戻る