NEXTOR 03 06 09

From Z80 Machines Wiki
Jump to: navigation, search

3.6.9 CALL MAPDRVコマンド

BASIC環境からドライブをデバイスおよびパーティションのマッピングに変更できるようにするコマンドです。これはMAPDRV.COMツールと同等です。

CALL MAPDRVの構文は以下のとおりです。一部のパラメーターはオプションであるため、最も完全な(すべてのパラメーターを使用する)ものから始めて、考えられるすべてのバリエーションについて説明します。各パラメータに設定可能な値の詳細は後で説明します。

CALL MAPDRV(<ドライブ>、<パーティション>、<デバイス>、<スロット> | 0)

指定されたドライブを指定されたデバイスの指定されたパーティションにマップします。これは、指定されたスロットのドライバによって制御されます。スロット番号の代わりに0を指定した場合は、プライマリコントローラのスロットが使用されます。

CALL MAPDRV(<ドライブ>、<パーティション>、<デバイス>) 

指定されたドライブを指定されたデバイスの指定されたパーティションにマップします。ドライバスロットは、すでにドライブにマッピングされているパーティションを含むデバイスと同じであると見なされます。ドライブが現在デバイスベースのドライバに割り当てられていない場合は、 "Invalid device driver"エラーが発生します。

CALL MAPDRV(<ドライブ>、<パーティション>)

指定したドライブを指定したパーティションにマップします。ドライブは、すでにドライブにマップされているパーティションを含むものと同じであると想定されます。ドライブが現在デバイスベースのドライバに割り当てられていない場合は、 "Invalid device driver"エラーが発生します。

CALL MAPDRV(<ドライブ>、-1) 

指定されたドライブをマップされていないままにします。さらにドライブにアクセスしようとすると、 "Bad drive name"エラー(MSX-DOS 1モードでは "Disk I / O error")が発生します。

CALL MAPDRV(<ドライブ>、-2) 
CALL MAPDRV(<ドライブ>) 

指定したドライブをデフォルト値にマップします。起動時にドライブのマッピングが解除されていたり、MSX-DOSドライバまたはNextorドライブベースのドライバにマッピングされていた場合は、ドライブは元のマッピング状態に戻ります。そうでなければ、自動マッピング手順が実行されます(この手順は、NEXTOR.DATファイルが検索されないことを除いて、起動時に実行された手順と同じです。詳細については、"3.2Nextorの起動"参照)。これは、どのデバイスが利用可能で、他のドライブがどのようにマップされているかに応じて、起動時と同じマッピングを持っているドライブでもそうでなくてもかまいません。

コマンドパラメータの構文は次のとおりです。

  • <drive>は、ドライブレターの後にコロン( "A:"など)または数字が続く文字列です。ドライブA:からH:の場合は1から8、現在のドライブの場合は0です。
  • <partition>は0〜255の範囲の数値で、次のように解釈されます。
    • 0:デバイスにパーティションがないと仮定します。ドライブはデバイスの絶対セクタ0にマッピングされます。
    • 1:デバイスの最初の1次パーティション。
    • 2、3、または4:デバイスパーティション2が拡張されている場合、番号はそれぞれ1番目、2番目、または3番目の拡張パーティションとして解釈されます。それ以外の場合、番号はそれぞれパーティションの2、3または4番目の1次パーティションとして解釈されます。
    • 5以上:番号は、デバイスの(n-1)番目の拡張パーティションとして解釈されます。
    • <device>は1〜7の範囲のデバイスインデックスです。デバイスに複数の論理ユニットがある場合は、次の計算式<デバイス> + 16 * <論理ユニット>を使用します。論理単位の可能な値も1から7です(0も受け入れられ、1として解釈されます)。
    • <slot>は0〜3の範囲のスロット番号です。スロットが拡張されている場合は、式<メインスロット> + 4 * <サブスロット>を使用します。特別な場合として、スロット番号として0が指定され、サブスロット番号が指定されていない場合は、1次コントローラーのスロットが使用されます。

MSX-DOS 1モードでは、Nextorアーキテクチャによって課される追加の制限がいくつかあります。

  • 指定されたドライブは、起動時にデバイスベースのドライバにマップされている必要があります。ブート時に、マップされていないドライブ、またはMSX-DOSドライバまたはNextorドライブベースのドライバにマップされているドライブのマッピングを変更することはできません。
  • 新しいマッピング情報は、異なるパーティションやデバイスを指定することがありますが、ドライバスロットは起動時にドライブに割り当てられたものと同じである必要があります。システムにNextorカーネルが1つしかない場合、これは問題になりません。また、MSX-DOS 1モードでは、ドライブをサポートされていないパーティションタイプ(1つのFATあたり3つ以上のセクタを持つFAT16パーティションまたはFAT12パーティション)にマップすると、常に "ディスクI / Oエラー"が発生します。そのドライブにアクセスするとき。これは、デバイスが実際に故障していることを意味するのではなく、Nextorがアクセスを拒否したことだけを意味します。