パロアルト版TinyBASICの文法

パロアルト版TinyBASICのアセンブリ言語のソースはインターネットを検索するとあちこちで配布されていて、なぜか少しずつ内容が違う。本物がどういう動きをするか知りたいが、どれが本物なのかわからない。Ron’s BASIC Programming and ChipmunkBasic Home Page というウェブサイトで配布しているソースにリ・チン・ワンの記述の痕跡があって、一瞬、本物かと思ったが、フロッピーディスクを操作できるなどけっこうまともな機能をもっていてガッカリした。そんなわけで、パロアルト版TinyBASICの機能をまねるとはいったものの、実際は東大版TinyBASICをまねる。こういう状況だと、東大版TinyBASICの機能がパロアルト版TinyBASICにいちばん近いと思われる。

現時点で1行入力と先頭が行番号だったときのリストへの保存とLISTコマンドによるリストの表示がほぼ出来上がっている。リストの保存形式は、本物は行番号のバイナリ、ステートメント、改行の羅列だが、処理の都合から先頭に1バイトを追加して1行の長さを保持し、改行もNULLにした。先頭に1行の長さを示す値があるとリストのスペースを少し余分に使うかわりに行を追加したり削除したりするとき行を検索する速度が圧倒的にあがる。また、改行をNULLにするとC言語による処理がやりやすい。

LISTコマンドは引数として表示開始行番号を指定できる。表示開始行番号と表示終了行番号を指定できると説明しているドキュメントがあるが、それはたぶんイッティビッティ(吹けば飛ぶような)コンピュータ社のトム・ピットマンがSWTPCのために開発した別のタイニーBASICだと思う。リストの表示は、東大版TinyBASICだと行頭にスペース、続いて行番号を原則4桁右詰め、そしてステートメントの順になる。行番号は4桁までは桁がそろうが5桁になると1文字分右へ飛び出す。この件と先頭のスペースをどうするか、検討中である。ついでにいうと、東大版TinyBASICのデフォルトの表示は正の数字が7桁の右揃え、負の数字が「-」と5桁の右揃えになる。これはバグか意図したものか、調査中である。

リストの表示で行番号とステートメントの間にスペースがふたつ入る症状で悩んでいたが、何のことはない、入力したリストにスペースがあって、それにもうひとつスペースを加えて表示していたからだ。東大版TinyBASICはskpblでステートメントの前のスペース(を含むブランク)を取り去って保存し、表示するときにスペースをひとつ入れる。はじめはそうしていたが、インデントできたほうが便利だと思ってskpblをなくしたのだった。一案として、スペースがひとつのときは取り去り、複数のときは残すようにすれば、普通のリストがスペースひとつで表示され、インデントもできることになる。しかし、よく考えてみるとオリジナルがインデントできない以上、インデントの習慣は存在しないから、そんな機能は必要がない。やはりスペースは取り去ることにしよう。

広告
カテゴリー: TinyBASIC パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中