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

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

タグ:アセンブラ

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

高機能アセンブラ AILZ80ASM ですが、このところの進化が止まりません。凄いことになってきているので、最近追加された新機能について解説していきます。 #pragma once 多重読み込み防止C# 等の高級言語では、プリプロセッサとして当たり前にように実装されている、多重読み ...

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

先日 X (Twitter) でこんなポストを頂きました。Z80関連の情報を収集していたら、内藤さん(@NAITOTokihiro)の記事がヒット😃https://t.co/JcQKSeTLpnループは速い方が嬉しいですよね😆ということで、自分も考えてみました☺️数値上はDJNZより速い12clockですけれど、メモリ ...

Z80 でフレームレートを固定にする処理の解説です。よくあるのは垂直ブランキング待ちの手法です。ただ、これだと NTSC では 1/60 固定になりますし、また、処理落ちした際は、いきなり次のブランキングまで待たされてしまいます。そこで 2ms 割り込みがある機種では次の考え ...

今回は久しぶりに PC-8001 について解説してみたいと思います。 PC-8001のメモリ空間PC-8001のメモリ空間は Z80 が扱える範囲である $0000 ~ $FFFF までとなっています。このうち $0000 からは、多くの Z80 CPU 搭載パソコンではシステム ROM が配置されています。理由はリ ...

アセンブラでのマイナス数値がどのように扱われているかの解説となります。ビットシフト系で計算を行う際は、この知識は必要となります。改めて理解しようとすると意外と難解なんです、マイナスの値って。コンピュータが扱う数値表現アセンブラでは2進数からの構成で全ての数 ...

追加調査と @AILight さんによる AILZ80ASM の継続的なアップデートのおかげで、ついに Newシティヒーロー(以下NCH)が、フルアセンブルできるようになりました。何をどう変更したのか、最後に履歴を残しておきます。プリプロセッサtools80 では、そのまま IF ELSE ENDIF ...

私が以前制作した Newシティヒーローは、tools80 というアセンブラを前提にソースが作成されています。今回、このソースを AILZ80ASM でアセンブルが通るように改変してみました。一つ一つ違いについて解説していきます。 ラベルの解釈 - 大文字と小文字tools80 ではラベル ...

私が作成した Newシティヒーローというゲームでは、消費メモリを削減するために様々なテクニックを駆使したのですが、その中でリアルタイムビット左右反転というのがあります。通常、ビット反転を行うためには8回のローテートが必要で、軽い処理ではありません。これをゲーム ...

↑このページのトップヘ