NEXTOR DDG 04 07 01

From Z80 Machines Wiki
Jump to: navigation, search

4.7.1.カーネルメインバンクの空き容量

Nextorカーネルは、2つのメインバンク(通常モードで実行している場合はバンク0、MSX-DOS 1モードで実行している場合はバンク3)に1Kの未使用スペースがあります。メインバンクは通常の状況ではカーネルスロットで恒久的に切り替えられます(他のバンクは一時的なコード呼び出しのためにのみ切り替えられます)、したがってこの領域は標準スロットアクセスメカニズム(CALSLTによるスロット間呼び出し、スロット間呼び出しなど)を通してアクセスできます。 Nextorのバンクページングメカニズムを認識していないソフトウェアでも、RDSLTなどを介して読み取ることができます。このスペースはアドレス7BD0hから始まります。

この領域にカスタムコンテンツを追加する必要がある可能性がある3つのケースがあります。

  • ヌル文字列(フォーマットできないデバイス用)または "片面/両面"文字列(従来のMSXフロッピーディスクドライバを使用している場合)以外の形式選択文字列がDRV_CHOICEによって返される場合DRV_FORMATルーチンこの2つの文字列はすでにカーネルによって提供されています。他の文字列はこの利用可能な領域に明示的に配置する必要があります。
  • RDSLTまたは同等のメカニズムを使用してユーザーソフトウェアによって読み取られるデータ(UNAPI実装識別子など)が必要な場合。タイマー割り込みフックまたは拡張BIOSフック以外のフックにパッチを適用する場合。この場合、ドライバコードへのバンク間呼び出しを実行するコードを*この領域に配置し、カーネルスロットでこのコードへのスロット間呼び出しを行うようにフックを設定する必要があります。
  • ドライババンク内のコードを呼び出す必要がある場合、この領域のコードはCALBNKルーチンを使用する必要があります。この番号はK_SIZEアドレスから読み取ることができます。 詳細は"4.2.6K_SIZE(40FEh)"を参照してください。

この領域に配置されるものは何でも、通常のNextorモードとMSX-DOS 1モードの両方で正しく機能するように、バンク0とバンク3の両方で同一である必要があります。この領域のデータファイルが提供されている場合、MKNEXROMツールは両方のバンクに適切にパッチを適用します。