1990頃、MS-DOS についての
お問い合わせを Mail で戴くことが多くなって作り上げた内容です。
ずっと以前、Windows 3.1J 時代に作成したものですが、追加することにしました。
最新の WIN XP/Vista などには必要のない記載になると思います。致し方なく、
MS-DOS を利用する方のお役に立てれば幸いです。また記述内容に
誤りがあればご指摘いただければありがたいです。
[ OS としての MS-DOS
[ スイッチ-ON で実施される HardWare チェック と メモリー チェック
[ 最初に CONFIG.SYS ありき
[ 次に AUTOEXEC.BAT あり
[ File Manager という最も使う TOOL --- FD
[ CONFIG.SYS 内の装置の導入指定 --- FILES BUFFERS DEVICE
[ CONFIG.SYS 内の 640KB 以上の RAM を利用可能にするメモリードライバー
[ UMB というメモリー領域 (U)PPER (M)EMORY (B)LOCK
[ EMS というメモリー領域 (E)XPANDED (M)EMORY (S)PECIFICATION
[ XMS というメモリー領域 E(X)PANDED (M)EMORY (S)PECIFICATION
[ AUTOEXEC.BAT 内の環境の指定 --- SET PATH= Command の驚異
[ PGM が利用する為の環境変数の指定 -- SET Command の別な役割
[ しかして prompt の話
OS とは (O)peration (S)ystem の略です。つまり A という KEY を
打てば モニター に A という文字が表示される システム 構造のことです。
主文 HomePage Book でもこの事は結構述べているつもりですが、
MS-DOS は特別なもののようです。
その理由は Windows 以前は MS-DOS という基本 SoftWare でもって動作し
ていた機械がほとんどだからです。
過去の Windows 3.1J でさえ MS-DOS の環境に加算されたものです。
現実には Windows 3.1J も MS-DOS の上で動作する別な基本 SoftWare の事です。
Windows という別の基本 SoftWare の上では、あらゆる Windows 用の PGM
やアプリケーションが機械に関係なく動作しますが、MS-DOS 用の SoftWare は
機種依存しています。当然 Windows 3.1J という OS もそれぞれの
メーカー別に存在します。(***)
簡単にいえば、MS-DOS の場合は A という文字を表示する システム にも NEC IBM
FUJITU 等のそれぞれの HardWare 環境に合ったメモリー番地に電気信
号を送付しなければならないそれぞれの HardWare に適合した MS-DOS
が必要という訳です。
* WIN95/98 という 32 bit OS は MS-DOS を必要としません。 しかし、 MS-DOS は WIN95 の システム にも内包されており、起動時に表示さ れる Starting WIN95... 表示中に [F4] key を押せば、 WIN95 は 起動せず、MS-DOS が呼び込まれます。Win98 では [shift] key だと思いました。
基本的に Command 体系は同じなので、なんだ同じ Command 命令で動
作すると、まったく同じ OS と勘違いするのですが、DOS の Command もその機械
特有の HardWare 環境にあわせて SET されており、NEC の DOS を IBM の
機械に導入する事はできません。
実は DOS そのものがそれぞれの機械に対応して作製されている訳で、
BIOS (Basic Input Output System)
がそれぞれ別の記憶域を利用する、機械の特性にしばられています。
それはどの記憶域と入出力番地 IRQ(Interrupt Request)
INT(Internal) を利用するかを各社
が勝手に決めているという事実によって、現実には無政府状態であると
いう事です。
しかし、その機械用の DOS でありさえすれば同じ Command 体系で
HardWare を制御できるのがこの基本 SoftWare の凄さです。あらゆる機械に移
植された最初の OS にふさわしい統一した Command 体系を持っていました。
PC/AT IRQ No. | 9801/9821 INT No. | 9801/9821 利用機材 | PC/AT 利用機材 |
---|---|---|---|
0 | * | system Timer | System timer |
1 | * | Keyboard | Keyboard |
2 | * | CRTV | Controller IRQ 8-15 |
3 | 0 | * | COM2 |
4 | * | COM port | COM1 |
5 | 1 | * | LPT2 (for SoundBraster or E-IDE) |
6 | 2 | * | Controller for FDD |
7 | * | Controller IRQ 8-15 | LPT1 for Printer |
8 | * | ODP | System CMOS |
9 | 3 | Controller IDE harddisc | * |
10 | 41 | 640KB FDD controller | * |
11 | 42 | 1.2MB FDD controller | * |
12 | 5 | Sound board | PS/2 Mouse 使用していなければ空き |
13 | 6 | Mouse | ODP (数値演算 processor) |
14 | * | Printer port | Cotroller for IDE |
15 | * | System Timer | * |
C:¥>DIR [RETURN] は誰もが一度は入力する Command ですが、 これ はあらゆる DOS Machine で成立します。原始的というより、市民権を 得た Command になりました。 コンピューター上では最初の国際共通語の成立です。
好むと好まざるにかかわらず、
MS-DOS はかつての コンピューター の標準語です。
IBM 社 PC/AT の HardWare の公開に沿って、同時期の主力 OS として CP/M を駆
逐した OS です。Windows 以前の コンピューター は、
ほとんどすべてが MS-DOS で基本 SoftWare になっており、
ここを避けて通る事は無理のようです。
しかし、その主流の MS-DOS は Command 体系が統一されているとい
う事が重要です。あらゆる機械で同一の Command でもって制御できる
以上、この Command の全部は当時のすべての機械で必要な Command になりま
した。ここから始まる記述はまさに電源投入時に MS-DOS は何をするのか
の解答を提示する事にあります。
すべての MS-DOS Machine は同様の傘の下で、同じ指令文書によって
その指示通りに動いているという事実を提示する為に、この Page は書か
れていきます。MS-DOS という、歴史をかざる MicroSoft 社の
Desk Operation System の全貌についての記載です。
いまや Windows 一色になってきたこの 1999/8 になんと FreeDOS という OS が 成立した。いまや DOS さえも Free で提供されることに感謝すべきだろう。 OS が Free で提供されることに僕は時代の変化を感じる。
目的が単機能である機械の場合は、なにも重厚な Windows や Unix である必要など ないのだと僕も思うくらいだから、返ってこれから DOS という OS は Stand Alone の 機械には重要な OS になっていくのかも知れない。
電源がはいると、Power Unit は直流 12V (現在は 5V or 3.3V) の電気 を Unit 内のありとあらゆる器材に供給し始める事になりますが、 その電気信号を受けて最初に動作するのは ROM という環境を検査する CHIP です。 まず ROM が各部に電気信号を発します。日本IBM の機械の場合は IBM の ROM 、 小生の様な互換機の場合は AMI (American Megtrends) or PHENICS とい う ROM ( Read Only Memory) がその電源を利用してすべての器材に信号をおくり有無を チェック します。 装備されている器材は何なのかを探索する為です。 まず、メモリーチェックです。利用できるメモリーの容量を測定します。 これが起動時にモニターに提示される Counter の意味です。8064KB と表示される場合はメモリーが 8MB (1MB=1024KB)ということです。
そして、装備された Disc ドライブ のチェックをします。A ドライブの LED が点滅し A ドライブの確認をします。次に B ドライブがあるかのチェック が入りますが、B ドライブ のない機械の場合は表示しようがないので省略 です。次にハードディスクの有無を確認し、そのドライブの LED を点灯させ て、今後の動作すべき OS はどのドライブにあるかをチェックします。
最新の BIOS の場合は上記の検索の順番を変えることが可能です。 設定できる項目が用意されています。旧型のものはこの設定がないため、 Floppy Drive から check が入ります。
Memory が 8MB の場合、
機械は 8064KB と表示した後にブーッというアクセス音が発せられます。
機械の ROM は直ちに BOOT するべき OS の ドライブ から DOS システム
を RAM に転送し MS-DOS に主導権を渡す事になります。それがブーッ
という音です。
どのドライブが OS を所有しているのかはディスクの先頭トラックに書か
れた (保存) 記号で理解します。「 システム 」があるぞという記号が
ハードディスクの先頭トラックに 16 進法によって記載されていますが、
システムを内包する 3.5 インチディスクを挿入しておけば、
そのディスクに制御を渡します。旧来の PC/AT の機械の場合は Floppy Drive の
A ライブがハードディスクの C ドライブ より優先になっています。
ディスク が挿入されていなければ C ドライブ に制御を渡します。
詳細は
「フロッピーディスクという妖怪」に記載しました
CONFIG.SYS というファイルが起動ドライブのディスクには必ずあります。 Configration ( 環境 ) ファイル の事で RAM へ転送された IBMBIO.COM IBMDOS.COM COMMAND.COM (日本 IBM と PC/AT の場合) のシステムファイルは 直ちにこのファイルを探し、 内容を読み込む様にプログラムされている訳です。このファイルは Text Fileで暗号の様な文字が並ぶ命令書です。一文字でも違うとエラーを だして命令は無効になりますから注意が必要です。このファイルは Text File ですから中味は見る事ができます。
C:\>TYPE CONFIG.SYS [RETURN] です。 簡単に画面表示されます。記録に取りたいのならば、 C:\>TYPE CONFIG.SYS >PRN [RETURN] です。 内容は画面ではなく Printer へ送付されます。 もし、CONFIG.SYS がない場合は以下の設定で指示待ちになります。
FILES=20
BUFFERS=20
BREAK OFF
LASTDRIVE=Z
キーボード と モニター 以外は使用できない。
制御文字は受付ない。
利用できる メモリー は 640KB
はっきりいって、これではアプリケーションは動作しても、使いものに なりません。プリンターは言うに及ばず、制御文字が利用できないのでは 操作が完全にはできないからです。さらに今時 640KB のメモリーで動作する アプリケーションを捜す方が大変です。
CONFIG.SYS の設定通り RAM に必要なドライバーファイルを転送した DOS システムは AUTOEXEC.BAT というファイルをさがし、これまた自動的に書 かれた命令を実行します。これも IBMDOS.COM (NEC9801 の場合は MSDOS.SYS) の中にプログラム されている訳ですが、なければ何もせずに prompt 待ちになります。 AUTOEXEC.BAT はその名の通り、自動実行する Command を書いた命令 書であり、いつも利用するプログラムを打ち込みなしでやってしまおう という訳で、打ち込みを代行するファイルです。 もし、AUTOEXEC.BAT が存在しなければ、以下の環境が SET され自動 的にコンピューターは DATE と TIME という DOS Command を内部で打つ事 になります。
C:\>SET COMSPEC=C:\Command.COM [RETURN]
C:\>DATE [RETURN]
C:\>TIME [RETURN]
上記は AUTOEXEC.BAT がない場合、何もしなくても、自動的に実行さ れます。裸の HDD に最初のシステム導入のときに日付と時間を聞いてくる のは上記が実行されているからです。
* Autoexec.bat と同様のものが Windows にもあります。スタートアップという GROUP がそれで、ここに常に利用する ICON を SET しておくと Windows は起動時に自動的にこの プログラム を起動、動作させてくれます。
コンピューター屋さんも、今小生がしていく説明が大変なので上記の設定 にしたがります。説明しても、判りっこないときめてかかっている節が ありますが、説明できないのかもしれません。機械の購入を考えている ならば、きちんと説明が出来るか確認してから購入先を決める方が無難 です。
業務用に導入される会社利用する機械の AUTOEXEC.BAT の中身は 5250
システム を導入して LAN を構築している場合がありますが、この場合は
それに関係する必要な AS400.BAT を呼び込んだりして 5250 システムを
起動しています。
( BATCH ファイル から BATCH ファイル を呼び込む為には CALL 命令が
利用されます。)
一般の システム 導入された DOS 5.0 以降の機械の場合、AUTOEXEC.BAT の
最後には DOSSHELL というファイル操作管理 Program が自動的に起動する様
に SET されています。(***)
業務用のプログラムを終了し DOS 画面に MENU で表示される奴です。
アプリケーションユーザーに取ってはこの MENU がもっとも
判り良い環境でしょう。 なにせ MENU から選択して [改行 KEY] を押す事
でプログラムは起動します。それは WORDPRO の Machine が表示す
る MENU と同質です。これを使用し続ける事で、コンピューターの中身など
知らなくて良いという事態にしている訳で、
DOSSHELL というプログラムは初心者には判り良いという環境を
提供します。(***)
*** 致し方ないのは DOS 5.0 以降の導入はその設定をする様になって いるのです。システム構築者が、その有無を決定します。単純に 仕事としてコンピューターを使う事ができるという設定はそれに従う 事が簡単です。なにせ、コンピューターをまったく知らない多くの社 員の質問の嵐に身を置く事になる事を運命づけられたシステム導 入者は大変です。
別なところでも言及していますが、 FD という有能な File Manager が存在します。これは、世界に誇る日本の FreeWare です。 個人のコンピューターで MS-DOS を利用している人で、この FD を利用していな いとすれば、よっぽど機械について勉強しようという気のない無頓着か つ怠慢な、ユーザーと言っても過言ではないでしょう。 (***)
FD は ディスク付きのコンピューター雑誌を一冊購入すれば、そのディスクの
中に収録される代表的な FreeWare です。あらゆるコンピューター雑誌で
ディスク付きのものには必ず添付されているといっても過言ではないこの
有益なプログラムは、ファイルに対してのあらゆる Command を簡単に画面
上から操作できる多岐にわたる機能を以っており、それは利用する
ユーザーによって様々な意見が開発者の元へフィードバックされ、開発者はそ
の要求に随時応えてきた結果です。
この FD の作者は矢継ぎ早の対応を実施しており、すで
に OR-DOS . OS/2 . テープドライブ . CD-ROM ドライブ などへの対応
がすんでいます。これほどの装置対応をもった DOS 用の File Manager は他に
存在しません。
作者の出射氏は H16年11月に亡くなったそうです。ご冥福をお祈りします。
*** 著作権は当地の日本では放棄出来ません。それが日本の法律であ り、放棄しても無視されます。作製されたとたんに著作権は成立 し消去できません。USA では上記を消去するすべがあり、法規的 に認められています。USA 版の SoftWare には COPY-LEFT ( COPY RIGHT の反対 ) の語句が記載されるのはこの理由によります。
では CONFIG.SYS の暗号文の説明といきます。
上記は DOS システム が ACCESS できるファイル数の事です。31 ケ目の ファイルを RAM (Rumdom Access Memory = ランダム・アクセス・メモリー) に転送しようとする、すなわち 31ケのファイル導入をする と入出力エリアを RAM に用意していない為に Error をだします。 RAM にはファイルとアクセスする為の領域が確保されていなければなり ません。この個数分、メモリーに領域が確保されます。この数字は 8 の倍数が効率的です。理由はコンピューターは 8 bit という最低単位で の入出力を実施しているからで、まとめて出入りする前提であれば その単位にあわせた方が効率的だからで、ノイマンの遺産です。 上記の形式に従うと FILES=32 です。 Windows の利用環境では上記は 32 以上でないとあぶないです。 Windows は起動するだけで大量のプログラムファイルを呼び込みますから、 最低で 32 です。Windows 3.1J 上で DATABASE の ACCESS を利用するとなれば、 50 は必要になります。この項目は動作中に増やすという事が出来ませんから、 増加させる書き換えをした場合は RESET して最初から、 つまり電源投入からやり直す事になります。 いずれ、数の分に似合う メモリー を消費して、 他の Program の利用できる メモリー が減少します。
上記は DATA を入出力する為に一時保管する場所です。
確定するまではここに DATA は保持されて、
だいたいは [RETURN] で ディスク に書いたり、
またはディスクから読込みしたりしてモニターに表示したりします。
古い日本IBM 社などのキーボードを利用している場合は、[実行] Key で
やっています。
20 の意味はこの一時保管場所を メモリー 内に 20 ケ作れという意味です。
当然 21 ケ目の DATA PACKAGE が来た場合は最初の 1 ケ目に格納されて
しまいます。これは USER 側での Error はでませんが、
もし出た場合は プログラム が BUFFER の数の チェック をやっていて、
数字が少なすぎてダメだの意味です。
この場合は数字を増加させることになります。
これも FILES 同様に動作中に増加させる事は出来ません。
上記は 640KB 以上の メモリー を使用するかどうかの DOS に対する警告です。 DOS はただちにこの メモリー を利用出来る様に メモリー 内部に管理用の地 域を作製します。この命令がなければ、640KB 以上の メモリー 利用は 不可になります。HIGH は 1024 以上 1088KB までを示し、 UMB は 640 〜 1024 までの メモリー を意味します。 これを有効にするには、 HIMEM.SYS と EMM386.EXE を DEVICE 指定する 必要があります。
16 BIT 辞書を ACCESS 可能にした DOS/V ですが、世界中の言語を表 示できる関係で言語辞書を指定します。081 は国際電話番号で JAPAN の事です。ついでにキーボードの TYPE を指定しているはずです。 世界中のキーボードを相手にする訳で、 結構設定が複雑になっています。d: は ドライブ の意味です。 COUNTRY.SYS の居場所を示します。
上記がやたらめったら並んでいるはずです。Device Driver の呼び込 みをしている訳ですが、色々な装置を利用可能にする為にプログラム を RAM へ転送し常駐させるものです。
PRINTER を使える様にする $PRN.SYS 、 3 MODE の ディスク ドライブ で NEC の 1.2MB FLOPPY を利用できる様にす る $FDD12.SYS、 HIGH UMB メモリー を操作する HIMEM.SYS と EMM386.EXE、 制御文字を受け付けるようにする ANSI.SYS、 モニター に文字を転送するに必要な DISPLAY ドライバー である $FONT.SYS と $DISP.SYS、 日本語の キーボード を指定する JKEYB.SYS
特に、 DEVICE=*:¥***¥EMM386.SYS RAM 1024 x=dc00-dffff という 指定がされている場合は、 UMB の DC00〜DFFF の番地は使用するなという指定をしています。 この領域は 5250 のシステム BIOS として確保して置く必要があるの でしょう。DOS J4.0 以前にはここは システム BIOS ROM として利用され ていた様です。 しかし、以降で述べる様に Windows 3.1J と 5250 システムは共存 を実現できません。 Windows 3.1J を終了して 5250 システムにもどる事は出来ません。
装置を追加するたびに ドライブ は増加します。たとえば CD-ROM をつ
ければ MSCDEX.EXE ドライバーを起動しなけばなりません。
重要な事は ドライバー はそのプログラムの size によってその分メモリー
を消費するという事です。FILES や BUFFERS の比ではありません。 こ
れはでかいです。 こうして、メモリーを占有する分、残った差分の利用
可能容量以上のプログラムはメモリーに入り切らなくなります。上記で
DOS=HIGH,UMB が指定されているから良いのですが、もし指定がないと
すべて 640KB の低メモリーにすべて転送されてしまい、多分残は
300KB を切るでしょう。これを避けるために DEVICEHIGH という HIGH
メモリーへ転送する命令があります。この場合は 640KB の低メモリーに
は転送されません。
上記は REM = MEMO という意味です。実際には実行するなの意味にな ります。後で必要になるとか予想される場合、或は自動設定の形式を残 しておきたい場合などは、先頭の REM を入れるだけでコンピューターはこ れを無視します。
上記は記載がないかもしれません。しかし、Z とした場合は 26 ケの ドライブが ACCESS 可能となる様にメモリーに入出力地域を確保します。 何も指定しないと DOS は Z にしてしまうのが困ったものです。メモリー がふんだんにあるのならば結構ですが、これは E くらいにした方が メモリーを節約できます。
一般的な企業で利用する PC/AT 機は MS-DOS 導入時に上記の設定になっている
と思いますが、
個人で機械を使用している場合は確認が必要かもしれません。
上記は必須の Command です。SHELL 命令は
アプリケーションの終了時に最初に呼び出すファイルの名前と居場所を指定します。
Command.com がなければ DOS が使えない事になります。場所が不明の
場合、「command.com がありません」のエラーが出て、システムは停止
しますから注意が必要です。Command.com はウィルスの標的です。わざ
わざ DOS ディレクトリー内の Command.com を指定しているのは上記の為で
す。ルートディレクトリーにもあるのですが、念が入っています。
HIMEM.SYS と EMM386.EXE という SoftWare は 640KB 以上のメモリー を利用可能にするドライバーです。DOS=HIGH,UMB の文が有効になるのも このドライバーの設定した管理用の領域がある為です。 とても重要なドライバーで Version up が頻繁です。 MS-DOS マシーンであるならば早めに PC-DOS 6.3/V 以上へ移行する事を薦めます。 上記の Version up は小数点以下の番号が変化する場合 は無償の供与がされます。個人の小生でさえ持って居ましたが、それぞれの会社の場 合はどうなんでしょうか・・。
640KB で動作するアプリケーションの方が少なくなりました。巨大な
Windows 3.1J などは上記のドライバーで 8MB のメモリーでやっとこさ動作は
まあまあの所です。
歴史的に一般に利用できるコンピューターのメモリーは当初 256KB から
始まった訳で、 当時は小さなプログラムばかりでした。しかし、利用者
の要求によってプログラムは巨大化の一途を辿りました。2MB(2048KB)
を必要とするプログラムが当たり前になった時、DOS システムが 1024KB
以上のメモリー管理をできないという壁を破るまでは、1MB(1024KB) 以
上のメモリーが必要なプログラムは個人の利用するコンピューターでは利用
できませんでした。
DOS システムが 640KB 以上のメモリー管理ができないというのは、
アプリケーションが利用できないという意味で、現実には 1024KB までの管
理領域は存在します。これに目を付けたことが現在のコンピューター環境の基礎を
構築しました。
640-1024KB の間に 1024KB 以上の メモリー を番地制御しアクセスで
きる様にするシステムを作ろうという試みです。その領域を UMB とい
います。簡単に言えば、DOS が制御するのでは 1024KB の限界が存在す
るので、別の制御機能をもったプログラムをこの領域に常駐させて、
1024KB 以上の管理をさせようとした訳です。
上記は MS-DOS を販売していた MicroSoft 社とは関係のない
アプリケーション会社が自分に都合の良い様に作り出した為に、
一時は無政府状態でした。日本 IBM のバンクシステム (Bank System) とか
様式は色々です。XMS という変幻自在なメモリーの国際基準ができるまで、
この混乱は 4 年程度続きました。
当然 5250 仕様などの LAN を組んでいる日本IBM 社の機械は、
自社の都合だけで作製したバンクシステム上で動作しており、
無政府状態のプログラムの一つです。Windows 3.1J から 5250 を起
動するという事は上記の理由で出来ません。
* WIN95/98 の場合は、これに対応した PCOM という 5250 system が 別途販売されています。
上記の混乱の様式のなかで、1024KB 以上のメモリーの総称が EMS で
す。EMS は上記の 640-1024KB に常駐した メモリー管理システム1が管理
する 1024KB 以上のメモリーの形態をいいます。前述した様に
アプリケーション各社の思惑がからんで、色々な形態のメモリー設定となっ
てしまい、混乱はアプリケーション大手数社が提唱する LIM 4.0 に準拠と
いう形で収拾されていきます。(***)
上記の各社の設定した EMS ドライバーの欠点は、一度コンピューター
起動時に設定した EMS のサイズは変更出来ないという事です。たとえ
ば LOTUS 123 というアプリケーションが 2MB の EMS を利用する、さらに
「一太郎」が 3MB の EMS を利用するなどと アプリケーションが色々とある
場合は、最大の容量を確保しておかねばなりません。プログラム 導入の際、
繁雑になる原因です。
さらに MS-Windows の導入に取っては、最大の足かせになりました。
Windows ではメモリーをアクティブなアプリケーションの要求する分だけ、
いくらでも自由に供給するという必要があったからで、メモリーを固定化さ
れては、それぞれのアプリケーション分を確保する巨大なメモリーが必要
になります。
*** LIM 4.0 とは Lotus Intel MicroSoft の 3 社が協議して決めた互換規格の事です。頭文字を取って居ます。
MS-DOS 上の 5250 システムが MS-Windows 3.1J と共存できない理由も
原因はこの部分です。
5250 system は 1024MB 以上の メモリー を日本IBM 社の様式
であるバンクシステムによって実施しているからです。EMS は固定的で
あるが故に、動的に 1024MB 以上のメモリーを有効に利用する Windows
との共存が不可になった訳です。
Windows との共存の為には 5250 system を XMS 上で動作する様に出来れ
ば良い訳ですが、それには最初からプログラムを書き直すという対価を
を伴う選択となり、ほとんど無理だったと判断します。
UMB + EMS という形を完全に統合したものが XMS です。 またも、
MicroSoft 社がこの先鞭を付け、様々な仕様の EMS を自在に操る事が
できる様にしました。ですから EMS は XMS に含まれています。
各社の UMB に導入される EMS 制御用のドライバーを MS-DOS が
取りかえしたという事です。この XMS ドライバーはいちいち再起動しなく
ても、EMS の設定を変更できるという強みを持っていました。同時にアクセス
可能メモリーは 32MB まで拡張され、ダウンサイジングという流れ
には合致しました。(***)
ドライバーファイル名は HIMEM.SYS と EMM386.EXE の 2 つで出来ています。
このドライバーは動作中に 1024KB 以上のメモリーを、現在動作に必要な
分必要なだけ割り当てる事ができ、さらに不必要な分はスワッピングして
他に割り当てる事ができます。
Windows はマルチタスクだといいますが、その実際は動作中の窓と
動作していない窓が存在し、動作していない窓で停止しているプログラムのメモリー
は必要ない訳です。 メモリーを節約する為に Windows は SLEEP 状態の
プログラムが設定した XMS 領域のメモリーを ACTIVE 状態のプログラムへ
SWAPPING してしまいます。
*** ダウンサイジングとは上記の小型のコンピューターが大型と 同様の機能を持つ事と同じです。 まるで Up-Sizing に見えますが、SoftWare が同時に小型化しており、 SoftWare の小型化を持って Down-Sizing といっています。
上記の メモリー 全体を図示すれば以下の様になります。
=----------------------= 32 MB | | <=== 当然上限です。(MS-DOS) | | 32 x 1024KB = ? 〜 〜 〜 〜 WINDOWS での上限はさらに | | 拡張され 256MB になりました | | 〜---------------------〜 8064 KB <--- | | 8 MB の場合の上限 | | | | | | *** Windows 上では動的に | Expanded Memory | SWAPPING が実行され | ( XMS ) | 動作中でも XMS EMS | | の容量は変化するも、 | EMS を含む | DOS では、変化できな | | い為、EMS 設定をすれ | | ば固定される。 | | (上記は IBM の場合) | | | | Windows PGM はここに | | ロードされる | | 10FFF |----------------------| 1088 KB DOS=HIGH 命令で | HMA | 64 KB <DOS システムが使用 FFFF |----------------------| 1024 KB = 1MB | | DFFF -| |----- | | <--- 5250 のシステム D000 -| |----- BOIS が使用 〜 〜 〜 〜 | | | Upper Memory | * DOS=UMB命令で PGM | UMB | を LOAD する領域 | 384 KB | 常駐ドライバーなど | | | | | | A000 |----------------------| 640 KB | Command.COM の | | 内部 command 常駐部 | |----------------------| | | | | * 一般の DOS アプリは | Conventional | ここにロードされる | Memory | Multi-Plan 等、WP2 | ( Main memory ) | などもこの領域 | 640 KB | | | | | | | | | | | | | 〜 〜 *** いわゆる汎用のメモリー 〜 〜 ( 655365 BYTES ) | | | | | | | Command.com | | IBMDOS.COM | | IBMBIO.COM | 0000H =----------------------= 0 KB
この自動実行ファイルはすでに書いた単一のアプリケーションで機械を利 用する場合は重宝なものですが、色々の目的に利用するとなると、 プログラムの自動実行はかえって邪魔になります。中身は Text File で すから当然見れます。
とやれば直ちに内容が表示されます。
ではなぜこんなファイルがあるのでしょうか。この理由は使用環境の設
定という事の為にあります。ほとんどが SET ***=*** という Command
で定義されるようになっており、一旦 SET Command が実行されると機
械は変更する Command がない限り、その定義を電源 OFF まで覚えてい
てくれます。一番大事なのが SET PATH=*** という Command です。
一般的な機械は最初の DOS の導入の時点のままの設定になっている為、
SET PATH=C:¥Windows;C:¥DOS であると思います。
多分そうでしょう。たとえば C:\>MP [RETURN] とやってみて下さい。
「Command または ファイル がありません」と、 DOS=(D)isk (O)peration
(S)ystem に怒られる場合があります。
DOS は PATH で指定された領域しかファイルやプログラムを捜さないの
です。この場合は C:\Windows と C:\DOS ディレクトリーだけを捜して、
MP.COM or MP.EXE or MP.BAT がないのでエラーをだします。起動でき
ない理由は、MP プログラムが
MP <DIR> という部屋に格納されているか
らです。
だったら、PATH=C:¥Windows;C:¥DOS;C:¥MP
としてしまえば良いのです。
DOS は PATH の指示どうり
C:¥MP DERECTORY までを捜し、見つけた場合は、
MP を起動します。以下の Command で MP は動くようになります。
上記はすでに設定した PATH の内容に
C:¥MP を加えろという意味で
すが、PATH は過去に登録した内容を コンピューター が保全していますから、
上記のような記述でも OK です。
もちろん
SET PATH=C:¥Windows;C:¥DOS;C:¥MP [RETURN]
とタイプしてもよいのですが、
せっかくコンピューター が覚えているのですから利用しましょう・・。
最初から利用すると判っているプログラムのあるディレクトリーはすべて
PATH 指定するのが一番言い訳です。
SET Command は後から変更可能ですから、いちいち reset する必要
はありません。 Command Line に SET ***=**** と打って直ちに変更で
きますし、その変更は直ちにコンピューターに記憶されます。
しかし、SHELL 文を指定しないと、SET で指定される合計文字数が
127 文字以上は設定できません。話が戻りますが、CONFIG.SYS の
SHELL=C:¥DOS¥Command.COM C:¥DOS /P /E:512
の 512 の意味は上記の 128 文字以上にする為の設定です。
SHELL のこの文の設定だと 511 文字利用できます。
最後の 1 文字は改行記号が入ります。(***)
*** 上記の文字数を越えた場合は、「環境変数のメモリーが不足です」と、 また DOS に怒られますから注意が必要です。[ PGM が利用する為の環境変数の指定 -- SET Command の別な役割
実は、プログラムも環境変数を利用します。DOS の Command の中には TEMP という環境をどこに設定しているか見て、 その指定ディレクトリーに一時ファイルをつくるものが多いのです。 SET TEMP=C:\DOS などと設定してるのは上記の理由です。 一時ファイルの置く場所を指定しています。 これはこの設定を必要とするプログラムだけが利用します。 以下は小生の使用した 9801E の AUTOEXEC.BAT の内容です。 SET Command がいかに多くのプログラムに利用されているかが 理解できると思います。但し、NEC 9801 専用で PC/AT の Machine には 無効な記述がありますから利用しないで下さい。
echo off
echo ^[2A^[J
set prompt=$p$g$s$t$h$h$h$h$h$h$_%%
a:¥usr¥tool¥setpath a:¥etc¥pathname > nul
env_drv
copykey
set TZ=JST-9XS
set HELP=a:¥usr¥man
set MAN=a:¥usr¥man
set PAGER=LESS
set TMP=%HD2%
set TEMP=%TMP%
set editor=EMACS
set termcap=a:¥usr¥uty¥termcap
set term=pc98
set rxext=.txt .doc
set xtr=f ai aj as kc e i8 w72
set xtrpath=a:¥usr¥lib
set ponsk=a:¥usr¥man
set TR=a:¥usr¥net
set telfee=b:¥tmp
verify on
MENU
SET XTR=af ai aj as e i8 w72 なんて設定も、 XTR.EXE というプログラムが利用する為にだけ設定している訳です。 これはめちゃくちゃに書かれた TEXT 文書ファイルを以下の設定でもって整列し、 きれいに配列する プログラム の設定を決めています。
af= 無駄な space を切り詰めろ (full)
ai= 左側に space をいれて揃えろ (indent)
aj= 右隅をきれいに揃えろ (ajustment)
as= 英字の前後には space を入れろ
e = 拡張機能を ok にする
i8= 左端の space を 8 ケ入れて indent
w72=72 文字目で改行 key をいれて文章を折り返せ
XTR.EXE は上記の命令通りに文書ファイルを整形します。
実際にこの貴殿が読んでいるこの文書も以前は XTR.EXE で作製されたものです。
これ以外にも利用するプログラムが指定しろと MANUAL に書かれてい
る場合は指定しなければなりません。これらの SET で指定された文字
の合計は 511 文字以内だと言う事は申すまでもありません。DOS に怒
られたなら SHELL 文の /E: 以下の数字を変更して下さい。
しかし、これによって同じ プログラム が色々の指定で動作する様にな
ります。うまく出来ているものです。(^_^)
こうしてメモリーに必要な CONFIG.SYS と AUTOEXEC.BAT に記載され
た動作ファイルを転送し、常駐させた DOS は貴殿に prompt をもって入力を
待つ事になります。 prompt という語句は「指示待ちになった」という
意味なのですが、指示待ちでも自分の存在を主張する訳です。
AUTOEXEC.BAT の中に SET prompt=$P$G と
記載されている事に気がついているでしょうか。
$P は現在いるドライブ名をしめせ、
$G は現在い
るディレクトリーを表示しろの意味です。つまり prompt は
C:¥DOS> などと居る場所を教えてくれる訳です。
色々な prompt を作製できますが、それは専門の書物にまかせます。
暇ならばその手の本を読んでみてください。特にディレクトリー(ホルダー)に関する
記述が理解できるまでは相当の困難がありますが、ディレクトリー(ホルダー)を理解す
れば DOS や WINDOWS の大半は判ったも同然です。
前述した PATH=%PATH%;C:¥MP を実行した方は、 C:¥> に MP と入力し RETURN を打つと MultiPlan は起動します。それはこの プログラムの主 プログラムが MP <DIR>に格納されている MP.COM であるからです。 PATH で指定されたディレクトリーを捜す DOS は COM or EXE or BAT の拡 張子を持つファイルを捜します。つまり C:¥>MP [RETURN] は PATH の指定さ れた <DIR> に MP.COM or MP.EXE or MP.BAT があれば そのファイルに動作を渡します。
逆に言うと、*.COM or *.EXE or *.BAT は実行可能プログラムと言わ れるファイルです。これは動作を内包したプログラムファイルなのです。
メモリー は有限であるという事に準拠した *.COM *.EXE のプログラム
は自己を起動する場合、DOS の prompt 状態にしか必要のない Command.COM の
メモリーに上書きする場合があります。
この途端に DOS はその制御を喪失しますが、
すでに MP.COM が MultiPlan の KEY 入力に反応する環境になっているので
動作上は、MP の PGM の入出力を受け付けます。
こうゆう事になるのは動作するプログラムの為に 640KB メモリーを十分に
開けてやろうとする DOS システムの親心です。(^_-)
しかし、終了した途端に DOS の MODE になり、Command.com が必要
です。 しかし、プログラム起動時に Command.com はメモリーから削除さ
れています。終了し MS-DOS へ戻ったなら Command.com は絶対必要なんです。
MicroSoft社のプログラムは環境変数の COMSPEC を終了時に見に行く様に
なっていますが、他のほとんどの市販のプログラムは SHELL を終了時に
見に行く様になっています。
SHELL=**** の文は Command.com の所在を指定する、この時の為にあります。
(***) プログラム としてこの世界には MicroSoft社
以外のものが星の数ほど存在し、そのほとんどのアプリケーションは、
SHELL 文を見に行きます。
*** SHELL= の CONFIG.SYS の COMMENT は DOS 5.0/V 移行の PC-DOS では自動的に設定される様になっていますが、/E:512 という設定 まではしてくれません。現有の DOS 6.1/V は上記と同様で す。自動設定されるので意識する必要はありませんが、環境変数の 容量をオーバーすればエラーがでます。
SHELL=C:\..
について一生懸命語りました。
理由は、MicroSoft 社のプログラムだけを使用すると言うのならば別ですが、
COMSPEC=C:\Command.com だけでは片手落ちだという事を述べて置く事が必要
と判断したからです。DOS 5.0 以前の利用には必須の警鐘を付け加えて
置く事は旧型のコンピューターを利用する人に取っても重要な事だと思いま
す。
いずれにしろ上記は MicroSoft 社が自社以外のプログラムが参照する
SHELL という環境変数の指定を認め、かつ利用しようとしている証左で
す。Version 5.0 以降の DOS は SHELL= を自動的に設定します。
MicroSoft 社が他社のアプリケーションさえも必要だと考えるほど
MS-DOS と MS-Windows の将来に賭けているといっても良いかもしれません。
Windows の動作がおかしくなったという状況があります。 なにせ追加の新しい動作環境か次々に追加れているという現状です。 起動時の読み込み中核 file である system.dat は改変される標的になって いる事実があります。突然 windows の起動がおかしくなったという事態は よく体験する現実です。回避のための説明を加えておくことにします。
一旦 widows の終了を選択し、MS-DOS で再起動するを選択し、DOS を 起動します。画面が C:\WOINDOWS> になったら以下の command line を打ち込みます。C:\WINDOWS>scanreg /fix [return] 上記の命令で実施されるのは system.dat という file の矛盾の修復です。 時間がかかります。なにせ Computer が自己の環境設定を自己修復するのです から・・。しかし、僕は何度もこれを実行しています。MicroSoft 社に都合の 良い環境になるという事実もありますが、Windows 抜きに僕らの仕事利用は成立 しないという現実は知っておいて良いでしょう。試してみてぐたさい。
to the next page..めくる。