メルコ"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メモリやディスクキャッシュに自由に割り当てることができました。
MELCO(Buffalo) EM-2000

○バンク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円。
BUFFALO EMJ-4000L

EMSボードの設定方法については各ボード付属のマニュアルを参照して下さい。EMJシリーズについてはMELWARE上でロータリースイッチの設定を確認できます。
MELWARE EMJ/EML/EMPスイッチ設定

○バンクメモリと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のスロットに実装してはいけません。
Cバス 拡張スロット
PC-9801RX 内部

3. メインメモリを640KB以上搭載している場合は、本体ディップスイッチのSW3-6をON(CLOSE)にします。
これによってメモリ空間512KB〜640KBが内部RAMから切り離され、バンクメモリのウィンドウとして使えるようになります。コンベンショナルメモリは512KBに制限されます。メインメモリが512KB未満の場合はあらかじめメインメモリを512KBまで増設する必要があります。EMSメモリのみを使用する場合はこの作業は不要です。
ただし本体機種とMELWAREのバージョンの両方が対応していれば、ディップスイッチの設定を変えずにバンクメモリを利用できる場合があります。(PC-9801RA以降の機種ではソフトウェアから本体内蔵メモリと拡張スロットのメモリ空間を切り替えることができるため、MELWARE Ver.4以降ではディップスイッチの設定は不要です。)
NEC PC98 Dip switch 3-6

4. PCの電源を入れてMS-DOSを起動します。

5. SWITCHコマンドを使ってメモリスイッチの設定画面を呼び出してメインメモリを640KBに設定し、本体ディップスイッチのSW2-5をONにしてからシステムをリセットします。
ただし既にメインメモリを640KB以上搭載する機種で、手順3で内部RAMを切り離していない場合はこの操作は不要です。

NEC PC98 Dip switch 2-5

6. MELWAREのフロッピーディスクをドライブにセットします。

7. MS-DOSのコマンドラインで「B:\MELWARE」(ディスクをBドライブにセットした場合)を実行します。

8. メニュー画面が表示されるので「自動設定」を選択しリターンキーを押します。

9. 本体に搭載・認識されている各種増設メモリの容量が表示されます。
下の「対象ドライブ」に表示されているドライブのDOSにドライバを組み込む場合は「Y」、他のドライブのDOSに組み込む場合は「N」キーを押します。
MELWARE 自動設定

10. RAMDISK、ディスクキャッシュ、EMSメモリの割り当て容量を決めます。
MELWARE マニュアル設定

設定を決めるとCONFIG.SYSに対する設定が自動で行われます。

CONFIG.SYSに追加された記述。

DEVICE = MELEMM.SYS /F1
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


QLOOK ANALYTICS