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

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

出典: https://github.com/agsb/milliForth-6502
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

えっと…、知りません。

hakase
博士

65歳のおじいさんが、0.02秒で作ったプロセッサの略…なわけないか!

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

Search