[HOME]  [全部表示 会議室風]  [全部表示 保存用]  [HOME]  [リストへもどる]

一括表示


  NT系DOS 5.0の真のバージョンは5.50 - konno 24/12/07-17:27 No.11720

(11720) 11720NT系DOS 5.0の真のバージョンは5.50  投稿者:konno   2024/12/07(土) 17:27


Xの savaさん(LP-Project の Lukewarm氏)の記事で知りました。
> x86版NT系WindowsのNTVDM(DOS 5.0相当だがfunc 3306hの「真のバージョン」では5.50を返す。このことにより判別可能なのは逆に有情か…?)

そうだったんだ! 以前 NT系DOSのVerが 5.5 と表示され、?? と思ったことがありました。

> #7208: Re: commannd.com窓 投稿者:konno   2016/02/21(日)
> Meu.com ver.1.20 1991-94 (c) By SEIN
> MSDOS version = 5.50 / revision = 0 / exist in HMA
> う、commannd.com窓のDOSverは、5.50 ??

この時ははて? と思っただけですが
MEU は func 3306hを使って「真のバージョン」を返していたんですね。
ブラウンさんのリストを翻訳すると

DOS 5+ - 真のバージョン番号を取得
AX = 3306h

Return:
BL = major version
BH = minor version
DL = revision (bits 2-0, all others 0)
DH = version flags

bit 3:
DOS is in ROM

bit 4:
DOS is in HMA.
AL = FFh if true DOS version < 5.0

筆記:この関数は、AH=30h とは異なり、常に真のバージョン番号を返します。 その戻り値は SETVER で変更できます。

このようになっています。
掲示板検索したら、文太さんが過去に言及していました。
> #10540: get true ver (ax=$3306) 投稿者:文太   2023/01/29(日)
この記事で確認用のマクロも貼り付けていました。
-----------------------------------------------------------
=== Macrotmp by B ===; always returns "true" dos version
* M
50 ^^ "Macrotmp"

ax=$3306, &i($21) ;vtdos returns 6.20 here
&m("MS-DOS v%d.%d",bx&$FF,bx>>8&$FF) ;vtdos returns the ver of
; ax=$3000, &i($21) ;command.com used again.
; &m("MS-DOS v%d.%d",ax&$FF,ax>>8&$FF) ;So made, it seems.

*
-----------------------------------------------------------
でもこれは別の目的でたまたまだったようで、私は全然気が付きませんでした。(^^;

      - No.11720 -    このTreeへ           [リストへもどる] pre