メルコ"BM-1000"バンクRAMと"EMJ-4000L"EMSボード [PC98]
メルコ(現:バッファロー)のPC98用バンクRAMボード「BMシリーズ」について。
○DOSにおける拡張メモリについて
MS-DOSが直接管理できるメモリはPC98のノーマルモードで最大640KB、ハイレゾモードで最大768KBで、この部分をコンベンショナルメモリと呼んでいます。これは32ビットOSにおける4GBの壁と同様で、MS-DOSというシステムである以上どうにもならない壁です。でも時が経つにつれ大容量メモリに対する需要が大きくなってくると、何としてもより多くのメモリを使えるようにしようと、RAMDISK、XMS、EMS、HMA、UMBといったメモリの拡張方法が登場しました。
メモリ拡張方式 | CPU管理下の配置アドレス | 実際の記憶場所 | 主な用途 | 利用条件 |
バンクメモリ | 80000h-9FFFFh | バンクRAMボード | RAMDISK、ディスクキャッシュ | バンクRAMボード |
RAMDISK | なし | プロテクトメモリまたはEMS | RAMDISK | EMSまたはCPUが80286以上かつプロテクトメモリ |
ハードウェアEMS | 任意の領域(ページフレーム) | EMSボード | プログラムの作業用メモリ | EMSボード |
ソフトウェアEMS | 任意の領域(ページフレーム) | プロテクトメモリ(XMS) | プログラムの作業用メモリ | CPUが80286以上かつプロテクトメモリ |
仮想8086EMS | 任意の領域(ページフレーム) | プロテクトメモリ(XMS) | プログラムの作業用メモリ | CPUが80386以上かつXMS |
XMS | 100000h- | プロテクトメモリ | プログラムの作業用メモリ | CPUが80286以上かつプロテクトメモリ |
HMA | 100000h-10FFEFh | プロテクトメモリ | DOSのシステムの一部の常駐領域 | XMSかつDOSバージョン5.0以降 |
UMB | A0000h-FFFFFhの空き領域 | XMS | デバイスドライバやプログラムの常駐領域 | CPUが80386以上かつ仮想8086方式EMS |
これらが登場する前に、日本においてはIOデータ方式の拡張RAMボード、通称バンクメモリというものが1984年に登場し、そこそこ普及しました。これはメモリ空間の512KB〜640KB(80000h-9FFFFh)部分にメモリボードのRAMにアクセスするためののぞき窓(ページフレーム)を設けて実質利用できるメモリを増やすというものでした。プログラムから利用するための仕組みが不十分だったため、主にRAMDISKやディスクキャッシュにしか使われませんでしたが、1988年にEM-2000やPC-9801-53などのEMSボードが登場するまでの間、8086/V30搭載モデルでメモリを拡張する手段として利用されました。バンクRAMではコンベンショナルメモリが128KB減少してしまうため(例外あり)、EMSメモリが登場するとバンクRAMは過去のものとなりました。ただしメルコのメモリ管理ソフト「MELWARE」では、バンクメモリや他社のEMSメモリを共用でき、しかもそれぞれをまとめてEMSメモリやディスクキャッシュに自由に割り当てることができました。
○バンクRAM BM-1000/1500/2000のディップスイッチの設定
メインメモリが640KB未満の機種ではこのメモリボードの一部をメインメモリとして割り当てることができます。
配置開始位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
128KB | ON | ON | ON | ON | ON | OFF | OFF | OFF |
256KB | ON | ON | ON | ON | ON | ON | OFF | OFF |
384KB | ON | ON | ON | ON | ON | OFF | ON | OFF |
512KB | ON | ON | ON | ON | ON | OFF | OFF | ON |
640KB | ON | ON | ON | ON | ON | ON | ON | OFF |
メインメモリが640KBの場合は512KBに配置します(ON-ON-ON-ON-ON-OFF-OFF-ON)。2枚目以降については他のバンクRAMボードと重複しないように割り当てアドレスをずらす必要があります。重複さえしなければどこに設定しても問題なかったと思います。
配置開始位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
640KB+896KB | OFF | ON | ON | ON | ON | OFF | OFF | ON |
640KB+1920KB | ON | OFF | ON | ON | ON | OFF | OFF | ON |
640KB+2944KB | OFF | OFF | ON | ON | ON | OFF | OFF | ON |
640KB+3968KB | ON | ON | OFF | ON | ON | OFF | OFF | ON |
後にBM-4000が発売されたようですが、詳細は不明。
なお、プロテクトメモリ(EDA、EFAシリーズなど)やEMSメモリボード(EM、EMZ、EMJ、EMAシリーズなど)を同時に使用することもできます。下はメルコ(Buffalo) EMJ-4000Lの写真。定価59,800円。
EMSボードの設定方法については各ボード付属のマニュアルを参照して下さい。EMJシリーズについてはMELWARE上でロータリースイッチの設定を確認できます。
○バンクメモリとMELWAREを導入
MS-DOSでバンクRAMボードを使うには、それぞれの製品のメーカーが用意したメモリ管理ソフト(デバイスドライバー)を組み込む必要があります。PC98版MS-DOSに標準で付属するEMSDRIVE.SYSやEMM.SYSはNEC純正EMSボード専用で、IO DATAやBuffaloのEMSボードをハードウェアEMSとして使う場合も専用のメモリ管理ソフトが必要になります。(プロテクトメモリとして使う場合は必須ではない。)、
メモリ管理ソフトはIO-DATA製メモリボードの場合はIOS、メルコ製メモリボードの場合はMELWAREがあります。これらについてはいくつか更新版が登場しており、複数のバージョンが存在します。ソフト単体は有償で、当然ながら現在は配布されていません。
ここではMELWARE Ver.4.7について扱います。
1. メモリボードの各種スイッチを設定します。
2. メモリボードを本体背部の拡張スロットに実装します。
ただしPC-9801VXの場合は#1のスロットに実装してはいけません。
3. メインメモリを640KB以上搭載している場合は、本体ディップスイッチのSW3-6をON(CLOSE)にします。
これによってメモリ空間512KB〜640KBが内部RAMから切り離され、バンクメモリのウィンドウとして使えるようになります。コンベンショナルメモリは512KBに制限されます。メインメモリが512KB未満の場合はあらかじめメインメモリを512KBまで増設する必要があります。EMSメモリのみを使用する場合はこの作業は不要です。
ただし本体機種とMELWAREのバージョンの両方が対応していれば、ディップスイッチの設定を変えずにバンクメモリを利用できる場合があります。(PC-9801RA以降の機種ではソフトウェアから本体内蔵メモリと拡張スロットのメモリ空間を切り替えることができるため、MELWARE Ver.4以降ではディップスイッチの設定は不要です。)
4. PCの電源を入れてMS-DOSを起動します。
5. SWITCHコマンドを使ってメモリスイッチの設定画面を呼び出してメインメモリを640KBに設定し、本体ディップスイッチのSW2-5をONにしてからシステムをリセットします。
ただし既にメインメモリを640KB以上搭載する機種で、手順3で内部RAMを切り離していない場合はこの操作は不要です。
6. MELWAREのフロッピーディスクをドライブにセットします。
7. MS-DOSのコマンドラインで「B:\MELWARE」(ディスクをBドライブにセットした場合)を実行します。
8. メニュー画面が表示されるので「自動設定」を選択しリターンキーを押します。
9. 本体に搭載・認識されている各種増設メモリの容量が表示されます。
下の「対象ドライブ」に表示されているドライブのDOSにドライバを組み込む場合は「Y」、他のドライブのDOSに組み込む場合は「N」キーを押します。
10. RAMDISK、ディスクキャッシュ、EMSメモリの割り当て容量を決めます。
設定を決めるとCONFIG.SYSに対する設定が自動で行われます。
CONFIG.SYSに追加された記述。
DEVICE = MELDISK.SYS 3456 /S
DEVICE = MELCACH1.SYS 1024
MS-DOS起動時のMELWAREドライバのメッセージ
NEC PC-9800 Series Personal Computer マイクロソフト MS-DOS バージョン 3.30C Copyright (C) 1981,1990 Microsoft Corp. / NEC Corporation 汎用EMSドライバ Ver 4.71 1991 Copyright(C) MELCO Inc.Japan ページフレームアドレス= C000 C400 C800 CC00 EMS ページ数 = 0100H (04096KB) RAMディスクドライバー 《MEK_DISK》を組み込みました。 [Ver 4.71] Copyright 1991 MELCO.Inc Japan RAMディスクを初期化しましたのでファイルはありません。 データチェックにサムチェックを行います。 1クラスタ容量1024バイトでルートのファイル数は128個です。 ドライブ番号は[D:]に割り当てられ[3456KB]を使用します。 キャッシュドライバー 《MEL_CACHE》を組み込みました。 [Ver 4.71] Copyright 1991 MELCO.Inc Japan 全てのドライブがキャッシング対象になります。 [1024KB]を確保しました。 AIかな漢字変換が使用可能です 辞書は、カレントドライブの NECAI .SYS です Command バージョン 3.30C