Image: Debugコマンドを使って下位1MBメモリをダンプする [DOS]

DOSのDEBUGコマンドを使ってメモリ空間の下位1MB分をファイルに書き出すバッチです。
メモリマップの調査や拡張カードのBIOS ROMの吸出しなどに使えます。
DEBUGコマンドを含めて機種共通のコマンドしか使ってないのでPC/AT互換機以外でも使えます。
ただしNEC PC98のMS-DOS 3.3C以降ではDEBUGコマンドは拡張機能セットに含まれているので、基本機能セットしかインストールしていない環境では実行できません。

○実行方法
1. テキストエディタ等で下の2つのファイル(MMDUMP.BATとMMDUMP.TXT)を作成します。
2. それらを適当な場所に置きます。
3. DOSを起動したらとりあえずDEBUGコマンドが実行できることを確認して終了します(DEBUGコマンドは"?"でヘルプを表示、"q"を入力して終了できます。)
4. バッチ(MMDUMP.BAT)を実行します。
5. 処理が終わるとカレントディレクトリにMMDUMP.DATというファイルが生成されます。
ファイルサイズがちょうど1MB(1,048,576バイト)であることを確認してください。

バッチはIBM PC DOS J7.0/VとPC98のMS-DOS 5.0で動作確認済み。Windows上でも動作します。
一時的にカレントドライブの空きを2MBほど食います。
DOSをフロッピーディスクで運用している場合はRAMディスクを作ってそこでバッチを実行するといいでしょう。

○MMDUMP.BAT

type mmdump.txt|debug
copy /b 00.dat + 08.dat + 10.dat + 18.dat + 20.dat + 28.dat + 30.dat + 38.dat 001.dat
copy /b 40.dat + 48.dat + 50.dat + 58.dat + 60.dat + 68.dat + 70.dat + 78.dat 002.dat
copy /b 80.dat + 88.dat + 90.dat + 98.dat + a0.dat + a8.dat + b0.dat + b8.dat 003.dat
copy /b c0.dat + c8.dat + d0.dat + d8.dat + e0.dat + e8.dat + f0.dat + f8.dat 004.dat
del 00.dat
del 08.dat
del 10.dat
del 18.dat
del 20.dat
del 28.dat
del 30.dat
del 38.dat
del 40.dat
del 48.dat
del 50.dat
del 58.dat
del 60.dat
del 68.dat
del 70.dat
del 78.dat
del 80.dat
del 88.dat
del 90.dat
del 98.dat
del a0.dat
del a8.dat
del b0.dat
del b8.dat
del c0.dat
del c8.dat
del d0.dat
del d8.dat
del e0.dat
del e8.dat
del f0.dat
del f8.dat
copy /b 001.dat + 002.dat + 003.dat + 004.dat mmdump.dat
del 001.dat
del 002.dat
del 003.dat
del 004.dat

○MMDUMP.TXT
最後に余分に改行が入ってます。これを省くとdebugコマンドでフリーズするので注意。

rbx
0
rcx
8000
n00.dat
m0000:0 8000 100
w
n08.dat
m0800:0 8000 100
w
n10.dat
m1000:0 8000 100
w
n18.dat
m1800:0 8000 100
w
n20.dat
m2000:0 8000 100
w
n28.dat
m2800:0 8000 100
w
n30.dat
m3000:0 8000 100
w
n38.dat
m3800:0 8000 100
w
n40.dat
m4000:0 8000 100
w
n48.dat
m4800:0 8000 100
w
n50.dat
m5000:0 8000 100
w
n58.dat
m5800:0 8000 100
w
n60.dat
m6000:0 8000 100
w
n68.dat
m6800:0 8000 100
w
n70.dat
m7000:0 8000 100
w
n78.dat
m7800:0 8000 100
w
n80.dat
m8000:0 8000 100
w
n88.dat
m8800:0 8000 100
w
n90.dat
m9000:0 8000 100
w
n98.dat
m9800:0 8000 100
w
na0.dat
ma000:0 8000 100
w
na8.dat
ma800:0 8000 100
w
nb0.dat
mb000:0 8000 100
w
nb8.dat
mb800:0 8000 100
w
nc0.dat
mc000:0 8000 100
w
nc8.dat
mc800:0 8000 100
w
nd0.dat
md000:0 8000 100
w
nd8.dat
md800:0 8000 100
w
ne0.dat
me000:0 8000 100
w
ne8.dat
me800:0 8000 100
w
nf0.dat
mf000:0 8000 100
w
nf8.dat
mf800:0 8000 100
w
q


comments powered by Disqus

※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい.

(C) 2008-2017 akm. This blog theme is based on sakmug. Hosted by Xdomain