(4783)
4783:
VTDOS 1.15出ました
投稿者:
10#
2010/01/07(木) 01:03
参照先:http://vtdos.web.fc2.com
コメント数 4
ほぼ告知通りの修正内容となっております。
詳細はリリースノートをご覧下さい。
- No.4783 -
このTreeへ
[リストへもどる]
soft
(4783)
4787:
Re: VTDOS 1.15出ました
投稿者:
文太
2010/01/07(木) 15:28
4783 番 10# さんへのコメント コメント数 2
10#さん
以下の3つのファンクションで non-VTDOS, 114, 115 で挙動を観察しました。
1箇所を除き、ちゃんと動くようになっています(もしかして検証が全体に
10#さんに頭痛を引き起こすかもしれませんが…)。
1箇所というのは、「Int21/36h」で、Zドライブに対してです。 G以降には
進めないのでどこからずれているのか分かりません。微妙に違うようです。ある
いは僕のテストのどこかが間違っているのかもしれません。これは容易にありえ
ますので、その場合にはご容赦ください。
>Int21/36h GET FREE DISK SPACE 不具合修正・仕様調整
>Int21/0eh SELECT DEFAULT DRIVE 不具合修正
>Int21/4408 IOCTL REMOVABLE DRIVE 不具合修正
これは、使わないかなぁ、と挫折。途中で色々ありました…。Vzでも使われて
ませんし…。
>Int21/11h FIND FIRST FCB 不具合修正
【資料】
=== test36h.def by B ===;【1箇所問題】
* M
50 ^^ "test36h"
&g("drive") (r<0)?. dx=r,
ax=$3600, &i($21)
(ax==$ffff)? {&?("error")}
? {&?("ax:%u cx:%u",ax,cx)}
*
non-VTDOS 114 115
(C)0 default (C:) ax:127 cx:512 error ax:127 cx:512
A: 1 FD ax:1 cx:512 ax:1 cx:512 ax:1 cx:512
B: 2 none error error error
C: 3 Win HD ax:127 cx:512 error ax:127 cx:512
D: 4 CD-Rom ax:2 cx:2048 ? ax:1 cx:2048 ? ax:2 cx:2048 ?
E: 5 USB memory ax:64 cx:512 ax:64 cx:512 ax:64 cx:512
F: 6 data HD ax:127 cx:512 ax:64 cx:512 ax:127 cx:512
Z: 26 Win work HD ax:127 cx:512 ax:8 cx:512 ax:126 cx:512 ***???***
【ココです】
INT 21 - DOS 2+ - GET FREE DISK SPACE
AH = 36h
DL = drive number (00h = default, 01h = A:, etc)
Return: AX = FFFFh if invalid drive
else
AX = sectors per cluster
BX = number of free clusters
CX = bytes per sector
DX = total clusters on drive
Notes: free space on drive in bytes is AX * BX * CX
total space on drive in bytes is AX * CX * DX (cut)
this function does not return proper results on CD-ROMs; ?
=== test0Eh.def by B ===;【問題なし】
* M
50 ^^ "test0Eh"
&g("drive") (r<0)?. dx=r,
ax=$0e00, &i($21)
&?("%u",ax&$00ff)}
*
non-VTDOS 114 115
A: 0 FD 26 6 26
B: 1 none 26 * 0 26
C: 2 Win HD 26 6 26
D: 3 CD-Rom 26 6 26
E: 4 USB memory 26 6 26
F: 5 data HD 26 6 26
Z: 25 Win work HD 26 6 26
* 考えてみれば(考えてみなくとも)、ドライブ移動に成功したかどうか
教えてくれないというのも、困りものですねぇ。いちいちファイラに行って
確認しました。
INT 21 - DOS 1+ - SELECT DEFAULT DRIVE
AH = 0Eh
DL = new default drive (00h = A:, 01h = B:, etc)
Return: AL = number of potentially valid drive letters
- No.4787 -
このTreeへ
コメント元:4783 へ
[リストへもどる]
pre
(4783)
4788:
テスト願い(INT21 4408)
投稿者:
文太
2010/01/07(木) 15:29
4787 番 文太 さんへのコメント コメント数 1
どなたか、 non-VTDOS 環境(XP Home x86)をお持ちの方に、下のテストをお
願いできないでしょうか。
「ドライブがリムーバルか否か」を知るファンクションなのですが、うちのX
P(NTVDM かな?)では変な答を返してくるのです。
下の表のように、環境によって入れるべき数字が変わってきます。CD-Rom ド
ライブのドライブレターを調べて(DかEかFか…Qとか?)、Aが1と数え始
めてください。Dだと4、Eだと5、Fだと6という具合(メディアが入ってい
ても入っていなくても同じ答だと思います…。うちではそうでした)。
で、下のマクロを VTDOS でない環境で起動し、窓にその数字を入れて下さい。
カーソル位置に結果がプリントされてしまいますので、気をつけてくださいね。
それをそのまま貼ってレスして頂ければ幸いです。うちの(というか割と一般的
に)XPのバグなのかな、と思っています。すぐ他人のせいにする。m(__)m
もし、テストマクロにバグがあったら、お教え下さいね。あり得るので…。
(もちろん、表は VTDOS 115 その他の結果レポートです。115 に問題はあり
ません)
追記:WinMEでも同じ結果ですね。仕様かな?(VTDOSのほうが良い仕様)
キャリーがある場合、
AX == 01H ALコード無効(ファンクション番号)
AX == 0FH BLコード無効(ドライブ番号)
なので、追っかけてみると、
WinMEでは、「AL不正」と出、WinXPでは「BL不正」。な、何?
ブラウン先生またしても沈黙。
テストが間違ってなかったら、これは察せませんねぇ。自分が何かをどっかで
間違えた嫌な予感はしてます…。
=== TEST4408.DEF by B ===;【VTDOS問題なし】
Vzマクロでは、キャリーフラグは r に返ります。
* M
50 ^^ "TEST4408"
&g("drive") (r<0)?. bx=r, r-,
ax=$4408, &i($21)
(r)? {&?("error")}
? {(ax)? "fixed" ? "Removable"}
*
non-VTDOS 114 115
(C)0 default fixed Removable fixed
A: 1 FD Removable Removable Removable
B: 2 none error error error *
C: 3 Win HD fixed fixed fixed
D: 4 CD-Rom error ? ** Removable Removable
E: 5 USB memory Removable Removable Removable
F: 6 data HD fixed fixed fixed
Z: 26 Win work HD fixed fixed fixed
* このファンクションで、有効で接続されているドライブかが確認できますね。
とはいえ、**を見ると、もっとよいファンクションがありそうだ…。
** 発言趣旨↑
INT 21 - DOS 3.0+ - IOCTL - CHECK IF BLOCK DEVICE REMOVABLE
AX = 4408h
BL = drive number (00h = default, 01h = A:, etc)
Return: CF clear if successful
AX = media type (0000h removable, 0001h fixed)
CF set on error
AX = error code (01h,0Fh) (see #01680 at AH=59h/BX=0000h)
- No.4788 -
このTreeへ
コメント元:4787 へ
[リストへもどる]
pre
(4783)
4791:
Re: テスト願い(INT21 4408)
投稿者:
としき
2010/01/07(木) 23:37
参照先:http://www.hinocatv.ne.jp/~toshiki/
4788 番 文太 さんへのコメント コメント数 1
> どなたか、 non-VTDOS 環境(XP Home x86)をお持ちの方に、下のテストをお
> 願いできないでしょうか。
持っているので、ちょっとだけテストしてみました。
さすがに、ドライブ総当りはやっていませんが、うちの場合。
non-VTDOS 115
E: 4 CD-Rom error Removable
確かに、何かおかしいようです。
MSCDEXの関係かなぁ。
- No.4791 -
このTreeへ
コメント元:4788 へ
[リストへもどる]
pre
(4783)
4792:
Re^2: テスト願い(INT21 4408)
投稿者:
文太
2010/01/07(木) 23:45
4791 番 としき さんへのコメント
としきさん
>さすがに、ドライブ総当りはやっていませんが、うちの場合。
ありがとうございました。「総当たり」はもはや必要ないでしょう。一人
やればいい。VTDOSは、WinMEやWinXPより正しい。
で、結果ですが、変ですね。嫌になりますね。
- No.4792 -
このTreeへ
コメント元:4791 へ
[リストへもどる]
soft
(4783)
4793:
Re^2: VTDOS 1.15出ました
投稿者:
としき
2010/01/07(木) 23:54
参照先:http://www.hinocatv.ne.jp/~toshiki/
4787 番 文太 さんへのコメント コメント数 3
> === test36h.def by B ===;【1箇所問題】
うちでの結果と一致していないのは当然として。
だって、ドライブ構成が違うのだから。
でも、ax:127っていうのは、直感的におかしいという気がします。
フロッピーやメモリカードは別として、HDDの場合、たいていは偶数という
思い込みがあるからです。
参考までに、うちの場合。
0 ax:64 cx:512
A:1 error
B:2 error
C:3 HDD ax:64 cx:512
D:4 HDD ax:64 cx:512
E:5 CD-ROM ax:16 cx:2048
- No.4793 -
このTreeへ
コメント元:4787 へ
[リストへもどる]
pre
(4783)
4794:
INT21 36h
投稿者:
文太
2010/01/08(金) 00:34
4793 番 としき さんへのコメント コメント数 2
としきさん
追試、ありがとうございます。ただ、奇数でもいいみたいですよ。
よく分かってないのですが、こんな結果ですし。
AX = sectors per cluster
CX = bytes per sector
ax:127 cx:512
VTDOS|C:\VT>df z:
Disk Free Ver1.14 (C)1994.6 HiRo.
1クラスタのセクタ数 : 127
1セクタのバイト数 : 512
- No.4794 -
このTreeへ
コメント元:4793 へ
[リストへもどる]
pre
(4783)
4796:
vkeyc, ^^, ^@
投稿者:
文太
2010/01/08(金) 01:38
4794 番 文太 さんへのコメント
どこに付ければ良いのか分からないのですが、とりあえず、ここで。
ちょっと10#さんとメールでやり取りし、「vkeycへの対応はVTDOSでは
できないのだ」という返信をいただきました。仕方がない限界があると。
ちょうどテスト・マクロ(^^が起動キーのマクロ)でたくさん実験をした
ところだったので気づいたし、別件もありまして。
>k07s3 (2009-09-09)
> ・^^、^@ のキーをキーボードの刻印通りに入力できるようにした。
で、これも駄目みたいです。VTDOS環境下では、^^, ^@は、黒本どおり、
^6, ^2とやりましょう。
- No.4796 -
このTreeへ
コメント元:4794 へ
[リストへもどる]
soft
(4783)
4798:
Re: INT21 36h
投稿者:
文太
2010/01/08(金) 11:55
4794 番 文太 さんへのコメント
僕も直感的に、128 が正しいような気がしてきました…。昨晩は何も考えてな
かった…。
昨晩のやり取りで、VTDOS(リリース前新版)で、127 が返るようになってく
れた、と報告したのですが…。XPの(NTVDM の?)バグ? また?
バグってるのに合わせてもしょうがないですよねぇ。しかし、こんな環境で
よくVz、平気で動いてますね。実際上(テキストファイルの編集時)はそれほど
問題にならないところだから、なんでしょうかね。誰も気づかない、と。
Windowsのファンクションコール(Win98までは健全なの?)は、あまり信用なら
ないと…??? でも、ファイルの読み書きみたいな大事なところは大丈夫なん
でしょう…???
VTDOS|C:\VT>df z:
1クラスタのセクタ数 : 127
これも、もろにその影響を受けていると…。やれやれ。知りたくないことを知って
しまったような(大きな勘違いだといいんだけどなぁ…)。
- No.4798 -
このTreeへ
コメント元:4794 へ
[リストへもどる]
soft
(4783)
4799:
INT21 36h
投稿者:
文太
2010/01/08(金) 12:10
4793 番 としき さんへのコメント コメント数 1
としきさん
この結果、同じマクロを使ってますよね?
で、OSはなんですか? XP Homeですか?
- No.4799 -
このTreeへ
コメント元:4793 へ
[リストへもどる]
soft
(4783)
4800:
Re: INT21 36h
投稿者:
としき@会社
2010/01/08(金) 12:51
参照先:http://www.hinocatv.ne.jp/~toshiki/
4799 番 文太 さんへのコメント コメント数 1
> この結果、同じマクロを使ってますよね?
> で、OSはなんですか? XP Homeですか?
同じマクロです。
OSはXP Homeです。
- No.4800 -
このTreeへ
コメント元:4799 へ
[リストへもどる]
soft
(4783)
4802:
Re^2: INT21 36h
投稿者:
文太
2010/01/08(金) 13:04
4800 番 としき@会社 さんへのコメント
ありがとう。基礎的な部分はクリアしました。いいでしょう、たぶん。
もう「なぜ」なし。使えれば宜しい。使えないものを使おうとしない。
使う気のないもので遊ばない。はた迷惑。
- No.4802 -
このTreeへ
コメント元:4800 へ
[リストへもどる]
soft
(4783)
4804:
Re^3: 一応解説とリリース告知
投稿者:
10#
2010/01/09(土) 00:42
参照先:http://vtdos.web.fc2.com
4793 番 としき さんへのコメント コメント数 2
>>文太さん、としきさん
クラスタサイズ127というのは512を掛けて16ビットに収まる限界値ですね。
空き容量計算のコードが下のようになっていると、クラスタサイズ128だと
結果が0になってしまいます。(それ以上になると小さくなる)
dx:ax = sectors_per_cluster * bytes_per_sector
dx:ax = free_clusters * ax
Int21/4408のRemovable Checkは、もともとCD-ROMが普及していない頃から
あったファンクションコールで、ブロックデバイスドライバーの
リムーバブルビットを返しているだけだと思います。
FD/MO/HDDなどはブロックデバイスドライバーなので取得できますが、
CD-ROMドライブはブロックデバイスとして扱っていないようですね。
meu -p でDPBを見てみるとCD-ROMドライブは出てきません。
DOSの頃は、SCSIまたはATAPIのポートドライバーと、MSCDEXだった筈ですけど、
このMSCDEXはネットワークリダイレクターなので、ネットワークドライブ扱い
だったと思います。
CD-ROMのファイルシステムはFATでは無いためブロックデバイスドライバーが
利用できないからでしょう。
一方Win32はCD-ROMもネットワークも(その他いろいろも)区別できます。
NTVDMでもファイルシステムは完全にエミュレーションの筈なので、
NTVDM上でどんな結果が返るかも実装依存というか、開発者の裁量ですね。
VTDOSは気を利かせてリムーバブルと報告していますが、
確かに本家とは違うのである種のお節介なんですけどね。
それを言い出すと実は全てのドライブをネットワークとも返しているので、
ネットワークドライブなのにリムーバブルチェックが利くという矛盾もあります。
厳密なチェックをしているDOSアプリにはひょっとしたら不都合かも知れませんね。
P.S. 1.16出ました
- No.4804 -
このTreeへ
コメント元:4793 へ
[リストへもどる]
soft
(4783)
4805:
多謝
投稿者:
文太
2010/01/09(土) 01:14
4804 番 10# さんへのコメント コメント数 1
10#さん
詳細な解説、ありがとうございました。蘊蓄じゃなくて、ものすごく正確な
情報でした。なるほどぉ〜(全部わかったわけではありません。意味なくキッパリ)。
>クラスタサイズ127というのは512を掛けて16ビットに収まる限界値ですね。
>空き容量計算のコードが下のようになっていると、クラスタサイズ128だと
>結果が0になってしまいます。(それ以上になると小さくなる)
127が正しいのですねぇ〜。(>_<)
df.exe のどこが怪しいのか、原理的に考えて1年くらいすれば思い至ったか
もしれませんが…。128 では回ってしまうのかぁ。ありがとうございました。大
きな数、2進数、16進数、2の何とか乗、すこしずつ勉強します。m(__)m
meuで見られるんだ、す、すげえ。
- No.4805 -
このTreeへ
コメント元:4804 へ
[リストへもどる]
soft
(4783)
4814:
Int21/4408ではCD-Romは出ない
投稿者:
文太
2010/01/09(土) 22:29
4805 番 文太 さんへのコメント
分かってないのですが、まあ、個人的・公共的・教育的メモです。
はい、D:ドライブのCD-Romは表示されていません。DPB(Device Parameter Block)
のチェインに入っていないのですね、オッホン(もうブラウン先生のせいにはいた
しません)。ゴホゴホ。
--- meu.doc より---
2.8 -p
DPB(Device Parameter Block)のチェインに従って、Block Deviceの諸元を出
力します。詳しくは後の出力例をご覧下さい。
(※出力例を見てもよく分からないよ。分からなくていいんだよ)
-------------------
>meu -p
Meu.com ver.1.20 1991-94 (c) By SEIN
MSDOS version = 5.50 / revision = 0 / exist in HMA
*** [ DPB ] ***
address device h. d: b/s s/c max c. res fat s/f dir med
---------+---------+--+------+---+------+---+---+---+-----+---
00A7:15FA|89C7:8E04|A:| 11012| 7| 1429|-23804|183|-29864|-20476| 3E
00A7:161B|2D06:C7A4|C:|-19527| 1| 533|-18162| 4|-20248|-32722| 04
00A7:163C|21CD:4AB4|F:|-25368| 35| 1205|-17634| 4|-16242|-16479| 06
00A7:165D|A321:CD48|Z:| 9728|200| 46335| 8| 83|-12984| 1860| BB
- No.4814 -
このTreeへ
コメント元:4805 へ
[リストへもどる]
pre
(4783)
4807:
Re^4: 一応解説とリリース告知
投稿者:
としき
2010/01/09(土) 01:23
参照先:http://www.hinocatv.ne.jp/~toshiki/
4804 番 10# さんへのコメント
> 10#さん
DOS3の時代だから94年ごろ、当時はMSCDEXにパッチを当てて遊んでいたりしたの
で、MSCDEXがネットワークドライブ扱いというのはそのころから知っていました
が、それとリムーバブルドライブというのがどうにもつながっていませんでした。
つまり、リムーバブルなネットワークドライブがあってもいいではないか、と、
深層意識で思っていたようです。
もうひとつ、DOSでNFSにアクセスするネットワークリダイレクタを今でも使って
いますが、これの構造が少なくともキャラクタ型ではないので、ではブロック型
なんだろうと単純に考えてしまった、というのもあります。
> 一方Win32はCD-ROMもネットワークも(その他いろいろも)区別できます。
> NTVDMでもファイルシステムは完全にエミュレーションの筈なので、
> NTVDM上でどんな結果が返るかも実装依存というか、開発者の裁量ですね。
なるほど、便利は便利ですが、ちょっと互換性が不安。
> P.S. 1.16出ました
また試させていただきます。
- No.4807 -
このTreeへ
コメント元:4804 へ
[リストへもどる]
soft
(4783)
4789:
Re: VTDOS 1.15出ました
投稿者:
あきろ
2010/01/07(木) 19:18
4783 番 10# さんへのコメント コメント数 1
10# さん、こんばんは。あきろと申します。
当方、「ど」の付く素人ゆえ、10# さんの vtdos を使わせていただくばかり
で、開発のお力になれずに申し訳ございません。
当方は、vtdos でVzを利用しています。また、vtdos を ckw と組み合わせ
て使うという 10# さんの想定外の利用の仕方も試みております。
(vtdos+ckw では、IMEを windows アプリで使うときと全く同じ状態で
使えます。)
とにもかくにも vtdos を大変にありがたく使わせていただいております。
さて、vtdos ver.1.15 をダウンロードいたし、早速利用させていただきまし
た。感想とご報告を申し上げます。
ckw と組み合わせて利用する時に起きていた、連続した半角文字を入力する
と確定時に文字の取りこぼしが起きるという問題ですが、見事に解決してい
ます。
また、私は「D さんの長押し IME 起動 2」という、キーを長押しすることに
よってIMEの on/off を切り替えるツールを vtdos を利用するときには使
っています。そちらで起きていた問題も解決していました。
↓↓ (以下の問題です)
IMEが off の時に行頭でスペースキーを長押しすると、本来ならIME
が on になって全角空白が入るべきなのに、半角空白が2つ入るという現
象が起きていました。こちらも見事に解決しています。
バージョンアップ、ありがとうございます。<(_ _)>
追伸
(ckw なしの)vtdos でVzを利用したときに、ThinkPad X24 という非力な
PCでは、IME変換確定後の表示が速くなったように感じましたが、私の
気のせいでしょうか。
- No.4789 -
このTreeへ
コメント元:4783 へ
[リストへもどる]
pre
(4783)
4808:
Re^2: 1.16 ありがとうございます。
投稿者:
あきろ
2010/01/09(土) 12:07
4789 番 あきろ さんへのコメント
10# さん、バージョンアップありがとうございます。
ckw に関係するのは、以下の2つかと推測いたしました。
20100108 0116 Win32 GUIプロセス起動時の不具合修正
20100106 0115 キーイベント・wRepeatCount対応(ckw対応)
116 では、「ckw+vtdos」起動時に時々起きていた現象がなくなったように
思います。
115 になり、windows 起動後、「ckw+vtdos」の初回起動で、なぜが vtdos
画面が開かないことがありました。(shift+ctrl+esc でタスクマネージャを
立ち上げると、ロードはされているのですが・・。)原因が、ckw であるの
か vtdos であるのか、あるいは私のPC環境にあるのか、さっぱり分かりま
せんでした。
まだ、短時間の使用ですが 116 では、今のところそのようなことが起きてい
ませんので、「Win32 GUI プロセス起動時の不具合修正」のおかげなのかと
想像しています。
115 以降、「ckw+vtdos」終了時に、ckw がエラーを返すことが時々ありま
す。ckw のバグなのか、はたして私のPC環境によるものか、vtdos が関係
しているのか、こちらの方もさっぱりと特定できませんが、ご報告いたしま
す。
エラーは、特に使用上問題がなさそうなので、気にせずに利用しています。
以上、もしも、全くトンチンカンなことを書いているようでしたら、ご容赦
ください。
私は「ckw+vtdos」をメインに利用することを前提に、試用を始めました。
VzでIMEを普通に使えるようになることは、すっかりあきらめておりま
したので、こうした可能性を非常に喜んでおります。
改めて 10# さんに御礼申し上げます。
- No.4808 -
このTreeへ
コメント元:4789 へ
[リストへもどる]
pre
(4783)
4790:
Re: VTDOS 1.15出ました
投稿者:
としき
2010/01/07(木) 23:10
参照先:http://www.hinocatv.ne.jp/~toshiki/
4783 番 10# さんへのコメント
試用してみました。
今のところ、とても具合がよいです。
こころもち、キー入力の反応がよくなったように感じられます。
これが、キーイベントをいじった成果なのでしょうか。
Vzのファイラーで、Lキーでのドライブ一覧表示や数字キーでのドライブ移動
は、今のところ正常に動作している模様です。
DISKFREE=Mを指定してみましたが、Vzのファイラーでの表示が変わるわけでは
ないのですね。残念なような、ほっとしたような。
どうもありがとうございました。
p.s.
プラグインてなんですか?
- No.4790 -
このTreeへ
コメント元:4783 へ
[リストへもどる]
soft
(4783)
4797:
Win95のが駄目なのでDOS6.2にしました
投稿者:
konno
2010/01/08(金) 01:44
4783 番 10# さんへのコメント
10#さん、いつもありがとうございます。
Win95のcommand.comで試しましたが、VZが起動できませんでした。
setコマンドでみると、
COMSPEC=COMMAND.COM
となっています。VTDOS114では
COMSPEC=C:\UT\COMMAND.COM
なので、SHELLのパスが通ってないのが原因かもしれません。
やはり、DOS7以降は似て非なるものなんですね。DOS6での再現性を高めるほどに
非互換性の問題が出てきてしまうので、この辺が潮時かな。
ということで、文太さんの助けもあり、やっとDOS6.2で試してみました。
問題なく動いているようです。DOS7だとCOPYなどで問い合わせがあったりして、正直
あまり好きではなかったので、DOS6でLFNが使えるのならこちらのほうがいいかも。
今日はもう寝ます。おやすみなさい。
- No.4797 -
このTreeへ
コメント元:4783 へ
[リストへもどる]
soft