NEXTOR DDG 03 01

Revision as of 04:40, 21 January 2019 by Kumokosi (talk | contribs) (Created page with "===3.1。手動作成=== 完全なNextor ROMファイルを手動で作成するには、以下のレシピに従う必要があります。上記のファイル位置はゼ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

3.1。手動作成

完全なNextor ROMファイルを手動で作成するには、以下のレシピに従う必要があります。上記のファイル位置はゼロベースです。 カーネルベースファイル(NEXTOR.BASE.DAT)のコピーを作成します。 ファイルの末尾にページ0コードを追加します。このコードは、カーネルベースファイルの最初の255バイトから単純にコピーすることができます。 結果のファイルの末尾に、値K(カーネルベースファイルのバンク数)を1バイト追加します(これがドライババンクのバンクIDになります)。 Kの値は、カーネルベースファイル自体の254の位置から読み取ることができます。

手順3で取得したファイルの末尾にドライバファイル(正確には16080バイトの長さでなければなりません。それ以外の場合はパディングが必要です)を追加します。 結果のファイルの末尾に銀行コードを追加します。 ASCII16マッパーをサポートするハードウェアに適したファイルが必要な場合は、このコードをカーネルベースファイルの最後の48バイト自体から単純にコピーすることができます。それ以外の場合は、カスタムマッピングコードを指定する必要があります。 ドライバコードが1つの銀行に収まらない場合は、手順2〜5を繰り返して追加の銀行を追加し、必要に応じて各銀行の銀行IDを増やします。 必要に応じて、バンク0とバンク3の1Kの空き領域にカスタムコードまたはデータを追加するように、結果のファイルにパッチを適用します。ファイルの内容をファイルの位置3BD0hとFBD0hに2回(最大1K)まで入れます。 ターゲットハードウェアのマッパータイプがASCII16でない場合は、カーネル共通コードバンクのバンク切り替えコード(結果ファイルの最初の "K" 16Kブロックの最後の48バイト)にパッチを適用します。カスタム銀行切換コードを使用してステップ3)。

ターゲットハードウェアのマッパータイプがASCII16でない場合は、手順5と8で使用したのと同じカスタムバンク切り替えコードをファイル位置2012に配置します。 ROMマッパーが8Kバンクを使用している場合のみ: a。生成されたファイルの位置F7hに、LD(xxxxh)という命令を書き込みます。ここで、xxxxは、ページ1の前半に表示される8Kバンクを選択するメモリマップポートです(4000h〜5FFFh)。これは32hバイトで、その後にxxxxh自体がリトルエンディアン形式で続きます。

b。ファイルの16K部分すべてに対して前の手順を繰り返します。つまり、LD(xxxxh)、A命令をファイル位置(4000h * n)+ F7hに書き込む必要があります。ここで、nは、0からファイル内の16Kバンクの数から1を引いた数です。 この手順の結果、デバイスドライバが正しく埋め込まれた完全なNextor ROMファイルを使用する準備が整いました。生成されたROMファイルをさらに修正したり、修正したりする必要はありません。