ソフトな忘却力(53) FreeDOS、bwBASICインタプリタ、GWではないよ

Joseph Halfmoon

古のMS-DOS互換ながら「活きて近代化した」FreeDOS 1.3を、あろうことかArmコアのRaspberry Pi 4上のQEMUを使って動かしてます。今回はFreeDOS上で使えるBASICについてちょいと調べてみました。MS-DOSも初期の頃はまだまだBASICを使っていた記憶。FreeDOSでもOK。

※「 ソフトな忘却力」投稿順 Index はこちら

※実機動作確認には以下を使用しております。

    •  Raspberry Pi 4 model B、Cortex-A72コア(ARMv8-A)
    •  Raspberry Pi OS (64bit) bullseye
    •  QEMU 5.2.0
    •  FreeDOS 1.3
BASIC関係はボーナスCDに収録

FreeDOSは、OSインストールに使用する「Live CD」というCD-ROMイメージ(.iso形式)と、各種ツールなどを収めた「BonusCD」というCD-ROMイメージの2つがダウンロードできるようになっています。このところ使ってみてきた以下の「主力言語処理系」はLive CDに収録されてます。

    • OpenWatcom C/C++ コンパイラ環境
    • NASMアセンブラ

一方、BonusCDの方には「じゃない方」の言語処理系多数が収録されています。BASIC関係では以下の2つの処理系が収録されてました。

    • bwBASIC インタプリタ
    • FreeBASIC コンパイラ

大昔、MS-DOS以前、多くのパソコンじゃROMに焼き込まれたBASICが電源投入で起動してました。そいつらは「インタプリタ」です。一方、フロッピイ・ディスク・ドライブ(これが結構いいお値段していた)を備えた「マシン」ではBASIC「コンパイラ」が使えるOSあり、ということで憧れでした。まあ、当時はBASICコンパイラそのものがお高くて手がでなかったですが。

なんとFreeDOS太っ腹?なことに当時憧れのBASICコンパイラが収録されているじゃありませんか。一瞬触手が動きましたが、サイズみて止めました。OpenWatcomよりはサイズが小さいですが、コンパイラ環境なのでそこそこデカイです。インストールすると「仮想ディスク」のナケナシの容量を食いつぶしてくれそうです。それに今となってはBASICでプログラム書こうとか思わんからのう。。。時の流れよ。

bwBASIC

そこで、インストールしてみたのがインタプリタ処理系で、インストールサイズも小さく「DISKの肥やし」としては少な目で済む bwBASIC であります。御本家マイクロソフト社の GW-BASIC ではありませんので念のため。

bw = bywater

だそうです。

ちなみにマイクロソフト社は、GW-BASICインタプリタ処理系のソースを(MITライセンスで)公開されているので、GW-BASIC処理系を載せることも可能ではないかと思われます。

FreeDOS上で bwBASIC 処理系を導入する場合、DドライブにボーナスCDのISOイメージがマウントされている前提で以下1行で可能です。

C:\>fdinst install d:\PACKAGES\DEVEL\BWBASIC.ZIP

上記ではbwBASICの実行ファイルのディレクトリにパスを通してくれたりしないので、後はよしなに。

なお、インストールディレクトリ中にドキュメント(もち英文)が含まれてます。また、bwBASICのgithubは以下に。

https://github.com/nerun/bwbasic

御本家GW-BASICは開発された1980年代を反映してアセンブラ記述ですが、bwBASICはCです。bwBASICはとっても移植しやすいハズ。FreeDOS以外にも各種のLinuxなどで使えるみたいです。その「歴史」はながく、1980年代初頭にテキサスのお祖母ちゃんが書いたものがその起源だという記述があったような。ホントか?実際には1990年代にCで書き直したものみたいだけれども。

機種依存性の強かった各社のROM BASIC処理系などと比べると、機種固有のグラフィクスとかハードウエアに依存するような部分は無く、極めて「バニラ味」な処理系みたいです。一応、ANSI規格準拠みたい。けれども、一部のBASIC「方言」に細かく合わせるための仕組みを option version 文というので持たせてます。このリストがなかなか充実。その中に年寄が注目してしまったものもありました。たとえば、

    • DARTMOUTH
    • TRS-80

DARTMOUTH大のBASICといえば、BASICの源流というと言及されるやつ?かもしれまへん。使ったことないけど。TRSは「タンディ・レディオ・シャック」ですな。大昔のマシンが今この机の上に蘇る?方言のサポートがあるのは、基本レトロなものどもばかりです。

実行例

まずは「インタラクティブ」なモードで起動。ウエルカム画面が以下に。bwbasicWelcome

レトロな雰囲気だよ。

まずは吉例 Hello world. とな。bwbasicHello

入力したプログラムは、アスキーテキストファイルでセーブできてます。

FreeDOSのコマンドラインから実行するとこんな感じ。bwbasicCommandLine

BASICできてますな。でも今更BASIC思い出すのも辛い。。。

ソフトな忘却力(52) FreeDOS、OpenWatcom C、インラインアセンブラ へ戻る

ソフトな忘却力(54) FreeDOS、MS-DOSを継承するメモリ管理のあれこれ へ進む