Changes

NEXTOR DDG 03 01

5 bytes added, 02:24, 25 February 2019
3.1.手動作成
#結果のファイルの末尾に、値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)。
#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ファイルをさらに修正したり、修正したりする必要はありません。