追加調査と @AILight さんによる AILZ80ASM の継続的なアップデートのおかげで、ついに Newシティヒーロー(以下NCH)が、フルアセンブルできるようになりました。何をどう変更したのか、最後に履歴を残しておきます。プリプロセッサtools80 では、そのまま IF ELSE ENDIF ...
タグ:アセンブラ
tools80のソースをAILZ80ASMにコンバートしてみた
私が以前制作した Newシティヒーローは、tools80 というアセンブラを前提にソースが作成されています。今回、このソースを AILZ80ASM でアセンブルが通るように改変してみました。一つ一つ違いについて解説していきます。 ラベルの解釈 - 大文字と小文字tools80 ではラベル ...
Z80 超高速ビット左右反転
私が作成した Newシティヒーローというゲームでは、消費メモリを削減するために様々なテクニックを駆使したのですが、その中でリアルタイムビット左右反転というのがあります。通常、ビット反転を行うためには8回のローテートが必要で、軽い処理ではありません。これをゲーム ...
PC-6001 描画ルーチンの高速化
今回は描画ルーチンの高速化について検証したいと思います。 前回までの描画方法 前回の描画では下記のルーチンを紹介しました。 GRPDraw2x12Sep1:: call VRMAddress ; HL 描画アドレス ex de, hl ; 描画を HL→DE の流れとする push de call .draw ; L 描画 pop de ...
PC-6001 画像の表示
screen 3 の画面に画像を表示するプログラム例を提示します。その前に、今回のサンプル提示で画像コンバーターをバージョンアップしましたので、そちらをお受け取りください。今回のバージョンアップで、画像も混合と分離が選択できるようにしました。ダウンロードは以下から ...
Z80 メッセージ表示
ゲームなんかで良くある、テケテケテケとゆっくり1文字ずつ表示されるアレを、Z80 で作成するにはどうすれば良いのかを記事化しました。基本は前回のプログラムから改変していきます。 ワークエリアを用意する1文字ずつゆっくり表示される処理に変更するには、1文字表示した ...
Z80 BCD数値の表示
以前、Z80 数値の加算と減算で、数値の扱いを BCDで扱うと便利だと説明しました。今回はそのBCD表記から、どのように画面に表示するか、基本的な考え方は Z80 マシンであれば共通ですが、今回は PC-6001 を例に説明していきます。 数値を表示する表示は数値が格納されている ...
PC-6001 クロス開発環境
効率の良い開発を行うには、まず開発環境を揃えるという話をハードとソフトの両面で、以前説明をしました。今回はもう一歩推し進めて、開発効率を上げる工夫にをします。最初にサンプルファイルを提示します。debug.zipPC6001VW4 がインストールされているPCにて、このファイ ...
PC-6001 システムの初期化
マシン語で起動したら、機種判定の後、次に処理すべきはシステムの初期化です。メモリは望んでいない状態かもしれません。割り込みはそのジャンプ先がROMになっているので、そのまま迂闊にVRAMを弄ろうとRAMに切り替えると、その刹那に暴走します。そのため、最小限の初期化 ...
PC-6001 機種判定
ゲームを作っていると、そのゲームプログラム側から機種判定をしたい事が多々あります。全ての機種で問題なく動作するのは、無印 PC-6001 向けに作成された 16KB で動作するプログラムです。それ以外のプログラムでは、動く機種と動かない機種があります。昔は動かないのはユ ...