検索
<< 2024年12月 >>
1
2 3 4 5 6 7
8
9 10 11 12 13 14
22
23 24 25 26 27 28
29
30 31
広告
駿河屋レトロゲーム
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
カテゴリーアーカイブ
ファン
QRコード

2023年06月19日

Laboratoryテーマ??1「マシン語で乱数発生」




6_19_1.png
さて、今回はLaboratoryテーマ??1「マシン語で乱数発生」です。
乱数はアクションゲームや、シューティングゲームにはなくてはならないものです。
BASICなら、A=RND(1)*100の1文で済みますが、マシン語にはそんな命令はありません。
ただ、マシン語で乱数を発生させる方法はいくつかあります。
中でも、R(リフレッシュ)レジスタを使えば、比較的簡単に乱数の代わりとすることは出来ます。

私はゲーム制作初期の頃に、必要に駆られて乱数サブルーチンを作り、特に困ることもなかったので、ずっとそれを使い続けています。
Rレジスタの方法の他、いくつかの方法を掛け合わせて乱数を発生させています。

乱数のサンプルプログラムです。

「RNDSMPL.BAS」【 ダウンロード

実行するとひたすら乱数を発生させ続けます。
大体どの値がどの位出たのかの目安もカウントします。
6_19_2.png

マシン語のサンプルです。
起動すると、RANDOM.BINを作成します。

1個16ビット変数を利用しているので、サブルーチンとしてアドレス変更する際は、そこの変更を忘れないように気を付けてください。(&HE136、&HE137:3ヵ所)

「RANDOM.BAS」【 ダウンロード

6_19_3.png
マシン語のサブルーチンとして必要なのは&HBF00~&HBF17までです。
大きくもないプログラムですので、詳しい解説はしませんが、興味があれば解析してみて下さい。
ミソは150行の真ん中にある、ED,5F(LD A,R)です。

では、次回はLaboratoryテーマ??2「マシン語の掛け算」です。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/12021108
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: