NEXTOR PR 02 08

From Z80 Machines Wiki
Jump to: navigation, search

2.8 _DOSVER(6Fh)

この関数呼び出しは、アプリケーションがMSX-DOS 2またはNextor(通常モードまたはMSX-DOS 1モードの両方)を実行しているかどうかを検出できるようにするために拡張されました。 しかし、同時にオペレーティングシステムがMSX-DOSであることを期待されているアプリケーションも動作します。

Nextorの検出手順は以下のとおりです。アプリケーションは、入力パラメータとして次の「マジックナンバー」を指定して_DOSVER関数を呼び出す必要があります。

B = 5Ah
HL = 1234h
DE = ABCDh
IX = 0

オペレーティングシステムがMSX-DOS2の場合、この関数呼び出しはIX = 0を返します(MSX-DOSは結果を返さない限りIXおよびIYレジスタを変更せず、この関数によってこれらのレジスタに結果が返されないため) 。

Nextorを実行し、マジックナンバーが与えられていない場合、MSX-DOS2との互換性を保つために、関数呼び出しは修正されていないIXとIYを返します。 操作がNextorでマジックナンバーが指定されている場合は、次の情報が返されます。

B =エミュレートされたMSX-DOSカーネルのメジャーバージョン番号(常に2) 
C =エミュレートされたMSX-DOSカーネルのマイナーバージョン番号(常に31h) 
D = NEXTOR.SYSメジャーバージョン番号 BCD形式
E = NEXTOR.SYSマイナーバージョン番号 BCD形式
HL =カーネルROM内のオペレーティングシステム記述文字列のアドレス 
IXh = 1 
IXl =Nextorメジャーバージョン番号(2〜15) 
IYh =Nextorセカンダリバージョン番号(0〜15) 
IYl =Nextorリビジョン番号(0〜255) 

Nextor対応アプリケーションのオペレーティングシステムを検出する手順は次のとおりです。


  1. エラー番号を設定してDOSVER関数を呼び出します。
  2. エラーがある場合(A <> 0)、オペレーションシステムはMSX-DOSでもNextorでもありません。
  3. B <2の場合、オペレーションシステムはMSX-DOS1です。
  4. 0の場合、オペレーションシステムはMSX-DOS2です。バージョン番号については、レジスターBとCを調べてください。
  5. IXhが1の場合、オペレーションシステムはNextorです。
  6. IXhが0でも1でもない場合、オペレーションシステムはMSX-DOSでもNextorでもありません。

HLに返される値は、実行中のオペレーティングシステムを説明する、ゼロで終了する表示可能文字列へのポインタです(例: "Nextor kernel version 2.0")。文字列はカーネルマスタースロットにあり(スロット番号は0F348hにあります)、標準のRDSLT呼び出しで読み替えることができます。