文書番号: 402274
最終更新日: 1997/11/02
この資料は以下の製品について記述したものです。
- Microsoft(R) MS-DOS(R) 6.2/V Upgrade Operating System (以下 MS-DOS 6.2/V)
この記事は、以前は次の ID で公開されていました: JP402274
概要
この資料は、A20 ラインのスイッチと HMA について解説したものです。
メモリと CPU
一般に、パソコンに搭載されているメモリは、以下のように区別されます。
|
| ←拡張メモリ
|
(1088KB)
| ←HMA(High Memory Area)
1024KB
|
| ←UMB(Upper Memory Bloc)
640KB
|
| ←メインメモリ (基本メモリ)
0KB
640KB 以下のメモリ領域は、メインメモリ (基本メモリ) と呼ばれ、640 ~ 1024KB(1MB) までは、UMB (Upper Memory Bloc) と呼ばれます。また、1MB 以上のメモリ領域は拡張メモリとされ、さらにその領域の最初の 64KB は特に HMA (High Memory Area)と呼ばれます。
また、CPU の種類により、アクセスできるメモリ領域は異なります。
8086 の CPU では、20 ビット のアドレスラインしか持たないため、1MB 以上の拡張メモリにアクセスすることはできません。
80286 の CPU では、24 ビット のアドレスラインを持っているため
2 の 24 乗 = 16777216 byte = 16MB
までの拡張メモリにアクセスできます。
80386、及び 80486 の CPU では、アドレスラインが 32 ビット であるため
2 の 32 乗 = 4294967296byte = 4GB
の拡張メモリにアクセスできます。
A20 ライン
前述の通り、80286 以上の CPU では、各々拡張メモリにアクセスすることができますが、その中でも、 HMA 領域を利用できるようにすることを "A20 ラインを有効にする" といいます。
この A20 ラインを有効にし MS-DOS から利用できるようにするためには、拡張メモリマネージャ HIMEM.SYS が必要です。HIMEM.SYS を組み込むことにより、A20 ラインは有効になり、MS-DOS から、拡張メモリ、及び HMA へのアクセスが可能になります。
したがって、640KB (基本メモリ) プラス HMA が提供する 64KB を、MS-DOS 基本メモリ領域として使用できるようになります。
HIMEM.SYS
HIMEM.SYS は、1MB 以上の拡張メモリを管理すると共に、HMA へのアクセスを可能にします。また、CONFIG.SYS 内に
DOS=HIGH
という記述を追加することにより、MS-DOS の一部を HMA にロードさせることができ、メインメモリの空き容量を増やすことが可能です。ただし、どの CPU、どの MS-DOS であっても HMA を同時に利用できるプログラムは、必ず 1 つ である必要があります。したがって、MS-DOS が HMA 内で動作しているときには他のプログラムが、HMA を利用しないように設定する必要があります。
MS-DOS/V での設定
MS-DOS/V を使用されている場合、HMA ご利用に際して以下の点にご注意下さい。
- HIMEM.SYS は通常、使用されるコンピュータのタイプを自動的に検出しますが、中には正しく検出を行えないコンピュータもあります。その場合には、HIMEM.SYS 組み込み時オプションスイッチとして /MACHINE:<xxx> を指定します。
<例>
HIMEM.SYS /MACHINE:<xxx>
- 古い MS-DOS アプリケーションの中には、HIMEM.SYS が提供する XMS 領域ではなく INT15H を使用し、拡張メモリを使用しているものがあります。このようなアプリケーションを使用する場合には、オプションスイッチとして/INT15=<xxxx> を指定する 必要があります。
<例>
HIMEM.SYS /INT15=<xxxx>
-
"Unable to Control A20 Line" というエラーが発生する場合があります。この原因としましては、以下の 2 つのことが考えられます。
- サードパーティ製の CPU アクセラレータボードを使用されている際に発生する場合は、そのボードの仕様による場合が大変多くなっています。詳細につきましては、メーカー様へお問合せ下さい。
- HIMEM.SYS が A20 ハンドラの認識を誤っていることが考えられます。1. の解説をご参照の上、問題が回避されるかご確認下さい。
なお、HIMEM.SYS のオプションスイッチの詳細につきましては、MS-DOS のオンラインヘルプをご参照下さい。
Keywords: A20 ADDRESS DOS6V ERROR KBINFO KBREF LINE MEMORY OPTION SWITCH KB402274
Technology: kbMSDOS620 kbMSDOSSearch