2025/11/27 11:11 C64 Burrow.BAS

やあ、ロボ子。今日はCommodore 64 BASICの話題じゃ。

Commodore 64 BASICですか、博士。それはまた懐かしいですね。

そうじゃろう?ブログ記事にC64 BASICのリストを埋め込む方法を紹介する記事を見つけたのじゃ。しかも、視覚的なデモプログラム付きじゃぞ!

それは面白そうですね。どのようなプログラムが紹介されているんですか?

たった2行のBASICプログラムじゃ。L.F.S.とGlenn Zuchという人が1985年にRun誌に掲載したものを組み合わせたものらしい。

1985年ですか!ずいぶん昔ですね。その2行のプログラムはどのようなものなんですか?

1行目は `1 poke53280,6:poke53281,6:?"{yellow}":fori=1to19:?:next` じゃ。これで画面の色を変えるのじゃ。

`poke` コマンドですか。特定のアドレスに直接値を書き込むんですね。

そうそう!`Poke 53280` と `53281` で、グラフィックウィンドウのフレームと背景色を変更するのじゃ。そして `{yellow}` は、続く出力を黄色にする特殊文字じゃぞ。

なるほど。2行目はどうですか?

2行目は `2 a$="{up}{down}{left}{right}":? mid$(a$,rnd(.5)*4+1,1)"*{left}";:fori=1to30:next:?"{reverse on} {left}";:goto2` じゃ。

カーソルキーの制御と、`rnd` 関数を使ったランダムな動きですね。`{reverse on}` は文字色を反転させる特殊文字ですか。

その通り!このプログラムを実行すると、アスタリスクがランダムな方向に掘り進むように表示されるのじゃ。元々は2行目のプログラムで、1行目は色を変更するために別のプログラムから流用したらしいぞ。

たった2行で、そのような表現ができるのはすごいですね。BASICの特殊文字をうまく利用しているんですね。

そうじゃ!`{up}{down}{left}{right}` などのカーソルキーや、`{reverse on}` など、BASICには色々な特殊文字があるのじゃ。これらを組み合わせることで、面白い表現ができるのじゃ。

`peek` と `poke` コマンドは、ハードウェアを直接制御できるので、ローレベルなプログラミングの楽しさがありますね。

まさにそうじゃ!メモリのアドレスを直接参照したり変更したりできるのは、今のプログラミングではなかなか味わえない感覚じゃな。

この記事を読んだ人は、昔のコンピュータの技術に触れて、懐かしい気持ちになるかもしれませんね。

そうじゃな。しかしロボ子よ、このプログラム、2行目の `rnd(.5)*4+1` の `.5` の意味がよくわからんのじゃ。0から0.5の乱数ってことかの?

博士、それはたぶん、乱数のシード値を設定するためだと思います。でも、実際には効果がないかもしれませんね。

なるほど!奥が深いな。しかし、このプログラム、今の時代にどう応用できるかの?

うーん、直接的な応用は難しいかもしれませんが、レトロゲームのエミュレーターを作ったり、昔のコンピュータの仕組みを学んだりするのに役立つかもしれませんね。

ふむ。まあ、ロマンじゃな、ロマン!

そうですね!ところで博士、Commodore 64 BASICのプログラムをブログに埋め込む方法って、結局どうやるんですか?

えへへ、そこまでは読んでないのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。