貴方は番目の訪問者です。
(自2007年 7月)
NEC PC-9801のお部屋20世紀もあと数日で過ぎ去ろうとしていた頃のことである。。。
ゴミ収集所から、PC-9801DXという化石的機械を拾ってきた。
この機械はCPUに80286を搭載した機械で、1990年頃に発売されていた製品のようである
家に持ち帰るなり筐体の蓋を開けてみたら、CPUのソケットにはABM社製486GT-Rとかいう下駄を履かせてあった。さらに電源を投入してみたらなんとメモリカウントは10MB也!当時としてはかなり贅沢な仕様となっている。
しかし、なにせヌードマシーンなので、ROM-BASICしか動かないのであった。
とりあえず、家にあるハードディスクを繋げてMS-DOSをインストールしてみることにした。
たまたまあったNEC版MS-DOS Ver6.2 をインストールしようとしたけど、インストーラが「CPUが286なのでインストール出来ません」などとぬかしてインストール出来ないじゃん。
しかたがないから、EXPANDコマンドでFORMATコマンドなどハードディスクを初期化するために必要なコマンドを、フロッピーディスクに解凍することにした。
ドライブ1にマスターディスク、ドライブ2にフォーマットしてあるフロッピーディスクを挿入してあるとすると・・・
EXPAND A:\FORMAT.EX_ B:\FORMAT.EXE ディスク初期化コマンド
EXPAND A:\HDUTL.EX_ B:\HDUTL.EXE ディスク初期化コマンドから呼び出されるコマンド
EXPAND A:\HDFORMAT.EX_ B:\HDFORMAT.EXE ディスク初期化コマンドから呼び出されるコマンド
EXPAND A:\SYS.CO_ B:\SYS.COM システム転送コマンド
EXPAND A:\SEDIT.EX_ B:\SEDIT.EXE スクリーンエディタ
っと、いったぐあいに使いたいコマンドを解凍していく。
後から知ったのだが、VectorからNISE386というのを拾ってきて使うと、MS-DOS Ver6.2標準のインストーラが動いてくれるようになるじゃん。
MS-DOS Ver6.2 のフロッピーディスクを起動しているときに気がついたのだが、CONFIG.SYSに記述してあるHIMEM.SYSとEMM386.EXEがエラーメッセージを吐き出して常駐してくれない。これではせっかくの10メガバイトのメモリが有効に使え無いじゃん。
検索エンジンLYCOS JAPANのオンラインソフトウェアでXMSをキーワードにして検索したら、VEM486というフリーソフトのメモリマネージャを発見。ベクタに登録されていることが判明する。
さっそくダウンロードして試しに使ってみると、VEM486は動いてくれた。ラッキ!
気が利くことに、下駄に付いているCX486SLCのキャッシュもイネーブルしてくれる(オプションを設定することによる)じゃん。
VEM486がうごきだしたらMS-DOS付属のDPMI.EXEも使えるようになったみたいじゃん。
これで、DOS版のMuleやDJ版GCCなどの強力なツールが動く見込みが出てきた。
う〜ん。よかったじゃん(^-^)v
とりあえず CONFIG.SYSは・・・
FILES=30
BUFFERS=16
SHELL=\COMMAND.COM /E:4096 /P
DEVICE=A:\SYS\VEM486.EXE /U /C+ /IB
DEVICEHIGH=A:\SYS\VEMEMM.SYS
DEVICEHIGH=A:\DOS\DPMI.EXE
DEVICEHIGH=A:\DOS\RSDRV.SYS
DEVICEHIGH=A:\DOS\SETVER.EXE
DEVICEHIGH=A:\DOS\KKCFUNC.SYS
DEVICEHIGH=A:\DOS\NECAIK1.DRV /C=9 /K /W /P=4
DEVICEHIGH=A:\DOS\NECAIK2.DRV A:\NECAI.SYS
LASTDRIVE=Z
BREAK=OFF
DOS=UMB,HIGH
ということにして、以下はMEM /Dの出力だよ〜ん。
コンベンショナルメモリの詳細:
セグメント 合計 名前 種類
------- ---------------- ----------- --------
00000 1,039 (1K) 割り込みベクタ
00040 527 (1K) ROM コミュニケーション エリア
00060 15,712 (15K) IO システムデータ
CON システムデバイスドライバ
PRN システムデバイスドライバ
AUX システムデバイスドライバ
CLOCK システムデバイスドライバ
A: - C: システムデバイスドライバ
00436 5,312 (5K) MSDOS システムデータ
00582 32,368 (32K) IO システムデータ
4,192 (4K) $$DPMI デバイスドライバ=DPMI
7,040 (7K) MS$KANJI デバイスドライバ=NECAIK1
272 (0K) $AID#NEC デバイスドライバ=NECAIK2
1,488 (1K) FILES=30
256 (0K) FCBS=4
16,704 (16K) BUFFERS=16
2,288 (2K) LASTDRIVE=Z
00D69 2,944 (3K) COMMAND プログラム
00E21 80 (0K) MSDOS -- 空き --
00E26 4,112 (4K) COMMAND 環境
00F27 416 (0K) MEM 環境
00F41 88,896 (87K) MEM プログラム
024F5 503,968 (492K) MSDOS -- 空き --
アッパーメモリの詳細:
セグメント 領域 合計 名前 種類
------- ------ ---------------- ----------- --------
0A501 1 416 (0K) MSDOS -- 空き --
0A51B 1 11,824 (12K) MSDOS -- 空き --
0D001 2 6,880 (7K) IO システムデータ
2,416 (2K) AUX デバイスドライバ=RSDRV
224 (0K) SETVERXX デバイスドライバ=SETVER
4,176 (4K) KKCFUNC$ デバイスドライバ=KKCFUNC
0D1AF 2 42,224 (41K) MSDOS -- 空き --
0DE01 3 4,112 (4K) dpmi プログラム
0DF02 3 4,032 (4K) MSDOS -- 空き --
0E801 4 144 (0K) IO システムデータ
112 (0K) EMMXXXX0 デバイスドライバ=VEMEMM
0E80A 4 6,336 (6K) DOSKEY プログラム
0E996 4 42,656 (42K) MSDOS -- 空き --
メモリの概略:
メモリの種類 合計 = 使用中 + 空き
---------------- ---------- ---------- ----------
コンベンショナル 655,344 62,400 592,944
アッパー メモリ 118,688 17,536 101,152
予約済み 0 0 0
XMS メモリ 10,367,072 651,360 9,715,712
---------------- ---------- ---------- ----------
全メモリ 11,141,104 731,296 10,409,808
全 1MB 以下メモリ 774,032 79,936 694,096
ハンドル EMS 名 サイズ
------- -------- ------
0 000000
1 XMS+VCPI 048000
2 010000
3 010000
4 FD_HIST$ 004000
全 EMS メモリ 10,158,080 (9,920K)
空き EMS メモリ 9,715,712 (9,488K)
最大実行可能プログラムサイズ 592,848 (579K)
最大空きアッパーメモリブロック 42,656 (42K)
MS-DOS はハイメモリ領域に常駐しています.
XMS Version 3.00; ドライバ Version 2.7A
EMS Version 4.00
このメモリマネージャは、メモリマネージャの本体がHIMEMに常駐するので、コンベンショナルメモリの消費が少ないのが特長。
GO32-V2も走る。DJGCCもいちようOKのようだ
インターネット・ニュース・グループで聞いたら「Melco製のメモリマネージャを使ってみたらいいかもしれない」(ほそずみ@にふちぃ さん談)とのこと。
もうすでにPC-9801DX関連の情報はMelcoのWebにはないようで、検索に引っかからないじゃん。
しょうがないから、ほそずみ@にふちぃ さんにメールでHelpっと。お返事は…
ハイパーメモリCPUドライバ(PC-98用)(Windows3.1/95対応)のドライバ(対象製品:HDA-20Q, EUA-T/TP, EUB-Q/H, EUD-Q/H, EUF-H, EUZ-Q )を試してください。
とのことなので、ダウンロードしてみる。
CONFIG.SYSをこんなかんじにして…
FILES=30
BUFFERS=16
SHELL=\COMMAND.COM /E:4096 /P
DEVICE=A:\SYS\MEL\MELEMM.386 /CX /T A:\DOS\EXTDSWAP.SYS /HM /XMS 4096 /M D0,D4,D8,DC,E8,EC,F0,F8
DEVICEHIGH=A:\DOS\DPMI.EXE
DEVICEHIGH=A:\DOS\RSDRV.SYS
DEVICEHIGH=A:\DOS\SETVER.EXE
DEVICEHIGH=A:\DOS\KKCFUNC.SYS
DEVICEHIGH=A:\DOS\NECAIK1.DRV /C=9 /K /W /P=4
DEVICEHIGH=A:\DOS\NECAIK2.DRV A:\NECAI.SYS
LASTDRIVE=Z
BREAK=OFF
DOS=UMB,HIGH
というかんじにしてみる。DEVICEHIGHやLOADHIGHのためにメモリを供給する場合オプションスイッチ/Mに手動でアドレスのセグメントを指定しなくてはならないのがちょっぴり面倒。ROMとアドレスが重なってしまうと、起動できなかったりフリーズする。
でもって、MEM /Dの結果はつぎのように。
コンベンショナルメモリの詳細:
セグメント 合計 名前 種類
------- ---------------- ----------- --------
00000 1,039 (1K) 割り込みベクタ
00040 527 (1K) ROM コミュニケーション エリア
00060 15,712 (15K) IO システムデータ
CON システムデバイスドライバ
PRN システムデバイスドライバ
AUX システムデバイスドライバ
CLOCK システムデバイスドライバ
A: - C: システムデバイスドライバ
00436 5,312 (5K) MSDOS システムデータ
00582 35,504 (35K) IO システムデータ
3,056 (3K) EMMXXXX0 デバイスドライバ=MELEMM
4,192 (4K) $$DPMI デバイスドライバ=DPMI
7,104 (7K) MS$KANJI デバイスドライバ=NECAIK1
272 (0K) $AID#NEC デバイスドライバ=NECAIK2
1,488 (1K) FILES=30
256 (0K) FCBS=4
16,704 (16K) BUFFERS=16
2,288 (2K) LASTDRIVE=Z
00E2D 2,944 (3K) COMMAND プログラム
00EE5 80 (0K) MSDOS -- 空き --
00EEA 4,112 (4K) COMMAND 環境
00FEB 416 (0K) MEM 環境
01005 88,896 (87K) MEM プログラム
025B9 500,832 (489K) MSDOS -- 空き --
アッパーメモリの詳細:
セグメント 領域 合計 名前 種類
------- ------ ---------------- ----------- --------
0D001 1 6,880 (7K) IO システムデータ
2,416 (2K) AUX デバイスドライバ=RSDRV
224 (0K) SETVERXX デバイスドライバ=SETVER
4,176 (4K) KKCFUNC$ デバイスドライバ=KKCFUNC
0D1AF 1 416 (0K) MSDOS -- 空き --
0D1C9 1 41,808 (41K) MSDOS -- 空き --
0DE01 2 4,112 (4K) dpmi プログラム
0DF02 2 4,032 (4K) MSDOS -- 空き --
0E801 3 6,336 (6K) DOSKEY プログラム
0E98D 3 42,768 (42K) MSDOS -- 空き --
0F801 4 16,368 (16K) MSDOS -- 空き --
メモリの概略:
メモリの種類 合計 = 使用中 + 空き
---------------- ---------- ---------- ----------
コンベンショナル 655,344 65,536 589,808
アッパー メモリ 122,768 17,376 105,392
予約済み 0 0 0
XMS メモリ 10,362,992 6,168,688 4,194,304
---------------- ---------- ---------- ----------
全メモリ 11,141,104 6,251,600 4,889,504
全 1MB 以下メモリ 778,112 82,912 695,200
ハンドル EMS 名 サイズ
------- -------- ------
0 000000
1 EXTDSWAP 00C000
2 010000
3 010000
4 FD_HIST$ 004000
全 EMS メモリ 9,961,472 (9,728K)
空き EMS メモリ 9,601,024 (9,376K)
最大実行可能プログラムサイズ 589,712 (576K)
最大空きアッパーメモリブロック 42,768 (42K)
MS-DOS はハイメモリ領域に常駐しています.
XMS Version 3.00; ドライバ Version 3.07
EMS Version 4.00
メルコ製のメモリマネージャだとDOSSHELLのタスクスワップもつかえるようになる。
このタスクスワップは、GO32には供給されないので、私的には必要ないってか。
GO32-V2.EXEも走るじゃん。これでDJGCCなどの大規模アプリも動かせる見こみがあるかな
PC-9801は、まだ通信環境が準備できていないのでGW2000のAT互換機で、ダウンロードしたフリーソフトなどをフロッピーディスクにコピーしてスニーカーネットワークならぬ裸足ネットワークをしている状態なのである。
しかし、ここで困った事がおきた。PC-9801でフォーマットしたフロッピーディスクをAT互換機のWINDOWS98上でコピーすると、フロッピーディスクIPL部がWINDOWSによって改竄されてしまいPC-9801で其のフロッピーディスクから起動できなくなってしまう。
とほほ。
著作権 大槻昌弥 © 2001年
無断転載厳禁。