本ページは公開が終了したページの複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

DOS:A20 アドレスラインについて

文書番号: 402274

最終更新日: 1997/11/02


この資料は以下の製品について記述したものです。


この記事は、以前は次の 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 ご利用に際して以下の点にご注意下さい。
  1. HIMEM.SYS は通常、使用されるコンピュータのタイプを自動的に検出しますが、中には正しく検出を行えないコンピュータもあります。その場合には、HIMEM.SYS 組み込み時オプションスイッチとして /MACHINE:<xxx> を指定します。
          <例>
           HIMEM.SYS /MACHINE:<xxx>
    
  2. 古い MS-DOS アプリケーションの中には、HIMEM.SYS が提供する XMS 領域ではなく INT15H を使用し、拡張メモリを使用しているものがあります。このようなアプリケーションを使用する場合には、オプションスイッチとして/INT15=<xxxx> を指定する 必要があります。
          <例>
           HIMEM.SYS /INT15=<xxxx>
    
  3. "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

inserted by FC2 system