萌えハッカーニュースリーダー

2025/09/28 18:28 Coding a new BASIC interpreter in 2025 to replace a slow one

出典: https://nanochess.org/ecs_basic.html
hakase
博士

やっほー、ロボ子!今日はMattel ElectronicsのECS BASICに関する話題じゃ。

roboko
ロボ子

博士、こんにちは。ECS BASICですか、初めて聞きました。

hakase
博士

Mattelが未発売のキーボードコンポーネントの広告で罰金を避けるために開発したECS(Entertainment Computer System)のために、秘密裏に開発されたBASICインタプリタのことじゃ。

roboko
ロボ子

なるほど。それで、そのBASICインタプリタはどんな特徴があるんですか?

hakase
博士

まず、CP1610プロセッサ(16ビット、1975年発表)用で、拡張BASICインタプリタとして開発されたのじゃ。浮動小数点演算ルーチンも実装されておる。

roboko
ロボ子

浮動小数点演算ですか。独自の32ビット浮動小数点形式を採用したんですね。IEEE-754互換ではないんですか。

hakase
博士

そうなんじゃ。独自の形式を採用したみたいじゃな。あと、Joe Zbiciak (intvnut) が開発したECSキーボード読み取りルーチンを統合して、ターミナル機能も実装したらしいぞ。

roboko
ロボ子

ふむふむ。内部構造はどうなっているんですか?

hakase
博士

CP1610プロセッサはバイト単位ではなくワード単位でメモリを扱うのが特徴じゃ。JLP-Flashカートリッジの8K 16ビットRAM($8000-$9fff)を使用しておる。

roboko
ロボ子

ワード単位でのメモリ扱いですか。BASICの予約語をトークン化して実行速度を向上させているんですね。

hakase
博士

そうじゃ!BASICの行は、行番号、行の長さ、トークン化されたBASICコードで構成されておる。プログラムを逐次的に読み込んで、トークンに応じてコマンドを実行する仕組みじゃ。

roboko
ロボ子

変数にはAからZまでの26個の倍長ワードメモリ空間を使用するんですね。ECS BASICと比較して、実行速度が大幅に向上したとのことですが、どれくらい違うんですか?

hakase
博士

具体的な数値は書かれてないのじゃ。でも、トークン化したり、ワード単位で処理したりすることで、かなり速くなったんじゃないかの?

roboko
ロボ子

なるほど。浮動小数点数の表示ルーチンは、Commodore 64 BASICのマニュアルを参考にしたんですね。

hakase
博士

そうそう。数値の大きさに応じて、整数部と小数部を表示するか、指数形式で表示するかを決定するのじゃ。

roboko
ロボ子

GOSUB/RETURN、FOR/NEXTなどのステートメントや、INT、ABS、SGN、RNDなどの関数も追加されているんですね。

hakase
博士

その通り!READ、DATA、REM、RESTOREなどのステートメントや、DIMステートメントによる配列も実装されておるぞ。

roboko
ロボ子

コントローラ、サウンド、グラフィックス、スプライトを制御するための拡張ステートメントも追加されているんですね。MODE、DEFINE、SPRITE、WAIT、SOUND、STICK、TRIG、KEY、BKなどのステートメントですか。

hakase
博士

そうじゃ!これらのステートメントで、ゲームとかも作れるようになるのじゃ。

roboko
ロボ子

実際に、開発したBASICインタプリタをテストするために、UFO Invasionというミニゲームを開発したんですね。

hakase
博士

そうなんじゃ。LTO-Flashカートリッジにインタプリタをロードして、実機でテストしたみたいじゃな。

roboko
ロボ子

今後の展望としては、文字列処理機能の追加を検討しているんですね。

hakase
博士

文字列処理が加われば、もっと色々なことができるようになるからの。楽しみじゃ。

roboko
ロボ子

開発期間はたったの6日間なんですね。驚きです。

hakase
博士

たった6日!すごい集中力じゃな。天才プログラマーの仕業かの?

roboko
ロボ子

ソースコードはGitHubで公開されているんですね。今度見てみます。

hakase
博士

ぜひ見てみてくれ!しかし、6日間でここまでできるなんて、私も負けてられないのじゃ!

roboko
ロボ子

そうですね!博士も頑張ってください!

hakase
博士

ところでロボ子、ECS BASICで作ったUFO Invasionは、もしや…未確認飛行物体による侵略から地球を守るゲームだったりして…?

roboko
ロボ子

そうかもしれませんね。博士なら、きっとUFOをプログラムで撃退できますよ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search