Changes

NEXTOR DDG 02 01

26 bytes added, 04:05, 24 February 2019
2.1. MSX-DOS 1カーネル
MSX-DOS 1カーネルは、大きく2つの部分に分けられます。
カーネル共通コードすべての関数呼び出しのコードやFATファイルシステム管理コードなど、ハードウェアに依存しないコードが含まれています。 *カーネル共通コード すべての関数呼び出しのコードやFATファイルシステム管理コードなど、ハードウェアに依存しないコードが含まれています。 ROM内のコードの大部分がこの部分を占めています。
ディスクドライバこれは、必要に応じてカーネルコードによって要求されるように、主にディスクセクタを読み書きするために大容量記憶装置に物理的にアクセスするコードです。それは標準化された入力と出力パラメータを持つ一連のルーチンから成ります。*ディスクドライバ これは、必要に応じてカーネルコードによって要求されるように、主にディスクセクタを読み書きするために大容量記憶装置に物理的にアクセスするコードです。それは標準化された入力と出力パラメータを持つ一連のルーチンから成ります。
カーネル共通コード部分は、100%ドライバに依存しません。使用するディスクドライバに応じてパッチを適用する必要があるポイントがいくつか含まれています。1つはドライバによって制御されるドライバユニットの数、もう1つはドライバが必要とする作業領域の数です。
図1にMSX-DOS 1カーネルの構造図を示します。
<code>
4000h +---------------------+
| |
| |
7FFFh +---------------------+
</code>
図1 - MSX-DOS 1のカーネル構造
図1 - MSX-DOS 1のカーネル構造
MSXコンピュータでは、最大4つのMSX-DOSカーネルROMをアクティブにできます。複数存在する場合は、スロット番号が最も小さいものが「マスター」(カーネル共通コードが実際に実行されるもの)になり、その他のものが「スレーブ」になります(それらのドライバコードだけが実行されます)。
 MSX-DOSは記憶装置をドライブ文字と見なし、ディスクドライバは1つ以上のドライバユニットを提示します。両方のエンティティ間のマッピングは固定されており、1対1です。たとえば、ドライブA:は最初のカーネルのドライバユニット0にマッピングされ、ドライブB:はドライバユニット1にマッピングされます。DOSは記憶装置をドライブレターで見ており、ディスクドライバは1つ以上のドライバユニットを提示します。両方のエンティティ間のマッピングは固定されており、1対1です。たとえば、ドライブA:は最初のカーネルのドライバユニット0にマッピングされ、ドライブB:はドライバユニット1にマッピングされます。