MS-DOS
システムの最適化
中 村 邦 彦
はじめに 筆者は以前に MS-DOSの操作性を改善するためのノえッチプログラム技法に ついていくつかの提案をしたが[IJ その後約 3年を経て MS-DOSをめぐるパソ コン環境にはかなりの変化が見られる。まず,ハードウェアはCPUが80386へ と大きくシフトした。そのため大容量のプロテクトメモJ
L
搭載可能な機種が 増えた。メモリの使用方法も従来のバンク切り換え方式のRAM
ディスクに加 えて, EMS, XMS, BMS, UMBなどの使い方が開発された。1
ドライブ4
0
M B 以上の大容量のハードディスクが普及した。 他方ソフトウェアの方は, MS-DOS本体がノえージョン3..xxから40
,5
.
.
0
へと 発展してきた。ただし,これはマイクロソフト社の版であり,NEC
版 は 現 荘 3..3Cである。当時にぎにぎしくデビューしたOS/2は 期 待 さ れ た ほ ど 普 及 せ ず, MS-Windows3.. 0が発表されてからは, GUIはそちらの方が主流になりそ うな雲行きである。アプリケーションプログラムの多くはEMS対応になった。 操作環境を改善するためのツールも数多く開発された。 これらの変化により,先の論文で述べたことが一部陳腐化してしまったこ と,また, MS-DOSの操作環境を改善する方法としては,バッチファイルの技 (1) 1 MB以上のアドレス空間に配置されている主記憶。英語で、はextendedmemoryと 呼んで‘expandedmemoryと区別するが,これを拡張メモリと呼ぶと紛らわしいので ここではプロテクトメモリと呼ぶことにする。 (2) expanded memory specification (3) extended memory specification (4) bank memory specification (5) upper memory block-282一 香川大学経済論叢 356 法のみでなく,もっと広い観点から検討する必要を感じたことから,今回は MS-DOSのシステム環境を最適化するための方法をいくつか検討してみるこ とにした。 本論で検討するのは次の 3点、である。 (1) システム構成の最適化 (2) ハードディスクの最適化 (3) MS-WINDOWS3,0の利用法 (1)ではMS-DOSマシンとしてのノ、ードウェアシステム構成,ソフトウェアシ ステム構成の最適化について検討する。特にアプリケーションのための領域を 大きく残すための技法を紹介する。 (2)では大容量ハードディスクの初期化とシ ステム効率の問題を考える。 (3)ではMS-DOSアプリケーションを実行するため にMS-Windows3, 0の386エンハンスドモードを利用する方法を紹介する。
E
システム構成の最適化L
ハードウェアシステム ζこで検討することは, MS-DOSのもとで,し、かにして大きなユーザーメモ リを確保するかということである。その際に実用的な速度を維持することは大 前提である。こうL、う問題が浮上してきたのは, MS-DOS自身がその機能強化 に伴って大きくなってきたこと,アプリケーションプログラムが肥大化してい ることによる。本来80286なら16MB,80386なら4GBの広大な主記憶空間を直 接アクセスできるはずであるが, MS-DOSは未だに8086のモードでしか走らな1
い。 8086のモードではメモリ空間は1MBしかなく,そのうち384KBはシステ ムROMやVRAM,拡張ボード用に使用または予約されているので,利用可能 な 主 記 憶 は 側KBとなってしまう。たとえXMSやEMSを利用しても,(
p
-DOSにおいてはこの640KBの部分が基本になるので,これを基本メモリと呼ぶ ことにする。そこでシステムを考える場合,できるだけ大きな基本メモリをア (6) 英語で、はconventionalmemoryと呼んでいるので通常メモリと呼ぶ場合もある。プリケーションのために残すことを考えなければならない。 MS-DOSの最新ノミージョンである5.0(以後DOS5と呼ぶ)では,まさにその 点についての配慮がなされ, 4.0で拡張された機能の一部を削ってまでも,基 本メモリを多く残すようになった[2[。すなわち, DOSのレベルでHMALUMB を正式にサポートし, DOSの本体やデパイスドライバを基本メモリの外に追い 出した。その結果DOSは基本メモリの約18KBしか使わなくてすむようになっ た。 NECのDOS3..3Cではほとんど何も組み込まないシステムでも90KBは必要 であることを考えれば,とれは大きな改善である(リスト
5
参照〉。 ここではDOS3..xxのもとで基本メモリを大きく残す方法を考える。 HMAは 80286以上の機種で利用可能である。 UMBは8086,V30, 80286等の機種でも理 論的には利用可能であるが, 80386のページマッピング機能を利用しないと本 格的な利用は不可能である。これらの事情から本論では,対象マシンとして第l
に次のような構成を仮定する。 CPU : 80386SX以上 主記憶 640KB+プロテクトメモリ 3MB MS-DOSではl直接フ。ロテクトメモリをアクセスすることはないので,増設メ モリは必ずしもプロテクトメモリである必要はないが,後にMS-Windows3 , 0 を利用することを考えて,全てプロテクトメモリとして増設してあるものとす る。 そうは言っても, CPUがV30や80286のシステムを使用しているユーザーも 多いと思われるので,そのようなシステムについても少し検討してみることに する。 なお,本論における各種テスト並びに測定を行ったのは以下のシステムであ る。 NEC製PC-98XL2 CPU 80386 クロック16MHz-284- 平寄川大学経済論議 358 主記憶 640KB+内蔵プロテクトメモリ 3MB ハードディスク:内蔵40MB,増設ICM製SRC-131
C
l
30MB) また, 386の機能を持たない機種としては, NECのPC-9801VM(CPU V30, クロック10MHz)を用いた。 2.. ンステムコンフィギュレーション -仮想、86モードで利用する 同じMS-DOSマシンであっても,ソフトウェア的には種々の構成が可能であ るが, 80386マシシならば仮想86モードで使うことを勧めたい。そうすれば増 設メモリは全てプロテクトメモリのみにしておいても, HMA, BMS, EMSと しての使い分けは自由にできる。 仮想86モードを利用するには,仮想86用EMSドライバをCONFIGSYSに組 み込む。このタイプのドライバーには2種類ある。 1つはプロテクトメモリを アクセスするときだけ仮想86モードにするもので,他の lつ は 完 全 に 仮 想86 モードで動作するものである[3J アイ・オー・データ機器のVMM386..SYSは前者に, NECのEMM386..SYS,メガソフトのMEMORY←PR0386,メルコの
MELEMM386は後者になる。ページマッピング機能を利用してROMのアドレ スを移動できるのは後者である。筆者はMEMORY-PF3386を使用している が,これは豊富な機能が提供され,動作も安定している。 CPUを仮想86モードで走らせると,リアルーモードよりスピードが落ちるは ずであるが141,
DhInt-z
含むいくつかのベンチマークテストの結果は同じ であった。あまり気にすることはないと思われる。 .RAMディスクに 1MBをつかう 現在では,主要なアプリケーションソフト2
ェアと日本語FEPは,ほとんど EMS対応になっている。またEMS対応のTRSプログラムも数多く開発されて (8) 筆者のシステムではPC-98XL'-07を使用してくださいと響告が出るが,問題なく 動作しているのでそのままにしている。 (9) CPUの性能を測るベンチマークプログラムの1つ。 (10) terminated and stay residentいるので,
EMS
は必要であろう。RAM
ディスクはどんなディスクキャッシコプログラムを使うより高速であ る。作業ドライブとして1MB
程度は用意しておきたい。UMB
のために6
4
K
B
を確保して残りはEMS
として使用す}るのが妥当なところだろう。 ディスクキャッシュプログラムを使用している人をよく見かけるが,最近の ハードディスクは高速のものが多くなっていること,ディスクキャッシュ内蔵 のものも多くなっていることから[5] これは使用しない。下手に使うと返って 遅くなることがあるからである。フロッピーディスクドライブに対iしては効果 があるように考えられるが,それは同じデータを何度も読み出す場合のことで あって,一度読むだけの処理ではほとんど効果がない。書き込むときは同じ か,返って時聞がかかるはずである。フロッピーディスクはファイルの交換と 保存用と考えておけばよいだろう。 さて筆者が勧めるCONFIGSYS
と,それに対応したAUTOEXECBAT
を紹 介しよう(リスト1,リスト2
)
。両方とも説明の都合上,余計なものは削除し てある。バッファはl
つにつきセクタサイズ+
1
6
八イトのメモリが必要になる。 buffers= 1となっているのは,ここではできるだけ小さくして基本メモリの消 費を抑えておき,実際にはUMB
の中に確保しようという訳である。VEMS DRV
というのはMEMORY-PR0386
の仮想EMS
ドライバーである。MX
1
STAR DRV
はノ《ンク方式のRAM
ディスクドライパーで,これはUMB
におく。
UMB
におくといっても,現状では全てを外に出す訳にはし、かず,実際に はいくらか基本メモリに残る。この例では304バイトが基本メモリに残った。PRINT SYS
は文字型ドライバであるので,後でも組み込みと取り外しが可能であるが,これも
UMB
に置くことにすれば,常に組みこんでおいても問題は ない。AUTOEXEC BAT
(リスト2
)
の中のENVDRV
というのは環境変数にそのシステムのドライブ名を登録するプログラムであるl針。環境変数領域の見つけ 方,
RAM
ディスクの認識の仕方など,一部を修正して使用している。-286ー 香川大学経済論叢 360
(11)
の
CONFIGSYS
を用いたときのメモリマップタを示す。これはVMAP COM
による出力であるが, {・・・}の部分は筆者があとで書き加えたものである。 何も組み込まない場合(リスト
4
,リスト5
)
はフリーエリアが5
6
3
1
8
4
バイ トである。リスト3
の最大のフリーエリアは5
8
1
8
0
8
であるから,1
8
6
2
4
増 加 し ている。これはほとんどBUFFERS
の数を減らしたことによっている。システ ム領域はF
I
L
E
S
の数や接続ドライブ数によっても影響を受けるが,これは余り 大きくない。VEMS DRV
自身は基本メモリを1
6
0
パイト,XMS
を8
ページ使用する。そ の他UMB
用に4
ページ使用する。このタイプのドライバは基本メモリ占有量 が小さい。VEMSDRV
のオプション/
B
1
0
によってRAM
ディスク用にパンク メモリを1
0
パンクCl28KBX1
0
)
を確保させているが,オプション/x
により2
5
6
K
B
の裏RAM
をバンクメモリとして利用してくれるので,実際にはXMS
は8
パンクが消費される。.UMB
をDOS
の管理F
に組み入れる リスト3
の メ モ リ マ ッ プ に はUMB
ま で 含 ま れ て い る が , こ れ はMCB
をUMB
まで延長したからである。こうしておけばUMB
の空き領域もMS-DOS
の 管理下に入るので,DOS
から利用できるようになる。このためのプログラムLKUMB COM
は筆者が作成したものであるが,MELWARE
のUMBSTAT
COM
も利用できた。-Iol連結すると,MEMORY-PR0386
付 属 のUMB
管 理 プログラム
LUCOM
は使用できなくなってしまったので,LKUMBCOM
には連結を切断するオプションを付け
2
日えた。その他I
C
訟のEO
システムも使えなく なった。連結後はLOADC
O
I
V
(
ADDBUF COM
が利用できた。リスト2
で(11) エディタV u,こ付いて来るメモリマップを表示するプログラム。作者 兵藤嘉 l 多.フリーウェア (12) memory control block
M
S
-
D
O
S
の主記憶割当て状況を管理するために使用さ れる。 (13
)
常駐プログラムを拡張エリアにロードするプログラム。作者 junk3
5
(臼経M
I
X
)
,フリーウェア (14) バッファをUBM
に割り付けるプログラム。作者 junk3
5
(日経M
I
X
)
,フリー ウzア‘
addbuf 30'とあるのは,基本メモリ内の分と合わせて30になるようにUMBにバッファを確保することを意味する LOAD.COMによりTSRプログラム
(15) (16) (17)
AUTOLAND COM, CRTSHUT COM, EZKEY COMをUMBにロードして
いる。
また,そのままではMS-DOSが新たにメモリを割り付けるときには,下位領 域から割り付けるようになっているので, LKUM
B
.
COMはDOSのファンク ション58H G
e
t
/
S
e
t
A
l
l
o
c
a
t
i
o
n
S
t
r
a
t
e
g
y
により,最小の利用可能ブロックか ら割り当てるようにしてある。これも変更できるようにCHGSTRCOMが用意 されている。 残念なことに,これらの工夫をしても,環境変数領域をUMBに取ってくれる 程度で,期待したほどにはうまくし、かなかった。これは基本的にDOSシステム がUMB対応になっていなし、からで, DOS5が使えるようになるまでの一時しの ぎというところである。 . CPUが80286以下の場合 次に80386の機能を持たないCPUについて検討してみる。まずハードウェア の構成であるが, EMS対応のソフトを使いたいのなら2MB程度のEMSボード が必要である。さらにRAMディスクも使いたいなら, EMSを3MB以上にして l部を利用するか,別に従来のバンク方式のメモリがあればそれを利用する。 EMSボードとパンク方式のメモリボードが異なるメーカーの製品であると きは,同時に使用できない場合がある。例えばエーヒーエム社のノミンク方式メ モリボード98-MBとメルコのEMSボードEMJmk皿は,制御に同じr/o
ポートを使用しているために同時に実装することはできない。 (15) ハードディスクのヘッドをシッピングゾーンに移動させるプログラム。作者
s
e
r
o
w
('アスキーネット),フリーウェア (16) CRTの焼き付き防止プログラム。作者 Takuya-N!SS,フリーウェア (17) キーボード入力を補助するプログラム。作者 兵藤嘉彦,フリーウェア (18) メモリ割当て方法を変更するプログラム。作者 junk 35(日経MIX),フリー ウェア-288- 香川大学経済論叢 362 この場合
EMS
はハードウェア方式で実現することになるので,EMM
はそれ ぞれのボードに対応したものを使用しなければならない。どんな場合でも何か 追加すればそれだけ貴重な基本メモリが消費されることになるので,この場合 もUMB
を利用することを考えるべきである。UMB
の利用は,3
8
6
のようにうま くはし、かないが,ある程度可能である。例としてNEC
のP
C
-
9
8
0
1VM
2
にアイ ・オー・データ機器のEMS
ボードP
I
O
-
P
C
3
4
H
X(
2
MB)
,エービーエムのバ ンク方式のメモリボード9
8
-
M
B(
2
MB)
,S
A
S
I
のハードディスクという構成 での実例を紹介する。 ソフトウェアはEMM
と し て , 同 じ ア イ ・ オ ー ・ デ ー タ 機 器 のEMM4
J
SYS
とパンク式メモリボード対応のRAM
ディスクドライノえを用意する。8
0
2
8
6
の場合はプロテクトメモリを利用することが可能である。HMA
やXMS
を利用 するプログラムも使いたい場合は,同じメモリをハードウェア方式のEMS
と してもプロテクトメモリとしても利用可能なボードを増設すべきでる。 アイ・オー・データ機器から提供されるもので構成する場合はリスト6
,7
のようにすればよいだろう。EMM4JSYS
で/w
の後にd
4
が書いてないのは, セグメントD
7
0
0
からD7FF
までは,S
A
S
I
のROM
があるので使用できなL、から である。続いて/A2 /B
が指定してあるが,これには次の意味がある。/A 1 EMM
のデータ部分をUMB
に移す/A 2 EMM
のコード部分をUMB
に移す/B
UMB
をその他の目的に利用する/A 1
を指定するとEMS
の速度が向上する。/A2
を指定すると,スピードは 遅くなるが基本メモリの消費が少なくなる[7)。LUMB COM
,BEX COM
はアイオーデータの製品でUMB
にプログラムをロ ー ド , お よ び パ ッ フ ァ を 確 保 す る プ ロ グ ラ ム で あ る 。 リ ス ト
7
でBEX
COM
を2
度実行しているが,この例のようにUMB
が分断されているときは, 一度に必要バッファを確保できなかったからである。メモリマップをリスト8
に示す。あるが,それがと
(
Z
程度であるか調べておこう。EMS
そ の も の の 速 度 はEMSBENCH. COM
で測定した(表7)0EMS
を使用するアプリケーションの速度についてはLotus123で整数値データのコピ一時間を測定した(表8)。そ の結果次のようなことがわかった。
EMS
メ モ リ へ の ア ク セ ス は 全 て の 場 合 に つ い て 同 じ で あ る が , そ の 他 のEMS
ファンクションについては,最も速し、/A1
は/A2
より1.1
倍から1.6
倍, 平均で1..4
倍 高 速 で あ る 。 実 際 の ア プ リ ケ ー シ ョ ン プ ロ グ ラ ム で は そ の 差 は1
.
.
1
5
倍であった。 ところで,アイ・オー・データのやり方ではSASI
のROM
があるページ全体 が利用できなかったが,ROM
のないところは全て使えようにするプログラム が発表されている。EXT-TPA
c
o
J
3
2
それである。今度はEMS
のウインド ウにCO
からDC
まで全てのページが指定できる。/A 2
指 定 を し な け れ ばDO
か らDC
までのページのうち,ROM
のある4KB
を除き,残り60KB
全てがUMB
と して利用可能になる。残念なことにEXT TPA
COM
では,ブロック型デバイ スドラパをUMB
にロードすることができないので,RAM
ディスクドライノえが 基本メモリ内に残る。その結果基本メモリ内の空き領域は約1
KB
減少する が,UMB
はl1KB
増加している(リスト9
,1
0
,1
1)。 さて,このように基本メモリを節約す向ることのメリットであるが,次のよう なことが考えられる。 (1) 大きなアプリケーションが余裕をもって使える。 (2) 常駐型プログラムが使用可能になる。 (3) 1つのプログラムを起動したまま,別のプログラムを呼び出して処理 をする。 (3)はエディタの中からコンパイラを起動したり,あるプログラムを実行中に (19)EMS
の速度を測定するプログラム。作者 内田暁,フリーウェア問 (20)EMS
の物理ベージをUMB
に割り付けて使用するプログラム。作者 junk 35 (日経M
I
X
)
,フリーウェア。MELWARE
専用の部分があるが,それ以外はアイ ・オ・データのEMS
でも利用できた。364 香川大学経済論叢 -290ー 一時的にDOSへ抜けて,別の処理をしたりすることをさしている。最近のソフ トウェアの多くはこのようなことができるようになっている。この点で徹底し てるのはPARAD02li使用中に一時的にDOSに抜けたときは,自分自身はわ ずか 1 , 3KB を基本メモリ内に残すのみで,あとは全部EMS~こ待避している(リ UMBにはPARADOXの た め の 小 ブ ロ ッ ク と 新 た に 呼 び 出 さ れ た スト 12)。 V '-. COMMAND COMのためのブロックが
l
個,計496ノ《イトがとられている。 そ の 結 果 れ はUMBをDOSの 管 理 下 に 組 み 込 ん だ さ さ や か な 効 果 で あ る 。 PARADOXを終了することなく,入力するデータをエディタを使って編集した り, Lotus123にデータを送り込んで計算処理をしてからすぐに取り込むなどと ところがPARADOXは, EMSの空き領域を全て占有 してしまうので,後から呼び出されるプログラムはEMSを 利 用 で き な い と い う問題はあZ
?
この問題はMS-Windows3 ,.0を利用することにより解決できる ことを第W節で示す。 いうことが可能である。 ハードディスクの最適化 m 出 MS-DOSのファイノレシステムは,もともとがフロッピーディスク用に作成さ れたものであるため,大容量のハードディスクには対応しきれないところがあ マイクロソフト社のDOS5は初めてこれを本格的にサポートしたが,それ る。 を利用できないユーザーは既存のシステムを何とか工夫しながら使う必要があ る。ここではMS-DOSのハードディスクファイルシステムの問題点とそれを回 避する方法をいくつか紹介する。 ブート装寵と起動メニュー1
.
システムをハードディスクから起動すると,いつも起動メニューが表示され (21) ボーランド社のリレーショ!ナルデータベース管理ソフト (22) それならPARADOXを起動する前にEMSを適当に確保しておいて, PARADOXを抜けてからそれを解放してやればうまくいくのではないかと考え られる。実際にPARADOXとLotus123で試してみたところ, Lotusで、は確かに EMSを利用できたが, PARADOXへ戻るところでハングアップしてしまう。!
?
j
!
i
i
るという問題がある。ハードディスクを
NEC
のFORMA
T.EXE
で初期化した 場合,複数のパーティションからブート可能に設定しておくと,あるパーティ ションを自動起動に設定しただけでは,本当に自動的には立ち上がってくれな い。メモリスイッチでBOOT
装置をそのハードディスクに設定しておく必要が ある。 以前はハートディスクに唯l
つのブート可能なパーティションしかない場合 でもメモリスイッチの変更が必要であったが,33C
ではパーティションが1
つの場合はBOOT
装置が標準のままでも自動的に起動するように改善されてい る。したがって,ここで引はハードディスクに複数のシステムがインストールさ れている場合を考える。 何か特殊なプログラムがあって,そのフロジピーディスクから立ちとげなけ ればならないようなことがある。自動起動に設定してしまうと,こういう時に いちいちメモリスイッチを書き換えてからリセットしなければならない。また 何らかの理由でハードディスクから起動できなくなったときは,ディップス イッチを操作してメモリスイッチを全て出荷時の設定に戻さなければシステム を起動できなくなる。 この問題は,ICM
社のEXFORM.EXE
で初期化することにより解決する。そ の他に,この問題だけを解決するツールもあZ
?
Z
パーティションの大きさ ノfーティションの大きさにより論理セクタサイズが決定される。 IBM-PCで は論理セクタという概念はないので,セクタサイス、と言えば物理セクタサイズ のことであり,これは5
1
2
バイトに固定されている。NEC
では,物理セクタを いくつかまとめて論理セクタとして扱うことができる。 DOSではセクタ番号を1
6
ピットで表すことにしているため,1
つのドライブは,2
の1
6
乗(
6
5
5
3
6
)
ま でしかセクタをもつことができない。したがって Iセクタを 1KBにとるな ら,1
ドライブの容量は64MB
が限度となる。それを越えると128MB
までl
セ (23) IPLを変更するプログラム。作者 Ackune,フリーウェア-292- 香川大学経済論議
3
6
6
クタは
2KB
になる。このセクタサイス引は主記憶の消費にきいてくる。
DOS
の入出力バッファは, パッファ1
個につき,セクタ長+16
バイトのメモリを必要とする。したがっ て,CONFIG SYS
でBUFFERS=20
としてあれば,パーティションが64MB
以 下なら2
0
8
0
0
バイト,65MB
以上なら4
4
2
0
0
ノ《イトのバッファ領域が必要になる。 それなら,1
パーティションは64MB
以下にしておく方がよいかというと, ことはそう簡単ではない(表1)。表中の比較項目のうち,領域の有効利用につ いてほ次節で説明ーする。 アクセス速度の比較には微妙な問題があるが,バッファ領域を大きくとるこ とが可能であるならば,一度のアクセスで2KB
読み書きする方が効率がよく なると考えられる。パーティションの大きさを64MB
で抑えた場合には, ドラ イブ数が増えてしまうという欠点がある。あるファイルを探すとき,あちこち のドライブを訪ねて回るなどということもあり得る。そういう時にはJOIN
コ マンドを利用して見かけ上のドライブ数を抑えるとともできるが,直接ドライ ブ名を指定させるプログラムもあるので面倒な面もある。 しかし,それら以外にも問題はある。MS-DOS
はファイルを更新するとき, 元のファイノレの領域に上書きするのではなく,新しい空き領域に書く。これは 上書きする前にそのファイルを消去してから書いても同じである。フロッピー ディスクの場合は,一旦メディアを取り出してからもう一度セットすることで 直前にできた空き領域を認識してくれるようになるが,ハードディスクやRAM
ディスクのように取り外しのできないメディアのファイルは,こうして 書き換えるたびにその位置が移動することになる。こうなると論理的に関連の 深いファイルでも,実際には遠く離れて配置されることが起こる。1
つのパー 表1 パーティションの大きさによる比較 パ ッ プ7数 領域の有効利用 アクセス速度 ドライブ数が増える64MB
大きくとれる 有利 や や 不 利 不 利65MB
以上 大きくとれない 不 利 や や 有 利 有利ティションが大きければそれだけファイルが速く離れてしまう可能性が高くな ることは明かであろう。そのために時々ディスク内のファイルの配置を最適化 してやる必要がでてくるが,パーティションが大きければ,最適化に要する時 聞も長くなるであろう。 さらにパーティションが大きければパックアップとリストアが大変である。 パーティションがどうであろうと,全体としてのパックアップ時間は変わらな いが,大容量を
l
度に全部ノえックアップするのは大変である。小さく分割して あれば1
回の処理時間は短くてすむ。 これらのことを総合して考えれば,通常のユーザーはlパーティションを64 MB以下にしておく方がよいと思われる。 3 クラスタサイズ セクタはMS-DOSがディスクをアクセスする単位であるが,ディスクの空き 領域の管理はクラスタが単位である。クラスタサイスの問題は先の論文でも触 れたが,その後かなり状況が変化しているのでここで再び取り上げる。 ハードディスクのインタフェースにはSASIとSCSIの2つ が あ る 。 従 来 は SASIが使われていたが,大容量のものはSCSIが使用されている。 ディスクの フォーマットについても標準フォーマットと拡張フォーマットの2
つがある が,前者は20MBまでのディスクしか扱えないのでここで町は考えなし、。 まず, SCSIの場合であるが,表2より64MBの領域まではクラスタサイズが 2KBとなるので,余り問題はない。 SASIの場合40MBの領域ではクラスタサ イズヵ'l6KBになる。 これでは利用効率は悪くなる。 SCSIのときはlクラスタ 2KBでフォーマットできるのに, SASIではそれが できないのは何か理由があるのかと思うが,実は特に理由はなく, ただ従来そ うしていたからということのようである。実際NEC
のFORMAT
プログラムを ほんの少し変更すればSASIのノ、ードディスクをSCSIのようにフォーマットで きる。 クラスタサイズが小さければ,ディスクスペースの利用効率は高くなるが,FAT
のサイスが大きくなるため,FAT
に対する1/0
が増加して全体の効率を-294-
香川大学経済論叢表
2 NEC
のFORMA
T..EXE
で初期化されたハードディスクの諸元1')SASIの場合
一一積買事定
(
K
B
)
クラスタサイズ 拡張フォーマ yトの場合 ディレクトリ数I
5
1
2
全て1
2
ビットFAT
,セクタ長は1KB
SCSIの場合 領域指定(
K
B
)
クラスタサイズ ディレクトリ数10MB
までは1
2
ビットFAT
,それを越えると1
6
ピットFAT
セクタ長は64MB
までは1KB
,それを越えると2KB
3
6
8
下げる可能性がある。手持ちのハードディスクで簡単なテストをした結果で は,バッファ数が極端に少ないときには5%
程度の差がでたが,バッファ数2
0
以上ではほとんど差が出なかった。したがって,クラスタのサイズは2KB
に する。 以下に筆者のハードディスクの全ファイルのサイズについて調べた結果を示 しておく〔表3"-'表5)。最小がOになっているのは,プログラムが異常終了し たときにできたもので, MS-Windowsの 作 業 フ ァ イ ル が3個 , そ の 他 が 1個 あった。最大は花子のアウトラインフォントファイノレであった。ファイル・サイ ズの分布図(凶1)は縦軸がファイルの分布密度で,サイズが1KB
変化する区 間に何個のファイノレがあるかを表している。横軸は対数メモリになっている。4
まとめ ここまでハードディスクの抱える問題点をいくつか考えてきた。大容量ディ ス ク の 基 本 的 問 題 の 解 決 に はDOS5
表3 7 7イルサイズ基本統計 を使わなければならないけれども,い! ファイル数2
8
6
7
個 ,..,.J..-!-.:u---;I
サイズの合計8
5
6
3
3
K
B
くつかはICM
の ハ ー ト ア イ ス ク 拡 張 │ 最小O
ーl
最大2
9
4
6
フォーマットプログフム ~~FORMI
平均299
(24)EXE
を使うことで改善できる。 I メディアン5
.
9
(
2
4
)
EXFORM EXE
は未だにパーティションサイズが64MB
のとき,セクタが2
KB
になるというパグがある。ファイルサイズの度数分布 階級(KB) ファイル数 累積数 累積割合 l以下 565 565 19.7% 2 329 894 3L2% 4 347 1241 43.3% 8 360 1601 558% 16 383 1984 692% 32 344 2328 81“2% 64 275 2603 90.8% 128 133 2736 95.4% 129以上 131 2867 100.0% 表4 クラスターサイズと必要容量 表5 クラスターサイズ 必要容量 (KB) 無駄になる容量 利用効率(%) メモリスイッチでBOOT装置を標準にしたままでハードディスクから['1 シフトキーを押しながら立ち上げれば起動メニューが (1) 動立ち上げできる。 表示される。 これはSASIのハード、ディスクでもクラ クラスタサイズを選択できる。
(
2
)
スタサイズをd
、さくできる。 (3) ルートディレクトリのためのセクタ数を指定できる。 (3)については今まで説明していないが,表2にあるように40MB以 上 の 領 域 のときは,ルートディレクトリのスロット数が3072になっている。通常はこん なに多くは使わないので減らすことができる。 MS-Windows3.. 0 W T P l f } i i i t f i l i -s i } t l j i t -i i l i s f -舎 MS-DOSの操作環境を改善するためにMS-Windows3.. 0を利用することを捉 マニコアルには, Windowsアプリケーションだけを実行するときは, スタンダードモードの方が速いと書いてある[8]が,本論はDOSの利用環境を論 案する。 Z ンハンスドモードについてのみ言及する。すなわ ずるのが目的であるので,-296- 香川大学経済論議 370 ち,エンハンスドモードの下で DOSのアプリケーションプログラムを使用する ことにより,従来とは異なる新しい操作環境が得られることを紹介したいので ある。 L 386エンハンストモードにする 説明書19]によれば, 80386以上のCPUを も っ マ シ ン の 場 合 , ノ ー マ ル レ ゾ リューションモードでは3072KB以 上 , ハ イ レ ゾ リ ュ ー シ ョ ン モ ー ド で は 4096KB以上の
XMS
メモリが必要であると書いてある一方で,XMS
が1024KB 以上あれば,ウインドウ起動時のオプションにより,エンハンスドモードにす ることができるとなっている。実際にはどうなのか確かめてみた。 まずWindowsをエンハンスドモードを指定して立ち上げる場合は (/3のオ 図1 ファイルサイズの分布 600 ファイルサイズlKB当たりに分布するファイル数 500 400 300 200 100O
1
24
8 16 32 64 128 256プションをつけて立ち上げる), XMSが1024KBあれば確かにエンハンスト モードにはなるが,一太郎, Lotusどちらも起動できなかったので問題になら ない。 2048KBの時は一応一太郎, Lotusともに起動できたが, EMSを使う Lotus はシートの読み込み時間がかなり遅くなってしまう(筆者のシステムで は約5倍)0XMSメモリが3MBのときは2倍程度で収まるので,これはメモリ 不足が原因と思われる。また何かの拍子にシステムが停止してしまうこともあ る。そういう訳で
/3
で強制的にエンハンスドモードにするのは勧められない。 次にWindowsシステムにモードを選ばせる方で試してみた。説明書にはfiles の値は30以上が必要であること, buffersの値はSmartDriveを使用した場合は 10に設定するように指示されているので,リスト13のようなCONFIG SYSを 用意し,中のMINの値をいくつか変えて起動させてみた。 2048は標準サイズの 指定であるが,これはWindowsのときは自動的に調整されるの1で意味がない。 その結果, MINの値が768では確かにエンハンスドモードになるが, 896では スタンタードモードになる。システム側では,ヱンハンスドモードにするため には, Smart Driveの制御領域を含めて最低2.3MB程度のXMSメモリーが必要 と判断しているようである。device=
¥
windows¥
smartdrv sys 1024 256あたりに設定しておく方がよいようだ。 ハイレゾリューションモードではXMSメモリが3MBではMINをOにしても 確かにエンハンソドモードにはならない。実際には少なくともあと256KB程 度 必要であった。さらにSmartDriveを使ってスピードアップを図るためには,説 明書どおり 4MBのXMSメモリが必要ということになる。 2.. フ。ログラムスイッチャーとしてのWindows3..0 386エンハンスドモードを利用すると,複数のウインドウプログラムを同時 に起動させておき,それらを切り替えながら使用できることはもちろんである が,非ウインドウアプリケーションも同時に複数個使用できる。これは, 80386の仮想、86モードを利用しているからである。この機能は以前のWindows /386においてもある程度は実現されていたが, 3..0ではさらに強化された。
-298- 香川大学経済論議 372
(
1
)
基本メモリによる制約が事実上なくなった。 (2) 仮想86マシンごとに,仮想のEMSメモリが割り当てられるようになっ た。 (1)に関しては,以前はウインドウプログラムであろうとなかろうと,ひとつ のプログラムが起動されれば必ずなにがしかの基本メモリーが消費されていた ので,同時に起動できるプログラムの数は結局基本メモリの大きさに制約され ていたが, 3..0ではこの制約が,スワップファイルの大きさにまで拡大された。 また, Windows/386では, EMSの領域は全体として固定されて、いたため,一太 郎43やPARADOXのように,使用可能なEMSメモリーを全て占有してしまう アプリケーションを先に起動してしまうと,後から起動したアプリケーション はもはやEMSを利用することができなかった。 (2)に よ り 個 々 の プ ロ グ ラ ム ご とに,実装メモリーを越えて任意のサイスhのEMSメモリを割り付けておくこ とができるようになり,この問題が解決された。以F
に具体的な使用例とセッ トアップ。の手IJ闘を紹介しておく。例として,一太郎4..3,Lotus123, PARADOX, COMMAND COMを同時に 使えるような環境を作成してみよう。これら
4
つのプログラムを同時に起動し ておき, NoWinAppという名前でグループとしてプログラムマネージャに登録 しておく。それぞれのプログラムは日本語FEP,マウス,プリンタ等のドライ ノえーが必要であるから,単に目的のプログラムを起動するだけではいけないの で,以下の手順が必要である。 (1) DOSプログ!ラムを起動するためのバッチファイルを作成する。 (2) Windowsの中での実行のさせ方を指定する*..PIFファイノレを作成す る。 (3) プログラムマネージャに登録する。 例としてLotus123用のノミッチファイル(リスト14)とPIFファイルのl部を 示しておく(図2
,図3)
。バッチファイル!で町は,プロセスが終了したときには 当該の仮想86マシンが消えてしまうので,後始末はしなくても良い。 PIFファ イルでは使用したL、
EMSのサイズを指定する(図3)。図 2 Lotus123のための PIFファイル 1
│圏一
…
-
ι…凶云尚子ぶ耐..川
γ---
一…け園田
I
ファイル(日 モード(M) ヘルプ(H) ‘L一
層 圏
プログラム司令lP) プログラム題名(T) lLotusjn_Windows プログラムパラメータ(Q) 初期ディレクトリ(
S
)
l
E
L
厄
7
1 必要メモリ 困 問 必 要ω
四 郎 潤 ま し いω
画面の使用方法⑥アルかリ・ン(u) 。ウイントーウ(
W
)
図終了時ウインドウを閉じる巴) 実行方法 口/¥','17グラ吹けれでも新子(s) 図単独で新子(E)l
高度(主)...".I
図 3 Lotus123のための PIFファイル 2│
園
高度なオプション .?!VfタMオプション フォアグラウンドの優先度但)E口
図入力待ちの検出(旦)巳!J
ハ
V
グラウンドの優先度但) 医 コ│取消│
メモリオプションE
M
S
メモリE
コ 阻 必 要 也 )題日KB~賦(υ
ロロック(K) 部1
S
メモリ 区 コ 阻 必 要 但 )~間隙(1)
ロロック(0) 図ハイメモリ領域を使用(旦) ロ 酬 を 沼 守 支 棚 田I
I
「画面表示オフ。ション ビデオメモリc
v
⑥テキスト 。グラフィック 図グラフ描画の高速処理C
D
毛ニタ禁止ポート(M) 1. 手順(3)は ア プ リ ケ ー シ ョ ン を プ ロ グ ラ ム マ ネ ー ジ ャ ま た は フ ァ イ ル マ ネ ー ジ ャ か ら 直 接P
I
F
フ ァ イ ル を 起 動 さ せ る こ と に す れ ば , 必 ず し も 必 要 で は な い が , そ れ ぞ れ に 好 み の ア イ コ ン を 割 り 付 け て デ ス ク ト ッ プ に 表 示 し て お き , マ-300- 香川大学経済論叢 374 ウスで選択することによって起動できるようにするために行Lうものである。プ ログラムを登録する画面を図4に,アイコンを登録している画面を図5に示し ておく。最後に出来上がったデスクトップ画面が図6である。なお,アイコン はWindows付属のペイントブラシとシェアウエアIconManagerを使用した。 図4 プログラムの登録 │ー プログラムの情報 .
説
明
(
1
2
)
:
圃 園
図5 アイコンの登録国
子凶作局選訳
寸│
ファイル名
C
E
)
:
U
E
凶 剛 畑 棚 田│
次のアイコン倒)
I
現在のアイコン:
国
一
﹄
│
取消
│
Icon Managerには多くのアイコンが付録としてついているので気に入ったも のがあればそれをそのまま使用できる。 (25) Windows3.0のアイコンを管理するコーティリティプログラム。作者 Impact Software(米国),シェアウェア実際にこれら4つのDOSアプリケーションな起動させてみると,割り付けら れているEMSだけで 8MBになった(表
6
)
。各アプリケーションにはPIFファ イルで指定された大きさ+512KBのEMSメモリが割り付けられていた。 図6 プロゲラム登録後のデスクトップ 表6 EMSの使用量 フ。ログフム EMS (MB) COMMAND COM 1 5 LOTUS123 25 PARADOX 2 5 一太郎 1.5 合計 8.0 3.. Windows3.. 0の実行速度 Windowsの下で実行される DOSアプリケーションの実行速度を測定したも のが表7
である。 SysCaIlというのは, MS-DOSの簡単なシステムコーノレの呼びh出し DhryはDhrystoneベンチマーク, NortonはNortonユーティリティの SIに よる比較であり,通常の仮想86モードでの速度をIとして表した。 fuIlという のはWindowsのフノレスクリーンモード, winはアフリケーションをウインドウ
7
-302ー モード SysCall Dhry Norton 表7 香川大学経済論議 WINDOWS3,,0の実行速度 V86 full 1 0 0,,67 1 0 0,92 1.0 0.93 376 wm 。,,39。
58 0.46 の中で実行するモードである。 Windows十ではシステムコールがかなり遅くなっ ているのがわかる。 次 にEMSの基本性能を測定してみた(表 8)0 Windowsで'
v
:
主ノミックグランド プロセスの影響で測定値(にばらつきがでるので, Windowsに関する測定値は 10 凹の測定の平均値を用いた。メモリアクセスを除く E M M機 能 の 速 度 は , フ ル ス ク リ ー ン の 場 合 で さ え も , 最 も 速 い MEMORY-PROの 5倍 か ら 10倍遅く なっているが,これはWindowsのE M Mがもともと MEMORY-PROに較べて約2
倍遅いことを考慮する必要がある。 表 8 EMSのベンチマーク PC-98XL 2PR0386 INECEMM [WINEMM FULL
(1) 209 350 400 1905 ( 訪 110 233 229 1073 (3) 133 217 278 1083 (4) 202 312 362 1153 (5) 1730 1720 1720 1969 (1) 論理ページの物理ベージへの割当 (μ秒〕
(
2
)
ページマップのセーブ&リストア (μ秒〕 (3) 複数の論理/物理ページの割当 (μ秒) は) 部分ページマップの取得/設定 (μ秒) WIN 3705 2110 2069 2263 3767 (5) EMSメモリアクセス速度 (65536*100バイト) (m秒) PR0386 MEMORY -PR0386verl 50NECEMM NECのMS-DOS3,3C付属の EMM386SYS WIINEMM NECのWINDOWS3,,0付属のEMM386,SYS FULL WINDOWS3 0のフルスクリーンモード WIN WINDOWS3,,0のウインドウモード
/NA アイオーデータ EMM4 J SYS /NA /A 1 アイオーデータ EMM4
J
SYS / A 1 /A 2 アイオーデータ EMM4 J SYS / A 2 PC-98VM 2 IODATA /NA /A 1 /A 2 727 494 805 455 370 526 714 481 784 506 536 596 3970 3960 3960これらの
EMS
基本性能の差が実際のアプリケーションでどの程度でてくる のかを測定したものが表9
である。EMS
の影響が出易いものとしてL
o
t
u
s
1
2
3
テストはまずA
列全体(A1
"
-
'
A
8
1
9
2
)
に整数データを埋め込んだ 後,それをB
列からI
列までコピーする時間と,それを消去する時聞を測定し た。整数データを用いたのは,L
o
t
u
s
の拡張メモリマネージャを内部+拡張に したときには,整数データはEMS
を使用しないのでEMS
の影響が推定しやす いからである。D
h
r
y
s
t
o
n
e
1
i
直の減少はある程度納得できる値であるが,L
o
t
u
s
の を用いた。 クロック10MHz
の9
8
0
1
コピ一時間の速度低下は大きすぎるように思われる。 V Mよりも遅くなっている。 とのように汎T
i
n
d
o
w
s
3
.
.
0
では,EMS
の速度が遅すぎる欠点はあるものの,DOS
アプリケーションはほぼ完全に同時起動可能である。 エディタでデータを 編 集 , 修 正 作 業 を し な が らL
o
t
u
s
やPARADOX
に 読 み 込 ま せ る と か ,PARADOX
で必要なデータの検索・抽出を行い,それをL
o
t
u
s
で計算してから またPARADOX
に戻すことなどが可能になった。また,クリップボードを利用 してアプリケーション間でデータの転送が可能になるなど,DOS
の操作環境改 善という面では評価できる。L
o
t
u
s
1 -2
-
3のベンチマークテスト 表9 単 位 秒 コピーA
列全体(
A1
"
-
'
A
8
1
9
2
)
をB
"
-
'
I
までコピー 消去B
1
"
-
'
1
8
1
9
2
までを消去 内部 内部+拡張メモリ 拡張 拡張メモリのみi
l
i
-一
iit むすびMS-DOS
マシンをNEC
版MS-DOS3.3C
用に最適化するための試みをいくつ-304- 香川大学経済論議
3
7
8
か紹介した。実行速度をあまり犠牲にすることなく,基本メモリを大きく空け ることには一定の成果が得られた。その結果,従来よりメモリに常駐するデバ イスドライパやTSR
プログラムを利用しやすくなるであろう。また,ひとつの アプリケーションを起動したままでも,エディタなどの小型のプログラムは十 分に使用できる環境が得られた。W
i
n
d
o
w
s
3
.
.
0
の3
8
6
エ ン ハ ン ス ド モ ー ド は 複 数 の 非 ウ イ ン ド ウ ア プ リ ケ ー ションを同時に起動し,それを切り換えながら使用できる環境を与えてくれる ことがわかったが,EMS
の速度低下が大きいことがわかった。 本論で検討した問題はMS-DOS5..0
が使用可能になればある程度解決される はずであるが,それまではここで述べた技法が役に立つものと信ずる。またD
O
S
5
.
.
0
の恩恵を受けられない古い機種については,ここで紹介した方法が大 切なものとなるであろう。 参考文献[
1
J
中村邦彦,rMS-DOS
のパッチプログラムの技法j,香川大学経済論叢第6
2
巻2
号,1
9
8
8
年[2J
藤田窓治,rMS-DOS
の生きる道j,日経バイト, N.o8
7
,1
9
9
1
年[
3
J
内田暁, rEMS
のベンチマークテストj,TheBASIC
, N.o9
,11
9
9
0
年1
2
月号[
4
]
中島信行,rMS-DOS
メモリ管理ソフト技法j,CQ
出版社,1
9
9
0
年,1
9
9
'
"
'
-
'
2
0
0
ベ ー ジ[
5
]パソコン周辺機器・関連製品総覧j,日経バイト N.o8
8
特別増刊号,1
9
9
1
年7
月[6J
山崎福馬,rMS-DOS
の道具箱j,J
I
C
C
出版局,1
9
8
9
年,1
8
8
ページ [7] アイ・オー・データ機器,r
I
O
S
-
1
0
S
T
D
リファレンスガイドj,1
9
9
0
年,3
0
ベー 、 ン[
8
J NEC
,rMS-DOS3 3
C
ユーザ、ーズリファレンスマニュアノレj,1
9
9
0
年[
9
J NEC
,r
M
S
-
WINDOWS3 0
ユーザーズリファレンスマニュアルj,1
9
9
1
年付 録 リス卜 1 仮想86モードにするconfig.. sys buffers=l files=20 device 'fSYS干vems" d"rv / e /u /b10 /x device 干Sys干ludrv'fSys干mx1star5drv/v /b10 device 'fSYS干1u伽drv'fSYS干1135d“sys device 'fSYS干luゎdrv'fSys干pr1川 sYS/u she 11 干commandcom
j
p
/e:640 リスト2 リスト 1のconfigsysのときに使用するautoexec凶bat echo of f set sd=b"" set td=b: 干etc干envdrv if not"児rd1児==""set rd=児rd1児 if not"児rd%"=="" set td=児rd児 set tmp=見td%干 for %%i in (hd1 hd2 hd3 hd4 fd1 fd2 fd3 fd4 rdl)do set児
%
1= prompt $e[36m$l$p$g$e[33m path %tmp%:児sd児干usr;%sdお干bin;%sd児干etc:児sd児干nor Iku帥 /1 addbuf 30 load autoland load crtshut 180,
180 load ezkey -b3 -c7-干+ set comspec=児sd%干command" c" om set vzdef=児sd児干usr干vz干 set vzbak=干vzbak break on リヌト3
リストl
とリスト2
を使用したときのメモリマップ iマ
fi slze 3696 4144 581808 196608 8016 1184 160 496 owner/parameters config she 11 くfree> {VRAM} {config} autoland <free> CRT SHUTter ver2 1 (C)N1S addr PSP blks 1007 0008 1 10EFl
O
EF 2l
1
F4 1 AOOO FFFF 1 D001 FF02 3 D1F9 D204 2 D245 1 D250 D250 1-306- 香川│大学経済論叢 380
D
2
7
0
D
2
7
0
D
2
D
A
F
F
F
F
D
A
3
9
h
a
n
d
l
e
p
a
g
e
1 1
6
8
0
e
z
k
e
y
-
b
3
-
c
7
-干+1 3
0
1
7
6
{
b
u
f
f
e
r
s
*
2
9
}
1 2
3
6
4
8
くf
r
e
e
>
s
i
z
e
n
a
m
e
(
E
M
S
f
r
a
m
e
:
C
O
O
O
h
)
f
r
e
e
1
1
6
1
8
5
6
k
t
o
t
a
l
1
1
6
1
8
5
6
k
リスト4
何も組み込まないc
o
n
fi
g
s
y
s
b
u
f
f
e
r
s
=
2
0
f
i
l
e
s
=
2
0
s
h
e
1
1
=
干c
o
m
r
r
削d
,c
o
m/
p
リス卜5
リスト5
を使用したときのメモリマップa
d
d
r
P
S
P
b
l
k
s
s
i
z
e
o
w
n
e
r
/
p
a
r
a
m
e
t
e
r
s
1
0
0
9
0
0
0
8
1
5
9
4
1
5
9
4
1
6
8
0
σ b、
/
・ 1 ‘ 1 ・e
p f a , E E 易 ︽ ド ν n e I A U ' h u p r -p i v q u ノ¥ n 6 n δ 凋 4 00qLQO 氏 U 司 1 1 i n L n J q u qL 氏 U F h u -q d 1 i リスト6 PC-9801VM
のためのC
O
N
F
I
G
.
S
Y
S
f
i
l
e
s
=
2
0
b
u
f
f
e
r
s
=
l
d
e
v
i
c
e
=
V
s
y
s
V
e
m
m
4
i
s
y
s
/
i
/
w
=
c
O
,
c
4
,
c
8
,
c
c
,
d
O
,
d
8
,
d
c
/
a
2
/
b
d
e
v
i
c
e
=
干V
S
Y
S
干引l
u
r
川r
r
r
帥Id
e
v
i
c
e
=
干V
S
Y
S
干引l
u
n
帥••s
y
s
/
i
/
m
V
s
y
S
干p
r
i
n
t
れs
y
s
/
U
s
h
e
1
1
=
干c
o
m
m
a
n
d
.
c
o
m/
p
/
e
'
5
1
2
一 一 P T i 町 A A 門 町 冷c
n b t れ 4 L o u f u e v T P U S W A V A A u n ι w b o s n u -A U W A T -d w A 刷 , 引 U ' H A U 1 ノ n m A 凡 WA--ょ ・ l o ﹁ ノ = w A A U 弘 U P M O -d = I ¥ 且 川 、 う s , G W A ・ d u α h φ L h F b , パ u n u こ t , d s a J L f e 十 -f i 町 b m 、 , J c o o l v t , m 刷 A V S 唱 i I O U T 、3 " ・ d s c f d t " " f l u o b U + A C U i -= " U T @ R V W A U -一 一 一 一 1 A 町 h N D -A U ¥ T R " = , G A U φ A W S V A F 町 A " ' H S 1 1 W A A U Y ' W A 1 ム W A f t ¥ W A。 。
= s ! v l d d ' = c z 1 2 q ' n I R E B t e = , d ・ 、 " わ -W A V A -V A P P 4 1 7 n r v a a v A " " ・ d m s e -F a n -一 -一 -一 一 一 p t o m , G、
-A U e A u , d , d t t 町 A W A I O z -U T s t I 0 0 町 A p c v ' K ハH V e n n h μ 目 JHH4L+L+L+LI+L+L+ し 4 L E E ' 円 a u o u o l v ρ i v o し ' ? i F T 且 n U 9 u ρ し v o i w ρ しV 1 1 E U ¥ 且 s s s ・l ・ -P I p s s ss
e
t
v
z
b
a
k
=
干v
zb
a
k
s
e
t
t
m
p
=
児t
d
見干b
r
e
a
k
o
n
l
u
m
b
干e
t
c
干a
u
t
o
l
a
n
d
ゅc
o
m
l
u
m
b
干e
t
c
干c
r
t
s
h
u
t 1
8
0
,1
2
0
l
u
m
b
干e
t
c
干e
z
k
e
y-
b
2
b
e
x
/
a
9
9
b
e
x
/
a
7
I
k
u
m
b
/
1
リスト 6とリスト 7を使用したときのメモリマップ円 、
U M 円 、l ノ 、 3 ノ 円 a u ' h u / K A U n u 市 B 晶 h H upus
-つ 山 -t r a -J f e e-、
J e e m + L -V 1 l v a o し 一 n u t n u r 且 m -e a -f r ia
一/LI--e
つ 山 - 一 1 f 7 1 t 2 1 s a 一 v h A u * a A U 中 i'b*Mm p一
円
、
U 1 I n f v n u u一
I / / 一 g ﹀ l J I l 中 l a e ﹀ A 凡 a H n e ﹀ / { 、- 一
・
l ' l e M m n u M n t l , I e-円 、
U Y E t -e一
円
U e 一 fιlaeAAMmI1041etoeile 一 V A n 一 n e f n R A A n R 4 L U I O + t 中 1 ・Kura 一 V A W 一 O 私 H 4 l v v n 民 P A U L u t I 町 円 unEZLus--VA O 一 C S く J i -i l a i t く ita 円 し e r t く e 一 V Am-MB
a -M M M m e 一 6 6 4 8 2 2 0 0 4 4 4 6 0 0 8 n 一E
U
Z 一 G u -P O A U 戸 h U F b R U Q U つ白白 u ワ ω Q υ o O Q u n u -一 2 0 4 6 1 i 1 2 氏 U 3 0 4 6 4 6 S 一 司 U A 官つ山氏 U 1 i p h u ワ s つ山氏 U 1 ょ 1 ょ っ 山 e 一 守 K L A ' K L A -Q u o d -A 1 i z 一つ山つ中 A 叫 A n o 一 F D T i -q d つ d Q U 1 ょ S 一 n u d n U S 一 一 1 2 L 民 A -1 -q L t i 噌i t i 噌i 1 i ' i 可i 1 i ' i 可i 1 1 噌i 1 i 一 h υ 一 e 一 つ 白 つ ﹄ 凋 斗 A P O σ 。 一 円 ノ 臼 円 ノ 臼 一 口 6 n H U n F t i A 凡 1 1 つ 白 n F 噌i n L ワ 臼 n D a 一 唱 I τ i D l 一 n U 円 し p a n u A a n u n u F a n u A より円し P 一。 、
u一
円
U n u n F n u n u n δ 噌i p A A x u n δ n 6 n 6 D 1 -n u -n r n u n u n u n u p a n υ n u n u n υ e 一 1 i つ ム e ' l t -一 ρ し 内 a f -p a p u n D n u -A 円 n u q u n u n u -9 “ q L 円 し n u , d -I t , d 一 F -p u p u n u n u A A Q U Q u p h d n u n U A 官 氏 U 円 し n u n -β I 0 ・ A U 一 P A n U 噌1 n u n u n u -噌 i n d 凋 4 n 6 0 6 n δ n 6 n D a -a 一 n u -1 i A 凡 n u n u n u n u n u n u n u n u n u n u n u ' H 一 リスト 8 f i t i t h -1 1 1 1 l i l i -i 1 1 i B i s -i i一
EXT TPA
のためのC
O
N
F
I
G
,SYSf
i
l
e
s
=
2
0
b
u
f
f
e
r
s
=
l
d
e
v
i
c
e
=
V
s
y
s
干e
m
m
4
j
"s
y
s
/
i
/
w
=
c
O
,c
4
,c
8
,c
c
,d
O
,d
4
,d
8
,d
c
/
a
2
d
e
v
i
c
e
=
V
s
y
s
干r
a
m
d
s
l
ι
S
y
s/
0
/
0
/
B
s
h
e
l
l
=
干c
o
m
m
a
n
d
c
o
m/
p
/
e
:
5
1
2
リスト9
-308- 香 川 大 学 経 済 論 叢 382 リスト
1
0
リスト9
のためのAUTOEXECBAT
E
C
H
O
O
F
F
干etc干envdrv set sd=a: set td=a:: set rd=見rd1児 if not"児hd1%"=="" set sd=児hd1児 if not"児rd%"=="" set td=出rd児 for児児p in (hd1 fd1 fd2 rd1) do set児児p= path見td%干;%sd児!fus r 児;sd児干bin;%sd%干etc set prompt=$!$p$g set comspec=児sd児干command引com set vzdef=児sd児干usr干 set vzbak=干vz_bak set tmp=児td%干 ext_tpa addbuf 20 loaddev"干sys干print“sys/u load干etc!fautoland load干etc干crtshut 180,120 load干etc干ezkey-b2 break on リスト1
1
リスト9
とリスト10を使用したときのメモリマップ一
円
、
U 一 町 円、
22 ノ 一O
h
-/ k n u n u一
1
O
F しs
一
2
・ r 且 -v 且 ρ し v e -E 1 ノm
4 L 一v
v
a
o u 一 nuTA m 一 沼 山 け'
e
-f
a -E C も f kI
-t
2
1
s
a
↑d
T
b
*
d
M
P 一 、 ト Jnnu 一 I n p u / / 一 g ﹀ 1 I T l a H n e ﹀ 1 f a ﹀ / k e M m M 円 1lquvdSIe--1le-nu e-ti--eA 凡 T l o e F I e 円 b o e 一 V A A 凡 n -n e I R R t T k u T A t -一x
p
w
一 O 守b n I U V P A U D n u Z L U P I 円 b u r l -V A 中 l o 一 C S ︿ f1itarue--、 く f i a く e 一 V A 一 m 一 M m T A a -M V A e 一 史 U 氏 Uつ
剖
R U つ b A 品 氏 u n u R U R U R u n u つ ム n 一 E u p uz-8170529871969
一 つ 山 口 U 凋 叫 円 。 噌 i n u n 告 白 U 可In 叫 n U 噌i 1 i s -n 叫 a q 唱i n h u R U 噌i 噌i n u n 叫 noe 一 L 臥 L A L 比 0 6 n M 1 i 可i z 一 q L o o n δ 一5
1
i
一3
4
焔 S 一 ︿ ‘ QU一
一
1 1 -L 民A -1 -n L ' i 可i 唱i t i 噌 i t i t i -t i 噌1 1 1 ム 一e
一 つ 山 q d q d b -g 一2
一 凸 6 円 し 円 円 且 噌 i A ‘ p h U F h u P A P A A q a -ム P A 一 nunUPAnUA 叫凸 XUAAPAPAAAP 一 q u -n u -n r n U 1 i ' i 可i p A p z 1 ムP
一0
1
F
D
D
D
D
F
F
D
K
一
1
2
凹 一FC901455F401cd
一 I A u -P A n u n u n u n u n q n x U A八 円 U n H u n u n u n u n 一 , d 一 P 且 1 ょ q L n u n u -1 a 1 i n L n b 司 1000oa-a-nU 唱i 可 iA 八 n u n u n u n u n u n u n υ n u n u ' n 一total 126 2016k
リスト
12 ParadoxからDOSに抜けたときのメモリマップ addr PSP blks size owner/parameters 1007 0008 1 3696 config 10EF 10EF 2 4144 shell 11F4 11F4 1 12688 AS$VJE 150E 150E 2 92000 vz-z 2B86 2B86 1 1120 paradoxr 2BCD 2BCD 2 3744 command 2CB9 1 471888 <free> 9FEF 2B86 1 256 paradoxr (env) AOOO FFFF 1 196608 {VRAM} D001 FF02 3 8016 D1F9 FFFF 1 30176 D958 D963 2 1184 autoland D9A4 1 160 <free> D9AF D9AF 1 496 CRT SHUTter ver2..1 (C)N1S D9CF D9CF 1 1680 巴zkey-b3-
c
7
-干+ DA3910EF 1 48 shell DA3D 2B86 1 240 paradoxr DA4D 2BCD 1 256 command (env) DA5E 1 23056 くfree> handle page size name (EMS frame:COOOh) 1 4 64k VJE-MAIN 2 4 64k VJE-LIB 3 20 320k VZ 4 4 64k 5 84 1344k free 0 Ok total 116 1856k1
山 13 WI叩削酬O側W胞3..0のためMのω
伽卿州N附附F引I叩G訂 buffers 10 files=
30 device 干windows干himem.sys device 干windows1fsmartdrv..sys 2048 min shell 干command..com a..干/p/e:640-310ー 香川大学経済論叢 384