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

一括表示

  拡張Fコールint21_7303 2GB超のドライブ情報取得 - konno 25/10/20-01:44 No.12581
(12581) 12581拡張Fコールint21_7303 2GB超のドライブ情報取得  投稿者:konno   2025/10/20(月) 01:44


最近の野ざらし言#6084 あたりの話題です。

DrvSpc2.def
拡張ファンクションコールint21_7303を利用した2GBを超えるドライブ情報取得

めざら資源>VZ Macro FAQ>コマンドラインに有りました。
https://mezala.la.coocan.jp/vz/faq/index.html#command

うちのDEFファイルを見たら、DSKSPC2.DEF というのがあって、あれぇ?
DrvSpc2.def
> 2000/12/18 0.10 int21_3600を利用したdskspc.def初版
> 2000/12/25 0.20 int21_7303を利用した2GB超のドライブ情報取得 dskspc2.def
> 2003/02/01 drvspc2.defに改称

dskspc2.defを改名したのがDrvSpc2.defだったのですね。
FGALDC13 07662 00/12/25 が初出だったようです。すっかり忘れていました。(^^;

DrvSpc2.defを起動して Cドライブを指定すると
[C:\] 全容量:243,195,812KB / 使用済:178,524,744KB / 未使用:64,671,068KB
こう表示されます。

VTDOSのVZファイラー ※ VTDOS.CFGで DISKFREE=K と指定して kbytes 単位で表示
1094 files 64,667,648 bytes free   (kbytes 単位で表示)

DIR C: 66,222,354,432 バイトの空き領域
66,222,354,432 / 1024 = 64,670,268 kbytes  合っていますね。
他の DOSエミュでも見てみました。


MS-DOS Player FreeCOM v7.00
DrvSpc2.def
[C:\] 全容量:243,195,812KB / 使用済:178,551,176KB / 未使用:64,644,636KB

DIR C: 268,431,360 バイトの空き容量があります.
このDIRは DOSのFコールを使用しているようですね。

MS-DOS Player Win95 v7.00
DIR C: 268,431,360 バイトの空きがあります

MS-DOS Player Win98 v7.10 (OSR2?)
DIR C: 63,132.05 メガバイトの空きがあります.

MS-DOS Player WinME v8.00
DIR C: 63,129.92 MB の空きがあります.

こうしてみると Win95までは DOSのFコール、Win98から拡張Fコールに見えますね。


DOSVAXJ3
DrvSpc2.def
[C:\] 全容量:524,240KB / 使用済:268,240KB / 未使用:256,000KB

DIR C: 262,144,000 バイトが使用可能です

あれ? なんだか少ないですね。まるで DOSのFコールのような。
DSKSPC.DEF (DOSのFコール)
C: 536,821,760−274,677,760=262,144,000 [ax=32,bx=16000,cx=512,dx=32765]
これはやっぱり DOSのFコールのようですね。

df
Device kbytes used avail capacity mounted on
C: 243,195,812 178,551,700 64,644,112 73.41% C:\

げげ、DF だと kbytes で正しく表示されているようです。なんで違う?
ちなみに DFは MS-DOS Playerでも DOS Verに関係なく正しい表示のようです。
うーん、拡張Fコール自体は対応しているということでしょうか。
でもマクロでは DOS Ver依存のような? 謎です。
ハッ! DFはCMD.EXEで実行しているのか。なるほど。

DOSBOXX でも見てみました。
DIR 66,195,353,600 Bytes free

うーん、DOSVAXJ3の挙動は謎すぎるので明日 軟式さんに聞いてみようかしら。

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