NEXTOR DDG 03 03
From Z80 Machines Wiki
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