メモリについて
以下の事は正確では有りません
少しだけ EMM386.EXE について見てきましたが EMM386.EXE というのは
Expanded Memory (EMS) を 使う時にだけ 必要ということでは無いということで
何方かというと UMB (upper memory block)という ものに アクセスをする事が
出来るようにするために必要なもののようです、そこで オプションとして
"RAM" とか "NOEMS"いうオプションで持って 導入するようです。
"RAM" の場合は Expanded Memory (EMS) を 使用する また追加オプションも有
るようです。
"NOEMS"の場合は Expanded Memory (EMS)は 使用しない
ということのようです。まあこの領域は 通常のプログラムでの使用はあまりしないようです。つまり ユーザーの プ
ログラムというより 特殊なものを ここに 置くようにするために使用する様で
す。EMM386.EXE は CONFIG.SYS というDOS のもので 導入し (FreeDOS では
fdconfig.sys) またその特殊なものは 同じく DOS でいう所の CONFIG.SYS と
いうもので
"DEVICEHIGH=" こちらのもので 使う
"DEVICE=" こちらではない
UMA に 導入するようです 注意しておかないと いけない事は "DEVICEHIGH=" と
いっても あくまで upper memory area に 持ってくるのであって high memory
area に 持ってくるのでは 無い ということです。AUTOEXEC.BAT というものの
場合は
"LOADHIGH" とか "LH" というもので 導入するようです。
UMBs (upper memory blocks)というのは 当然 ROM と RAM の 混在している 領域のようです そこで 明白に 使用する場合は 一例として "I=B000-B7FF" という パラメー タを EMM386.EXE に 与えるようです。当然此処は駄目よ ということであれば 同じく一例ですが "X=D800-D9FF"の様にオプションで与える事が出来るようです。
DOS で 本当に Expanded Memory (EMS) を 使わないといけない場合を除いて "NOEMS"というのを使用した方が メモリーの効率は良いようです。非常になやま しい所ですが 一般論はそのようです。でもこれが FreeDOS ではお薦めというこ との様です。
まあこんなもののようですが この混在した場所に RAM を 設けた場合に ROM の ある場所に RAM を 置くことになる場合 二重投資の様に考えられるが ROM の 領域を RAM に コピーして 速度を 改善するようなものも 有るようです。 まあ詳しくは わかりませんが 色々なテクニックがあるようです。
にゃんたろう 拝!
2008年 3月20日 (木) 21:42:12 JST