VZEditor/VZ-PC98/VMAP.DOC
Yoshihiko Hyodo 6f06b9514a first commit
2024-11-18 22:21:26 +09:00

322 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

==============================================================================
VMAP Version 2.01 Copyright (C) 1989-91 by c.mos
  
==============================================================================
■ VMAPとは
 VMAPは、メモリの利用状況を表示する、MS-DOS汎用ツールです。
今回、国内各社のMS- Ver5(以降DOS5と記述)の発売に合わせて、
Ver2にバージョンアップ致しました。
■ Ver2の主な改良点
・DOS5および各社仮想86ドライバのUMBに対応
・DOS4,5のMCB上のオーナー名に対応
・DOS4,5のデバイス・サブセグメントに対応
・XMSのHMA、EMB利用情報の表示
・オプション指定により、コンベンショナル・メモリ、UMB、EMS&XMSを
 それぞれ個別に表示
・オプション指定により、複数ブロックの圧縮の抑止
・1行単位にファイルハンドルで出力し、画面表示を高速化
■ 起動方法
A>vmap[Return]
A>vmap <オプションリスト>[Return]
<オプションリスト>
c: Conventional Memory コンベンショナル・メモリ
u: Upper Memory Blocks (UMB)
m: Conventional & Upper Memory cu と同等
e: EMS & XMS
n: No compress multi blocks 複数ブロックをまとめずに表示
・オプションの前の「- /」は必要ありません。
・何も指定しなかった場合は、全ての内容を表示します。
・複数のオプションを続けて指定できます。ただし、重複した指定をしても、表示内容
 は重複しません。
・上記以外の文字(例えば ? hを指定すると、Usageを表示します。
・文字コード20h3Ehの文字例えば - /)は無視します。
■ 実行例
1. PC-9801RA21, DOS3.3c, Memory-Pro386 Ver1.5
A>vmap
VMAP Version 2.00 Copyright (C) 1989-91 by c.mos
addr PSP blks size owner/parameters hooked vectors
---- ---- ---- ------ ------------------------- -----------------------------
D201 D213 2 6544 sc b: /sa /! 12 13 1B
D39C FF01 24 49536 <buffers>
DFCC-E000 1 832 <free>
--- UMB total: 56 KB ---
1045 sys 1 8192 <config>
1246 <-- 2 4528 command 22 23 24 2E
1363 1 336 <free>
137A <-- 1 1712 ezkey -f6 -k3 -@2 18 E0
13E6 <-- 1 10656 CON 09 70
1681 <-- 1 2608 vz -z 06 21 29
1725-A000 1 560560 <free>
----- EMS ver4.0 (frame: C000h) ----- ----- XMS ver2.00 -----
handle pages size name HMA used: 25 KB by WX2K
------ ----- ------ --------
1 128 2048k MX1STAR5
2 4 64k WX2K
3 2 32k WX2
4 32 512k VZ
free 10 160k
total 176 2816k
2. IBM PC/AT互換機, DOS5.0/V, HIMEM.SYS, EMM386.SYS
C>vmap mn
VMAP Version 2.00 Copyright (C) 1989-91 by c.mos
addr PSP blks size owner/parameters hooked vectors
---- ---- ---- ------ ------------------------- -----------------------------
B002 1 208 <free>
B010-B7FE 1 32480 <free>
C802-CFFE 1 32704 <free>
E003 sys 1 22832 smartdrv 13
E597 sys 1 1184 ramdrive
E5E2 sys 1 368 setver
E5FA sys 1 4336 ansi CON 1B 29
E70A <-- 1 15536 mouse /s30 0B 10 33
EAD6-F000 1 21152 <free>
--- UMB total: 128 KB ---
026E sys 1 1184 himem
02B9 sys 1 8384 emm386 15 4B 67
04C6 sys 1 1488 <files>
0524 sys 1 256 <fcbs>
0535 sys 1 512 <buffers>
0556 sys 1 624 <lastdrv>
057E sys 1 1856 <stacks>
05F3 sys 1 64 <config>
05F8 1 96 <free>
05FF <-- 1 5904 keyb JP,932,C:\DOS\KEYBOA 09
0771 <-- 1 2368 command n 22 23 24 2E 2F
0806 1 64 <free>
080B 0771 1 512 command (env)
082C 1 208 <free>
083A-9FFF 1 621648 <free>
3. IBM PC/AT互換機, DOS5.0/V, QEMM386 Ver6.0
C>vmap
VMAP Version 2.00 Copyright (C) 1989-91 by c.mos
addr PSP blks size owner/parameters hooked vectors
---- ---- ---- ------ ------------------------- -----------------------------
B001-B7FF 1 32720 <free>
C801 <-- 1 22832 smartdrv 13 D8 EE EF
CD95 <-- 1 1136 ramdrive
CDDD <-- 1 368 setver
CDF5 <-- 1 4336 ansi 1B 29
CF05 <-- 1 15536 mouse /s30 0B 10 33
D2D1-DFFF 1 53984 <free>
F401-F800 1 16368 <free>
--- UMB total: 144 KB ---
026E sys 1 3072 qemm386 15 4B 67
032F sys 4 1072 loadhi CON
0376 sys 7 4896 <config>
04AF <-- 1 5904 keyb JP,932,C:\DOS\KEYBOA 09
0621 <-- 3 2944 command 22 23 24 2E 2F
06DC-A000 1 627248 <free>
----- EMS ver4.0 (frame: E000h) ----- ----- XMS ver3.00 -----
handle pages size name HMA used: 61 KB by DOS
------ ----- ------ -------- EMB free: 464 KB
1 4 64k HMA
2 128 2048k EMB2
3 32 512k EMB3
free 29 464k
total 229 3664k
■ 各種シンボルの説明
--- タイトル ---
addr メモリブロックの開始セグメント
PSP メモリブロックのオーナーセグメント
<-- :addrと同じ
sys :オーナー 0008h のシステムコード、データ
空き :フリーエリア
-???? :フリーエリア終了セグメント
blks 同じオーナーまたはサイズの、連続するメモリブロック数
size メモリブロックのバイト数
owner オーナー名
parameters 実行時のパラメータCONデバイスの場合はデバイス名
hooked vectors プログラムがフックする割り込み番号
<...> タイプのオーナーの場合は表示しない)
--- オーナー名 ---
<free> フリーエリア
<config> config.sys
command command.com
(env) 環境エリア
<buffers> ディスクバッファ
<files> FILES= |
<fcbs> FCBS= | DOS4,5の vmap n で表示
<lastdrv> LASTDRIVE= |
<stacks> STACKS= |
--- ---
handle EMSハンドル番号
pages 使用ページ数
size 使用ページの合計Kバイト数
name ハンドル名EMMver4.0使用時)
frame: ページ・フレーム開始セグメント
--- ---
HMA used: HMAの使用メモリサイズ、オーナー名
EMB free: EMBのフリーメモリサイズ
・EMBがサポートされていない、あるいはフリーエリアがない
 場合は、表示しない。
・最大ブロックサイズがそれと異なる場合は(max: ?KB)を追加表示。
■ テクニカルノート
◇複数ブロックの圧縮について
 少ない行数で可能な限り多くの情報を表示するために、以下の方法で複数のメモリ
ブロックを1つにまとめて表示します。
 1.同一オーナーセグメントの連続するメモリブロック
 2.同一オーナー名の連続するメモリブロックのloadhi対応
 3.96バイト以下のフリーエリアを、直前のブロックへ追加
 4.内で、連続する同一サイズのメモリブロックMelwareのaddbuf対応
 5.デバイス・サブセグメント内の、デバイスドライバ('D','E')以外のブロック
オプション「n」を指定すると、4.以外の圧縮を抑止します。
◇UMB開始セグメントの判定方法
 DOS5のUMB開始セグメントは、末尾のMCBリンクからの次のMCBリンクで
容易に判定できますが、Memory-Pro386、等の仮想ドライバでは、知る事
ができません。このため、MCBの最上位から、F0000hまで1000h(4KB
単位)で'M'をサーチし、次のMCBリンクの先頭も'M'または'Z'になっているかどう
かで、UMBの開始セグメントを判定しています。
◇UMBのROMエリアの判定方法
 UMB内のMCBでは、DOS5も含めて、「ROMエリアかどうか」を知る共通の
手段がありません。このため、メモリブロックの開始・終了セグメントが、××00h
の場合にROMエリアと判定しています。
◇HMAの使用情報の表示
 HMAは、オーナー名、使用サイズ等を知る方法が用意されていません。従って
次の方法で情報を取得しています。
使用サイズ: HMAの末尾から0をスキャンして、0以外の部分まで使用されている
   とみなす。このため、状況によってかなり不確定な値となる。
オーナー名: DOS5では、ファンクションでDOSがHMA内に存在するかどうか
   知る事ができる。それ以外は、FFFF:0012h からの文字列を表示する。
◇ディスクバッファの判定方法
 仮想86ドライバ付属のツールで、UMB内にディスクバッファを確保した場合の
判定は、AH=52h,int21hで取得されるディスクバッファの先頭ポインタからリンクを
たどって行ないます。ディスクバッファの構造は、DOSのバージョンに依存します
ので、この機能はDOS3でしか動作しません。
◇PSPパラメータ内のコマンド名
 DOS3では、TSRが環境エリアを解放すると、コマンド名が取得できなくなり
ます。このため、TSRの多くは、PSPのパラメータエリアに、自身のコマンド名を
コピーしています。
 DOS4,5では、MCBのオフセット8以降に、コマンド名が自動的に書き込まれ
ます。したがって、VMAPVer2では、これを参照してオーナー名を表示します。
こうなると、パラメータエリアにコピーされたコマンド名が重複して表示される場合が
ありますから、パラメータエリアの先頭がスペース以外であれば、次のスペースまでを
スキップしています。
 
■ メモリタイプの概説
・コンベンショナル・メモリ
 通常640KBの、いわゆる「メインメモリ」。
Upper Memory Blocks
 640KB~1MB内の未使用エリアに、386やハードウェア機能でRAMを割り
 当てて利用するもの。DOS5で標準対応。
Expanded Memory Specification
 640KB~1MBのエリアに64KBのエリア(ページ・フレーム)を取り、
 ここに拡張メモリから16KB、4ページをマッピングして利用するもの。
 
eXtended Memory Specification
 286、386のリアルモードで、1MB越のプロテクトメモリを利用する規格。
 次にあげるHMAとEMBの規格が含まれる。
Hign Memory Area
 セグメント FFFFh からの64K-16バイト。1MB内のメモリと同等に
 アクセス可能。ただし、1つのプログラムしか入れらない。
Extended Memory Blocks
 プロテクトメモリの指定サイズを確保し、メインメモリとのブロック転送によって
 利用するもの。
■ 配布条件
・本プログラムはフリー・ソフトウェアです。転載・再配布は自由ですが、改変を
 施した場合の再配布は禁じます。
・雑誌、市販製品への添付も自由ですが、その場合は必ず作者へご一報ください。
・本プログラムソースコードは、「VZエディタVer1.57、ソースアップデート
 キット」に含まれます。ソースファイルの取り扱い規約は、そちらのドキュメントを
 参照してください。
■ 謝辞
の使用メモリサイズの取得方法は、K-CRAFT氏作「MS.COM ver3.12」の
 ドキュメントを参考にさせて頂きました。
・Memory-Pro386はメガソフト(株)の製品です。
・Melwareは(株)メルコの製品です。
はQuarterdeck Office Systemsの製品です。
■ 参考文献
Addison Wesley UNDOCUMENTED DOS
Microsoft Press MS-DOS Programmer's Referemce Ver5
Microsoft Press MS-DOS EXTENSIONS (Programmer's Quick Reference Series)
■ 変更履歴
Ver2.00 (91-11-29) Ver2 最初の配布版
Ver2.01 (91-12-16) ZエディタVer1.57 DOS/V版に添付
・デバイスドライバで、パラメータエリアにゴミが表示される場合がありました。
 Melware Ver4.7xをお使いの方へ
 Melware Ver4.7xのMELEMM.386の環境下では、VMAPがメインメモリの内容を
表示した時点でハングアップする場合があります。
これは、ファンクション07hQuery A20 Line Stateをコールすると
ドライバ内部でハングアップするためで、VMAP側では対処できません。
また、Ver4.7xでは、EMB Freeの値が正常に表示されないものがあります。
Ver4.8のMELEMM.386では、上記の不具合は解消されています。
 メルコでは、Melware Ver4.8へのバージョンアップを行なっているようですので、
Melwareをお使いの方は、バージョンアップをお薦めします。
91/1/8 兵藤嘉彦
日経MIX c.mos
==============================================================================
End of vmap.doc
==============================================================================