bootBASIC - ブートセクタやCOMファイルに格納できるわずか512バイトのBASICインタプリタ

S 20190801 193246

一般にプログラミング言語は複雑で、実行ファイルのサイズも大きなものになりがちです。

本日紹介する「bootBASIC」はそのイメージを打ち破る極小サイズのBASICインタプリタです。アセンブラ言語で記述されていて8088プロセッサと互換性を持ち、ブートセクタやCOMファイルに格納できる512バイトのサイズを実現しています。

bootBASICのソースコードはnasmを利用してアセンブルすることができますが、GitHubプロジェクト自体にcom/imgファイルが含まれているため、これを使用してそのまま実行することもできます。

bootBASICの実行方法

bootBASICはCOMファイルあるいはイメージファイルの形式で提供されています。

COMファイルはmacOS上のVirtualBoxで動作するWindows XPでテストされていて(複雑です)、一方のイメージファイルはqemuを用いて実行することができるとのことです。

今回は以下のようにqemuを利用してイメージファイルを実行してみました。

qemu-system-x86_64 -drive format=raw,file=basic.img

実行後プロンプト「>」が表示されたらBASICを使用することができます。

例えば"Hello World"を表示したい場合、以下のように直接実行できます。

print "Hello, world!"

入力したコードをプログラムリストとして保存したい場合、頭に行番号を追加します。

10 print "Hello, world!"

プログラムリストの確認は「list」。実行は「run」です。

S 20190801 193619

もう少し複雑な例で1から10までカウントするプログラムは以下の通りとなります。

10 a=1
20 print a
30 a=a+1
40 if a-11 goto 20

入力後「run」で実行すると1〜10の数字が表示されます。

そのほか使用できる文字の種類の制限や、行番号の制限など言語仕様に関しては公式サイトで詳しく説明されています。

まとめ

bootBASICは512バイトのサイズに収まる極小サイズのBASIC言語です。アセンブラ言語で作られたコンパクトプログラミング言語に興味のある型はソースコードを参照してみてはいかがでしょうか。

スポンサーリンク