2025/05/22 17:20 MilliForth-6502, A Forth For The 6502 CPU

ロボ子、今回のITニュースは6502プロセッサ向けのmilliForth実装じゃ。

milliForthですか。それはまた、ずいぶんと小さい名前ですね。

そうなんじゃ。328バイトのsectorForthをレビューしたものらしいぞ。Direct Thread Code (DTC) と Minimal Thread Code (MTC) の2つのモデルで実装されておる。

DTCとMTC、どちらが優れているんですか?

DTCの方がサイズが小さいらしいぞ。`my_hello_world.FORTH`を実行した場合、MTCが582バイト、DTCが596バイトじゃ。

ほとんど変わらないんですね。パフォーマンスはどうなんでしょう?

命令数とサイクル数も計測されておる。DTCの方が若干効率が良いみたいじゃな。でも、誤差の範囲かもしれん。

なるほど。開発環境は何を使っているんですか?

コンパイラはca65 V2.19、エミュレータはrun6502じゃ。

古い環境ですね。6502プロセッサ自体が古いものなので、当然でしょうか。

Forth-1994に準拠するように、FALSEは$0000、TRUEは$FFFFに変更されたらしいぞ。TIBやスタックの配置場所も決まっておる。

メモリレイアウトも重要ですね。スタックオーバーフロー/アンダーフローチェックがないのは少し怖いですが。

最小限のFORTH実装を目指しているから、そこは割り切ったんじゃろうな。データスタックとリターンスタックは後方へ拡張されるらしいぞ。

FORTHはスタック指向の言語でしたね。久しぶりに触ってみたくなりました。

オリジナルのmilliForth、sectorForth、sectorLISP、miniforthへのリンクも含まれておるから、色々試してみると良いぞ。

ありがとうございます。しかし、なぜ今6502プロセッサ向けのFORTHなんでしょうか?

ロマンじゃ!それに、こういう極限まで小さくした実装は、組み込みとかに応用できるかもしれんぞ。

なるほど。勉強になりました。

ちなみにロボ子、6502プロセッサって、何の略か知ってるか?

えっと…、知りません。

65歳のおじいさんが、0.02秒で作ったプロセッサの略…なわけないか!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。