NEXTOR DDG 03 03

From Z80 Machines Wiki
Jump to: navigation, search

3.3.バンク切り替えコードのルール

結果のROMが書き込まれるターゲットハードウェアのマッパータイプがASCII16ではない場合、コンパイルされたカスタムマッピングコードを含むファイルを提供する必要があります。このコードは次の規則に従う必要があります。

1. 長さは48バイト以下でなければなりません。

2.ページ1で、番号がレジスタAに渡される16K ROMバンクを切り替える必要があります(バンクはゼロから始まる番号が付けられています)。 ROMスロットは、ページ1ですでに切り替えられていると想定されています。

3.レジスタペアAFのみが破損する可能性があります。他のすべてのレジスタは保存する必要があります。

4.どのアドレスでも実行できるように準備しておく必要があります(したがって、絶対ジャンプやそれ自体への参照を含めることはできません)。

説明のために、ここでASCII8マッパーの有効なバンク切り替えコードのソースコードを挙げてみます。

rlca
ld (6000h),a
inc a
ld (6800h),a
ret

使用するマッパーファイルとして前のコードのファイルをMKNEXROMに渡す場合は、生成されたROMファイルに8KバンクベースのROMマッパー用の適切なパッチが含まれるように、/ 8:6000パラメーターをコマンドラインに追加する必要があります。 / 8パラメータを不要にするヘッダーを持つ同じファイルは、次のようになります。

db 0FFh
dw 6000h
rlca
ld (6000h),a
inc a
ld (6800h),a
ret