このフォントデータの無駄に気が付いたので、データの削減を行うことにしました。この状態ではデータのサイズは 84バイトです。文字のサイズは 4×7ドットです。横4ドットは PC-8001mk2では 1バイトです。そのため、1文字のデータサイズは 7バイトで、それが 12種類あるので ...
カテゴリ:Programming > Z80 Assembler
Z80 switchのような連番分岐
Z80 でプログラムを組んでいると、Acc の内容によって、それぞれの処理にジャンプしたいことが割と多くあります。例えば、Acc が 0,1,2... という場合に、それぞれ対応したラベル L0, L1, L2... にジャンプしたい場合です。今回はその実装方法について解説していきたいと思い ...
DMAを意識したGVRAMアクセス
現在、趣味のゲーム制作で PC-8001mk2 専用のソフトを鋭意制作中です。とはいえ、趣味の範囲なので、余暇の時間を使っている関係で、なかなか進捗は遅いのですが…。そして、最近知ったのですが、PC-8001mk2 では、例えテキストの DMA を停止しても、GVRAM(グラフィック画面 ...
Z80 左右判定
自分から見て、相手が左右どちらにいるのかを判定したいことがよくあります。コンパイラ系であれば、内積を使えば一発なのですが、Z80 ではなかなかそういう訳にもいきません。そこで今回は、8方向に移動している自分から見て、相手が左右どちらにいるのかをどう判定すれば良 ...
AILZ80ASMが覚醒進化中!
高機能アセンブラ AILZ80ASM ですが、このところの進化が止まりません。凄いことになってきているので、最近追加された新機能について解説していきます。 #pragma once 多重読み込み防止C# 等の高級言語では、プリプロセッサとして当たり前にように実装されている、多重読み ...
Z80 1バイトデータの分解
今回は本当にちょっとしたテクニックです。Z80のメモリ空間は狭いので、データサイズを小さくするため1バイトに2つの意味を持たせることは結構あります。例えば、 %11100000 種別 %00011111 パラメータ 上位3bitに種別情報があって、下位5bitがパラメータ ...
Z80 タスク管理
先日 X (Twitter) でこんなポストを頂きました。Z80関連の情報を収集していたら、内藤さん(@NAITOTokihiro)の記事がヒット😃https://t.co/JcQKSeTLpnループは速い方が嬉しいですよね😆ということで、自分も考えてみました☺️数値上はDJNZより速い12clockですけれど、メモリ ...
Z80 フレームレート固定
Z80 でフレームレートを固定にする処理の解説です。よくあるのは垂直ブランキング待ちの手法です。ただ、これだと NTSC では 1/60 固定になりますし、また、処理落ちした際は、いきなり次のブランキングまで待たされてしまいます。そこで 2ms 割り込みがある機種では次の考え ...
PC-8001 リセット・オートスタート
今回は久しぶりに PC-8001 について解説してみたいと思います。 PC-8001のメモリ空間PC-8001のメモリ空間は Z80 が扱える範囲である $0000 ~ $FFFF までとなっています。このうち $0000 からは、多くの Z80 CPU 搭載パソコンではシステム ROM が配置されています。理由はリ ...
PC-8801 開発資料
私は凡そ7年間もPC-8801シリーズの担当だったので、ある程度はハードのことも知っているつもりです。少なくとも基本的なことは理解しているつもりですが、弄らなくなって早30年以上が経過して、少し記憶も曖昧になってきています。私が現在手元に保持している88関連の参考書 ...