見出し画像

BASICの進化 - OSとしてのDISK BASIC

パソコンのデータやプログラムをカセットテープに読み書きしていたときには、単に読み込んだり書き込んだりする程度の処理しか必要ではありませんでした。ところがフロッピーディスクには、複数のデータやプログラムをしまうことが出来るので、それらを「管理」する必要が出てきます。

マイクロソフト製のBASICをROMに搭載しているような初期のパソコンでは、フロッピードライブを接続する際には、ディスクを扱う拡張機能をフロッピーディスクで供給し、起動時にこれを読み込ませて使うことで使えるようになっていました。この拡張機能を含んでいないBASICをROM BASIC、拡張機能を含んだBASICをDISK BASICと呼びます。

DISK-BASIC

DISK BASICが起動されると一部の機種ではいきなり画面の上部に懐かしい

How many files(0-15)?

などと表示されて、普通はここでリターンキーを押して始まるわけです。

PC-88関連の基礎知識

How many files(0-15)?とは [PC98]

DISK BASICでディスク周りの命令「だけ」が拡張されているわけではなく、ROMに入れることが出来なかった意外な命令も増えていたりするので、ROM BASICで動かす時にビックリすることもあるのですが、両方のBASICで動かすプログラムなんて、そうそうあるものでは無いので、あまり気にしていませんでした。という訳で、当たり前ですがDISK BASICを動かすと余分なメモリが必要になるのでBASICのフリーエリアが減ります。先のHow…は、同時に開けるファイルの数を指定するもので、ここで大きな数字を指定するほど、同時に多くのファイルが開けるのですが、それだけフリーエリアが減ってしまうわけです。

DISK BASICでも、普通の読み書きはPRINT#であるとかINPUT#などはROMの時と変わらないのですが、固有の命令としてFILEDであるとかPUTが追加されています。そして意外と便利なのがDSKI$とDSKO$で、セクタを指定して直接読み書きが出来ます。LOADとSAVEは、ファイル名を扱うように拡張されているだけですが、バイナリを読み書きするBLOADとBSAVEが増えています。

DOSとしての命令ではファイルの一覧を表示するFILES(これを印刷するならLFILES)、ファイル名を変更するNAME、ファイルを削除するKILLなどがあります。変わったところではファイル属性を扱うATTR$であるとか、情報を取るDSKFですかね。このように単なる入出力とOSとしての機能が混在しているのがDISK BASICで、その意味ではBASIC自身がOSでした。

面白いのがBASICが前提なので、RUNでプログラムを起動できるだけではなく、CHAINを使うことで、現在の変数の値を保ったままプログラムを起動することができます。この時に引き継ぐ変数を制御するためにCOMMONというのもあって、大きなプログラムを分割して動かすということも、良く行われていました。

日本語関連の機能はDISK BASICで拡張されたもので、AKCONV$、KACNV$を始めJIS$ KEXT$ KINPUT KINSTR KLEN KMID$ KTYPEといった命令も追加されています。KI/KOで文字列中の日本語にモードを切り替えていたので、普通のBASICにある文字列命令ではうまく扱えなかったからです。これがMS-DOS上のDISK BASICだとまた扱いが変わるので、これらの命令を見かけたら、チェックしないとならないところです。

他にDISK BASICのみのものも幾つかあるようですが、もうそれは機種ごとに違うので割愛です。

こんな環境でディスクを扱っていたので、DOSと呼ばれるOSが使われるようになるには、心理的な障壁があったのかもしれません。そもそもOSって何なの?というところから理解できていなかったんですよね。DISK BASICはMS-DOS上で動くものもあったのですが、ここへ移植する時にもDOSに戻らなくてもBASICでやればいいじゃないという感じではありました。BASICは、機種ごとに微妙な違いがあったものの、ハードをしゃぶりつくせるのに対して、DOSを使うと標準化されているものの、機種ごとのハードウェアを使いたいときなどに、痒いところに手が届かないことが多かったんですよね。

ヘッダ画像は、しまい込まれていたPC98用のシステムディスク。未開封です。欲しい方がいたりするかなぁ。

#DISKBASIC #DOS #日本語文字列 #コマンド

この記事が気に入ったらサポートをしてみませんか?