1990頃、MS-DOS についての お問い合わせを Mail で戴くことが多くなって作り上げた内容です。 ずっと以前、Windows 3.1J 時代に作成したものですが、追加することにしました。 最新の WIN XP/Vista などには必要のない記載になると思います。致し方なく、 MS-DOS を利用する方のお役に立てれば幸いです。また記述内容に 誤りがあればご指摘いただければありがたいです。


警告 !!

これから始まる大レースは危険きわまりない記載です。(^_^) すくな くとも、
C:\> の意味が判って いると自信のある人向けですから、心して読んで下さい。 そして記載された Command を Command Line として 打ち込む時は、結果について一切責任を負いません。 こう書くのは、貴殿がここに記載された Command を 1 文字も間違い なく入力できるか信用していないからです。 一般の方でこの危険な記述を理解し、実行できる御仁はそんなには存在 しないでしょう。少なくとも個人で自宅にコンピューターを利用している人 に相談の上、実施して下さい。少なくとも、この記載を Command として利用する人の背景には動作しなくなった Computer が連想されるのは 僕も同様の悲劇を味わってきた一人であるからです。
Twitterボタン


Sep '94
adding Dec 1995
adding Feb 1996
adding & fixed Mar 1999
Updated 16th May 2009


* MS-DOS について -- 起動から prompt がでるまで *


CONTENTS

[ 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 としての MS-DOS

マイクロソフトライセンスセンター  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 PC9801/9821 入出力装置比較表
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 になりました。 コンピューター上では最初の国際共通語の成立です。

C:\>dir [return]

 好むと好まざるにかかわらず、 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 の全貌についての記載です。

Jump to the FreeDOS

 いまや Windows 一色になってきたこの 1999/8 になんと FreeDOS という OS が 成立した。いまや DOS さえも Free で提供されることに感謝すべきだろう。 OS が Free で提供されることに僕は時代の変化を感じる。
 目的が単機能である機械の場合は、なにも重厚な Windows や Unix である必要など ないのだと僕も思うくらいだから、返ってこれから DOS という OS は Stand Alone の 機械には重要な OS になっていくのかも知れない。

 [スイッチ-ON で実施される HardWare チェックとメモリーチェック

 電源がはいると、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 ありき

 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 のメモリーで動作する アプリケーションを捜す方が大変です。

 [ 次に AUTOEXEC.BAT あり

 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 という ファイル の中に MP などと書いて置くと MultiPlan が勝手に起動してしまいます。但し、後述の SET PATH Command で MP
<DIR> に PATH を切っているという条件付きですが・・。 こうゆうやり方でコンピューターを利用している人は結構多いです。こうい う人はアプリケーショユーザーという人たちです。 つまり MultiPlan は使えても、コンピューターは使えない人の事で す。「自分は一太郎を使ってます。」という人が、一太郎しか使えない 人だったりします。(^^; もちろん道具の利用方法はそれぞれですから、 色々な利用法があって良いのですが・・。

 コンピューター屋さんも、今小生がしていく説明が大変なので上記の設定 にしたがります。説明しても、判りっこないときめてかかっている節が ありますが、説明できないのかもしれません。機械の購入を考えている ならば、きちんと説明が出来るか確認してから購入先を決める方が無難 です。

 業務用に導入される会社利用する機械の 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 以降の導入はその設定をする様になって いるのです。システム構築者が、その有無を決定します。単純に 仕事としてコンピューターを使う事ができるという設定はそれに従う 事が簡単です。なにせ、コンピューターをまったく知らない多くの社 員の質問の嵐に身を置く事になる事を運命づけられたシステム導 入者は大変です。

[ File Manager という最も使う TOOL --- FD

 別なところでも言及していますが、 FD という有能な File Manager が存在します。これは、世界に誇る日本の FreeWare です。 個人のコンピューターで MS-DOS を利用している人で、この FD を利用していな いとすれば、よっぽど機械について勉強しようという気のない無頓着か つ怠慢な、ユーザーと言っても過言ではないでしょう。 (***)

 FD は ディスク付きのコンピューター雑誌を一冊購入すれば、そのディスクの 中に収録される代表的な FreeWare です。あらゆるコンピューター雑誌で ディスク付きのものには必ず添付されているといっても過言ではないこの 有益なプログラムは、ファイルに対してのあらゆる Command を簡単に画面 上から操作できる多岐にわたる機能を以っており、それは利用する ユーザーによって様々な意見が開発者の元へフィードバックされ、開発者はそ の要求に随時応えてきた結果です。
 この FD の作者は矢継ぎ早の対応を実施しており、すで に OR-DOS . OS/2 . テープドライブ . CD-ROM ドライブ などへの対応 がすんでいます。これほどの装置対応をもった DOS 用の File Manager は他に 存在しません。

  FD の機能を書いておきます。単純なドライブ間での複写 (COPY) 、 ドライブ間での移動 (MOVE)、これらは最新のファイルを有用に利用する Time-Stamp(作製期日) を基本にした COPY & MOVE の操作が出来ます。つ まり、同名のファイルが COPY 先にある場合は必ず上書きするかどうかを たずねてきます。作製日付をチェックしてつねに最新のファイルを保管す るのはファイル管理の基本ですが、選択的に上記を実現します。残念にも、 DOS-SHELL というファイル管理 TOOL にはこれが欠落しています。 FD の意味は FILE & DIRECTORY の頭文字を単にならべただけなのだそうです。
 しかし、この機能を同様に実現する他の SoftWare は今後も少ないでし ょう。理由は著作権を侵害するからです。有料の SoftWare が上記を実 現できない事情が著作権の侵害です。そして、この著作権を有する FD は無償で利用できる SoftWare です。(***)
 コンピューター通信網という迅速な媒体を利用して、その配布は無償 で実施されており、個人のコンピューターへ導入する場合は、 CONFIG.SYS ファイル の中に
SHELL=C:\DOS\Command.COM C:\DOS\ /P の呪文がある事を確認して使用してください。

 作者の出射氏は H16年11月に亡くなったそうです。ご冥福をお祈りします。

FD on WINDOWS  *** 著作権は当地の日本では放棄出来ません。それが日本の法律であ り、放棄しても無視されます。作製されたとたんに著作権は成立 し消去できません。USA では上記を消去するすべがあり、法規的 に認められています。USA 版の SoftWare には COPY-LEFT ( COPY RIGHT の反対 ) の語句が記載されるのはこの理由によります。

 [ CONFIG.SYS 内の装置の導入指定 --- FILES BUFFERS DEVICE=

 では CONFIG.SYS の暗号文の説明といきます。


 FILES=30

 上記は 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 の利用できる メモリー が減少します。


 BUFFERS=20

 上記は DATA を入出力する為に一時保管する場所です。 確定するまではここに DATA は保持されて、 だいたいは [RETURN] で ディスク に書いたり、 またはディスクから読込みしたりしてモニターに表示したりします。 古い日本IBM 社などのキーボードを利用している場合は、[実行] Key で やっています。
 20 の意味はこの一時保管場所を メモリー 内に 20 ケ作れという意味です。 当然 21 ケ目の DATA PACKAGE が来た場合は最初の 1 ケ目に格納されて しまいます。これは USER 側での Error はでませんが、 もし出た場合は プログラム が BUFFER の数の チェック をやっていて、 数字が少なすぎてダメだの意味です。 この場合は数字を増加させることになります。 これも FILES 同様に動作中に増加させる事は出来ません。

 DOS=HIGH,UMB

 上記は 640KB 以上の メモリー を使用するかどうかの DOS に対する警告です。 DOS はただちにこの メモリー を利用出来る様に メモリー 内部に管理用の地 域を作製します。この命令がなければ、640KB 以上の メモリー 利用は 不可になります。HIGH は 1024 以上 1088KB までを示し、 UMB は 640 〜 1024 までの メモリー を意味します。 これを有効にするには、 HIMEM.SYS と EMM386.EXE を DEVICE 指定する 必要があります。

 COUNTRY= 081,932,d:¥***¥*¥COUNTRY.SYS

 16 BIT 辞書を ACCESS 可能にした DOS/V ですが、世界中の言語を表 示できる関係で言語辞書を指定します。081 は国際電話番号で JAPAN の事です。ついでにキーボードの TYPE を指定しているはずです。 世界中のキーボードを相手にする訳で、 結構設定が複雑になっています。d: は ドライブ の意味です。 COUNTRY.SYS の居場所を示します。

 DEVICE=***** or DEVICEHIGH=****

 上記がやたらめったら並んでいるはずです。Device Driver の呼び込 みをしている訳ですが、色々な装置を利用可能にする為にプログラム を RAM へ転送し常駐させるものです。

PRINTER を使える様にする $PRN.SYS 、 3 MODE の ディスク ドライブ で NEC の 1.2MB FLOPPY を利用できる様にす る $FDD12.SYS、 HIGH UMB メモリー を操作する HIMEM.SYSEMM386.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 *******

 上記は REM = MEMO という意味です。実際には実行するなの意味にな ります。後で必要になるとか予想される場合、或は自動設定の形式を残 しておきたい場合などは、先頭の REM を入れるだけでコンピューターはこ れを無視します。


 LASTDRIVE=Z

 上記は記載がないかもしれません。しかし、Z とした場合は 26 ケの ドライブが ACCESS 可能となる様にメモリーに入出力地域を確保します。 何も指定しないと DOS は Z にしてしまうのが困ったものです。メモリー がふんだんにあるのならば結構ですが、これは E くらいにした方が メモリーを節約できます。

 SHELL=C:¥DOS¥COMMAND.COM C:¥DOS /P /E:512

安心サポート  一般的な企業で利用する PC/AT 機は MS-DOS 導入時に上記の設定になっている と思いますが、 個人で機械を使用している場合は確認が必要かもしれません。 上記は必須の Command です。SHELL 命令は アプリケーションの終了時に最初に呼び出すファイルの名前と居場所を指定します。 Command.com がなければ DOS が使えない事になります。場所が不明の 場合、「command.com がありません」のエラーが出て、システムは停止 しますから注意が必要です。Command.com はウィルスの標的です。わざ わざ DOS ディレクトリー内の Command.com を指定しているのは上記の為で す。ルートディレクトリーにもあるのですが、念が入っています。

[ CONFIG.SYS 内の 640KB 以上の RAM を利用可能にする メモリードライバー

 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) 以 上のメモリーが必要なプログラムは個人の利用するコンピューターでは利用 できませんでした。

 [ UMB という メモリー 領域 ( U)PPER (M)EMORY (B)LOCK

 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 が 別途販売されています。

 [ EMS という メモリー 領域 ( E)XPANDED (M)EMORY (S)PECIFICATION

 上記の混乱の様式のなかで、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 上で動作する様に出来れ ば良い訳ですが、それには最初からプログラムを書き直すという対価を を伴う選択となり、ほとんど無理だったと判断します。

 [ XMS という メモリー 領域 E( X)PANDED (M)EMORY (S)PECIFICATION

 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


 [ AUTOEXEC.BAT 内の環境の指定 --- SET PATH= Command の驚異

 この自動実行ファイルはすでに書いた単一のアプリケーションで機械を利 用する場合は重宝なものですが、色々の目的に利用するとなると、 プログラムの自動実行はかえって邪魔になります。中身は Text File で すから当然見れます。

 C:¥>TYPE AUTOEXEC.BAT [RETURN]

とやれば直ちに内容が表示されます。
 ではなぜこんなファイルがあるのでしょうか。この理由は使用環境の設 定という事の為にあります。ほとんどが SET ***=*** という Command で定義されるようになっており、一旦 SET Command が実行されると機 械は変更する Command がない限り、その定義を電源 OFF まで覚えてい てくれます。一番大事なのが SET PATH=*** という Command です。
 一般的な機械は最初の DOS の導入の時点のままの設定になっている為、 SET PATH=C:¥Windows;C:¥DOS であると思います。

 C:¥>PATH [RETURN] と打ち込んでください。

 多分そうでしょう。たとえば 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 は動くようになります。

 C:¥>SET PATH=%PATH%;C:¥MP [RETURN]

 上記はすでに設定した 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: 以下の数字を変更して下さい。
 しかし、これによって同じ プログラム が色々の指定で動作する様にな ります。うまく出来ているものです。(^_^)

 [ しかして prompt の話

 こうしてメモリーに必要な 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..めくる。


Tweet Twitterボタン