アフィリエイト広告を利用しています
 

広告

posted by fanblog

2023年06月29日

Laboratoryテーマ№5「16ビットアドレス値の10進数表示」




6_30_1.png

さて、今回はLaboratoryテーマ№5「16ビットアドレス値の10進数表示」です。
16ビットアドレス(HLレジスタ)の16進数値を10進数値に変換して、指定の座標に5桁表示するサブルーチンです。

5桁表示の後ろに「00」を表示し、7桁にしてスコア表示していました。
色々なロジックがあると思いますが、私のやり方は単純に10,000の桁から10,000を引いて、引けた数をカウント、次に1,000の桁…とする単純なロジックです。
最大ループ数は10,000の桁=6、1,000の桁=9、100の桁=9、10の桁=9の計33回となります。
他にも、HRAさん紹介の2分法ロジックもありますが(最大値の半分ずつ引いていくロジック(10,000の桁なら6が最大の為、半分の30,000を引く))、プログラムが長くなるので私はこちらを使っていました。
それに、毎回最大ループする訳はないし、例えば表示する値が11,111の場合、断然こちらのロジックの方が早いです。
まぁ、一長一短ですね。

16進数を10進数に変換し、尚且つ指定座標に5桁表示するのサンプルプログラムです。

「10PTSMPL.BAS」【ダウンロード

マシン語での計算結果と、検算用にBASICで単純計算した結果を列記します。
6_30_2.png

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

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

























INOUT
HL表示する値なし
B表示するX座標(0~31)
C表示するY座標(0~23)

「10PRINT.BAS」【ダウンロード

6_30_3.png
マシン語のサブルーチンとして必要なのは&HBF00~&HBF77までです。
&HBF80~&HBF8Fは表示元値を代入してサブルーチンコールします。

では、次回はLaboratoryテーマ№6「自機に向かって飛んでくる敵弾」その③です。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

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

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

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

この広告は30日以上新しい記事の更新がないブログに表示されております。