プログラミング指南 - Code Knowledge

ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。

タグ:Z80

PC-8001 シリーズの中で唯一 mk2 だけが 1200baud でのカセット読み込み機能を有しています。ですが、折角の 1200bayd 読み込みは、N80-BASIC では使用されず封印されています。今回はその 1200baud を使って、様々なゲームを読み込ませる手法について解説します。 ファン ...

プログレスバーとローディングアイコンを合体させたのが、今回の XeGrader のスライムです。プログレスバーはどこまで読み込んだかが分かるのは良いのですが、カセットだと時間がかかりすぎるので、バーの動きが少なくて、暴走してても気が付きにくいです。ではと、ローディ ...

乗算に続いて今回は除算、そう割り算です。割り算はA÷Bだと、AからBを何回引けるかという計算なので、単純にA-Bを引けなくなるまで繰り返すと答えが出ます。これまた簡単です。この処理も乗算の時と同様に、最大で256回ループする可能性がある(1で割れば…ですが)ので、こ ...

乗算って、例えばA×Bってのは、AをB回足したのと同じだから、単純に掛ける数の回数で掛けられる数を加算すると、これで答えが出てしまうんです。簡単ですよね。 ただ、この処理系だと最大で256回ループしてしまうので、それを何とか減らしたいワケです。今回はこの乗算につ ...

PC-8001mk2でゲームを制作する上で、避けては通れない問題、それがBEEPを使った音楽再生です。この機種は音を出す方法が 2400Hzという固定の周波数しか出せない BEEP のみなのです。まあ、カセットのリレーを使ってカチカチと音を出せなくはないのですが、それはとりあえずこ ...

このフォントデータの無駄に気が付いたので、データの削減を行うことにしました。この状態ではデータのサイズは 84バイトです。文字のサイズは 4×7ドットです。横4ドットは PC-8001mk2では 1バイトです。そのため、1文字のデータサイズは 7バイトで、それが 12種類あるので ...

Z80 でプログラムを組んでいると、Acc の内容によって、それぞれの処理にジャンプしたいことが割と多くあります。例えば、Acc が 0,1,2... という場合に、それぞれ対応したラベル L0, L1, L2... にジャンプしたい場合です。今回はその実装方法について解説していきたいと思い ...

現在、趣味のゲーム制作で PC-8001mk2 専用のソフトを鋭意制作中です。とはいえ、趣味の範囲なので、余暇の時間を使っている関係で、なかなか進捗は遅いのですが…。そして、最近知ったのですが、PC-8001mk2 では、例えテキストの DMA を停止しても、GVRAM(グラフィック画面 ...

自分から見て、相手が左右どちらにいるのかを判定したいことがよくあります。コンパイラ系であれば、内積を使えば一発なのですが、Z80 ではなかなかそういう訳にもいきません。そこで今回は、8方向に移動している自分から見て、相手が左右どちらにいるのかをどう判定すれば良 ...

今回は本当にちょっとしたテクニックです。Z80のメモリ空間は狭いので、データサイズを小さくするため1バイトに2つの意味を持たせることは結構あります。例えば、 %11100000 種別 %00011111 パラメータ 上位3bitに種別情報があって、下位5bitがパラメータ ...

↑このページのトップヘ