mirror of
https://github.com/NishiOwO/VZEditor.git
synced 2025-04-21 00:34:37 +00:00
322 lines
11 KiB
Plaintext
322 lines
11 KiB
Plaintext
==============================================================================
|
||
VMAP Version 2.01 Copyright (C) 1989-91 by c.mos
|
||
VMAP.DOC
|
||
==============================================================================
|
||
|
||
|
||
■ VMAPとは
|
||
|
||
VMAPは、メモリの利用状況を表示する、MS-DOS汎用ツールです。
|
||
今回、国内各社のMS-DOS 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) UMB
|
||
m: Conventional & Upper Memory cu と同等
|
||
e: EMS & XMS EMS&XMS
|
||
n: No compress multi blocks 複数ブロックをまとめずに表示
|
||
|
||
・オプションの前の「- /」は必要ありません。
|
||
・何も指定しなかった場合は、全ての内容を表示します。
|
||
・複数のオプションを続けて指定できます。ただし、重複した指定をしても、表示内容
|
||
は重複しません。
|
||
・上記以外の文字(例えば ? h)を指定すると、Usageを表示します。
|
||
・文字コード20h~3Ehの文字(例えば - /)は無視します。
|
||
|
||
|
||
■ 実行例
|
||
|
||
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= |
|
||
|
||
--- EMS ---
|
||
handle EMSハンドル番号
|
||
pages 使用ページ数
|
||
size 使用ページの合計Kバイト数
|
||
name ハンドル名(EMMver4.0使用時)
|
||
frame: ページ・フレーム開始セグメント
|
||
|
||
--- XMS ---
|
||
HMA used: HMAの使用メモリサイズ、オーナー名
|
||
EMB free: EMBのフリーメモリサイズ
|
||
・EMBがサポートされていない、あるいはフリーエリアがない
|
||
場合は、表示しない。
|
||
・最大ブロックサイズがそれと異なる場合は(max: ?KB)を追加表示。
|
||
|
||
|
||
■ テクニカルノート
|
||
|
||
◇複数ブロックの圧縮について
|
||
|
||
少ない行数で可能な限り多くの情報を表示するために、以下の方法で複数のメモリ
|
||
ブロックを1つにまとめて表示します。
|
||
|
||
1.同一オーナーセグメントの連続するメモリブロック
|
||
2.同一MCBオーナー名の連続するメモリブロック(QEMMのloadhi対応)
|
||
3.96バイト以下のフリーエリアを、直前のブロックへ追加
|
||
4.UMB内で、連続する同一サイズのメモリブロック(Melwareのaddbuf対応)
|
||
5.デバイス・サブセグメント内の、デバイスドライバ('D','E')以外のブロック
|
||
|
||
オプション「n」を指定すると、4.以外の圧縮を抑止します。
|
||
|
||
◇UMB開始セグメントの判定方法
|
||
|
||
DOS5のUMB開始セグメントは、末尾のMCBリンクからの次のMCBリンクで
|
||
容易に判定できますが、Memory-Pro386、QEMM等の仮想86ドライバでは、知る事
|
||
ができません。このため、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の、いわゆる「メインメモリ」。
|
||
|
||
・UMB(Upper Memory Blocks)
|
||
640KB~1MB内の未使用エリアに、386やハードウェア機能でRAMを割り
|
||
当てて利用するもの。DOS5で標準対応。
|
||
|
||
・EMS(Expanded Memory Specification)
|
||
640KB~1MBのエリアに64KBのエリア(ページ・フレーム)を取り、
|
||
ここに拡張メモリから16KB、4ページをマッピングして利用するもの。
|
||
|
||
・XMS(eXtended Memory Specification)
|
||
286、386のリアルモードで、1MB越のプロテクトメモリを利用する規格。
|
||
次にあげるHMAとEMBの規格が含まれる。
|
||
|
||
・HMA(Hign Memory Area)
|
||
セグメント FFFFh からの64K-16バイト。1MB内のメモリと同等に
|
||
アクセス可能。ただし、1つのプログラムしか入れらない。
|
||
|
||
・EMB(Extended Memory Blocks)
|
||
プロテクトメモリの指定サイズを確保し、メインメモリとのブロック転送によって
|
||
利用するもの。
|
||
|
||
|
||
■ 配布条件
|
||
|
||
・本プログラムはフリー・ソフトウェアです。転載・再配布は自由ですが、改変を
|
||
施した場合の再配布は禁じます。
|
||
・雑誌、市販製品への添付も自由ですが、その場合は必ず作者へご一報ください。
|
||
・本プログラムソースコードは、「VZエディタVer1.57、ソースアップデート
|
||
キット」に含まれます。ソースファイルの取り扱い規約は、そちらのドキュメントを
|
||
参照してください。
|
||
|
||
|
||
■ 謝辞
|
||
|
||
・HMAの使用メモリサイズの取得方法は、K-CRAFT氏作「MS.COM ver3.12」の
|
||
ドキュメントを参考にさせて頂きました。
|
||
・Memory-Pro386はメガソフト(株)の製品です。
|
||
・Melwareは(株)メルコの製品です。
|
||
・QEMMは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) VZエディタVer1.57 DOS/V版に添付
|
||
・デバイスドライバで、パラメータエリアにゴミが表示される場合がありました。
|
||
|
||
|
||
★ Melware Ver4.7xをお使いの方へ
|
||
|
||
Melware Ver4.7xのMELEMM.386の環境下では、VMAPがメインメモリの内容を
|
||
表示した時点でハングアップする場合があります。
|
||
これは、XMSファンクション07h(Query 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
|
||
==============================================================================
|
||
|