NEXTOR DDG 02

From Z80 Machines Wiki
Revision as of 04:28, 21 January 2019 by Kumokosi (talk | contribs) (Created page with "==2. Nextorカーネルアーキテクチャ == このセクションでは、MSX-DOSカーネルの機能とNextorでの変更点についての簡単な説明を含め、Ne...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

2. Nextorカーネルアーキテクチャ

このセクションでは、MSX-DOSカーネルの機能とNextorでの変更点についての簡単な説明を含め、Nextorカーネルアーキテクチャに関するいくつかの基本的な概念について説明します。提供される情報は、ドライバ開発者がドライバコードが実行されるコンテキストを理解するのに役立ちます。 2.1。 MSX-DOS 1カーネル オリジナルのMSX-DOSカーネル(バージョン1と表示されています)は、最初に外部のMSXフロッピーディスクコントローラに埋め込まれたROMとして存在し、その後、フロッピーディスクドライブを内蔵したMSXコンピュータの内部ROMとして存在しました。スロットの1ページ目のアドレス空間(アドレス4000h〜7FFFh)を使用する16K ROMです。

MSX-DOS 1カーネルは、大きく2つの部分に分けられます。

カーネル共通コードすべての関数呼び出しのコードやFATファイルシステム管理コードなど、ハードウェアに依存しないコードが含まれています。 ROM内のコードの大部分がこの部分を占めています。

ディスクドライバこれは、必要に応じてカーネルコードによって要求されるように、主にディスクセクタを読み書きするために大容量記憶装置に物理的にアクセスするコードです。それは標準化された入力と出力パラメータを持つ一連のルーチンから成ります。

カーネル共通コード部分は、100%ドライバに依存しません。使用するディスクドライバに応じてパッチを適用する必要があるポイントがいくつか含まれています。1つはドライバによって制御されるドライバユニットの数、もう1つはドライバが必要とする作業領域の数です。

図1にMSX-DOS 1カーネルの構造図を示します。

4000h +---------------------+

     |                     |
     |                     |
     |                     |
     |        Kernel       |
     |     common code     |
     |                     |
     |                     |
     +---------------------+
     |                     |
     |     Disk driver     |
     |                     |

7FFFh +---------------------+

図1 - MSX-DOS 1のカーネル構造

MSXコンピュータでは、最大4つのMSX-DOSカーネルROMをアクティブにできます。複数存在する場合は、スロット番号が最も小さいものが「マスター」(カーネル共通コードが実際に実行されるもの)になり、その他のものが「スレーブ」になります(それらのドライバコードだけが実行されます)。

MSX-DOSは記憶装置をドライブ文字と見なし、ディスクドライバは1つ以上のドライバユニットを提示します。両方のエンティティ間のマッピングは固定されており、1対1です。たとえば、ドライブA:は最初のカーネルのドライバユニット0にマッピングされ、ドライブB:はドライバユニット1にマッピングされます。