トップ «前の日記(2014年07月03日) 最新 次の日記(2014年08月07日)» 編集

xiphioの備忘録


2014年07月14日

_ [computer] PC98のエミュレータ

実は未だにPC98を使っています。以前はPC98のMS−DOS上で、データベースのInformixで盛んにプログラムを書いていました。今は名前を見ることも殆ど無くなってしまったデータベースInformixも、昔はオラクルの次くらいに有名で、アスキーが日本語インフォミックス3.3としてPC98のMSDOS用にも出していました。搭載アプリのPerformerと言うのがなかなか使い良かったし、細かい所はC(MS-C Compiler)でプログラムを書いてリンクさせる事も出来るし、また提供されたデータベース操作のライブラリをくっつけて、アプリを全部Cで書く事も可能と言う、私などにとってはとても「使える」データベースソフトでした。

その昔、一番最初に使ったRDBは、R:BASE5000とかいう(名前はあやふや)データベースで、これは結構使いづらかったのです。その次に買ったインフォミックスは、上述の通り気に入らない所はCでプログラムを書いて改善出来るので、やろうと思えば何でも出来るので、大変気に入りました。例えば、操作上いちいち手で入力しなければいけない所を、プログラムからキーボード入力のリングバッファを直接操作して改善してしまう、とかです。

あまりに凝って、自分の好みの通りに便利に作ったので、簡単にWindows環境に移行できなかった訳です(PC98のハードを直接叩いていますので)。ただDOSなので、常にメモリ不足に悩まされていまして、一応当時出ていたOS/2用のInformixとか、その後のWindows上のInfoemix-SQLとかへの、移行も考えましたし、他のRDBではボーランドのParadoxとか、オラクルなどは実際に結構な値段で買い、その都度移行を何度も試みたのですが、結局全て途中で挫折しました。(思えば、RDBソフト、結構色々買いましたが、殆ど使えませんでした)

余談ですが、昔OS/2用のインフォミックスが出た事を雑誌で知り、そこの問い合わせの電話番号に、値段とか何処で買えるのかとか、問い合わせしたことがありました。電話に出た若い女性と思われる人の対応は、凡そ商品の問い合わせに対する会社の対応とは思えない横柄なもので、最初から「何で個人が電話かけてくるのか」という態度あらわで、「取り扱いの業者に聞け」と言うだけで、全く相手にされませんでした。「こんな会社潰れるぞ!」と思ったのですが、その通りIBMに吸収され会社は無くなりましたね(RDBのInformixはIBMで存続)。

オラクルは本やその他の周辺ソフトまでも買い、移行を試みましたがなかなか進みませんでした。その内。新しいバージョンが出た折り、バージョンアップの問い合わせをしましたら(オラクルは対応は普通に良かったです)、保守契約がないと新たに買うのとあまり変わらないくらい高価で、このソフトはある程度の規模の企業向けで、個人単位で使うには似つかわしくないアプリで有ることを知り、諦めました。

パラドックスは結構真剣に移行を考えて、試しに幾つか書いてみたのですが、結局DOS上のインフォミックスから移ることが出来ませんでした。そんなこんなしているうちに、プログラムを書く気力も次第に無くなり、随分前から新しい環境への移行はすっぱり諦めてしまいました。

そこで、もう新たなハードが無いPC98です。ずっと使っていたのはPC-9821ASで、CPUをDX4にしてありますので、DOSで使う分には処理速度にあまり不満はありません。SCSIのRAID外部ストレージをオークションで買い、こちらで処理するととても快適になりました。このASも、時折内蔵タイマーがリセットされる様になり、そろそろ怪しかったので、当時オークションで状態の良さそうな98を幾つか買ってみました。ダメなのも有りましたが、とても状態の良いPC-9821APが有りましたので、そのAPに移り今まで使っていますが、2年ほど前からやはり内蔵タイマーが保持できなくなります。

この症状については項目を別にして下に纏めておきました。しかしどうやっても、古い機械はその内動かなくなる物です。他に数台代替えの98を所有していますが、根本的な解決はやはりエミュレーターでしょう。現在使っているWindowsとかの上でPC98のエミュレータが走れば、もはや今後ともハードの劣化に悩まされることは無くなるはずです。

それに98にはもう一つ、ディスプレイに問題がありまして、水平同期が24k対応でないと表示できないのです。最近の機器は30k以上が普通なので、アナログ端子に繋いでも表示できません。ちょっと規格外でも実は映ったりしないかなぁ、、と色々試してみましたが、全部ダメでした。しかし、もし映ったとしても、30インチモニタにフルスクリーンではちょっと違和感有るでしょうね。常に大きくて安いモニタを選んでいますので、表示領域とかの調整機能がついているモニタは高価で選択肢に入りません。そう言う訳で、現在でも昔のナナオのモニタを98専用として一つ置いておかなければならないのです(ついでにキーボードも)。他のパソコンのモニタやキーボードと共用できたら非常に有難いです。画像の説明

結構な需要が有ると思われるPC98エミュレータですが、実際に何種類か有ります。主に98時代のエロケーをプレイする為みたいですが、ゲームが動くくらいなら、色々ハードを直接操作していても問題無く動くと思われます。それで、1、2年前に代表的な98エミュの3種類、Anex86、T98-Next、NP2を試した事がありました。実機が隣で動いていますので、DOSのFDイメージを作り、ROMをコピーしてやってみましたが、何故か、Anex86とT98-Nextではリスタートを繰り返すばかりで動きませんでした。結構色々試したのですが上手くゆかず、NP2でやっと起動画面を見て、此処で一端中断していました。

それを今頃になって、再度挑戦です。使用中の9821APの内蔵タイマーが動き出すのにだんだん時間がかかる様になった事が、その理由一つでもあります。数年前と、98エミュの状況は全く変わっていません。もう一度色々試してみましたがやはりNP2しか動かないので、こちらで環境を整えようとしましたが、NP2は386では無く286のエミュなので、使用中のconfig.sysの中のメモリーマネージャが動きません。当時はサードパーティのメモリマネージャを使用し、複雑な設定をして、狭いメモリ空間の中で出来るだけ快適な環境を組み上げていたのですが、その知識も全て過去の物。代わりに何をどうやったら良いのか、既に全く分かりません。

「どうだったかなぁ、忘れたなぁ、DOS6にしてデフォルトで何とかなんないかなぁ、」、と思った折りに、「AnexやT98もDOS6で試してみたら?」と、思いつきました。私は裏コマンドで、スイッチキャラクタを'/'から'-'に変えられると言う理由で(こうすると、パスキャラクタとして'/'が使える様になる)、すっとDOS3.3Dを使っています。DOS6では、この裏コマンドは無くなっています。

すぐDOS6.2のFDを探し試してみると、無事AnexでもT98でもキチンと動きます。Anexはエプソンプロテクトの為かも知れませんが、T98でDOS3が使えないとは思いませんでした。それで順番にDOS6にて各98エミュを試してみた所、ウィンドウの大きさを可変出来るAnexも捨てがたいですが、T98-Nextが一番正確な様です。T98の最大ウィンドウの設定は1280x800なのですが、使用中のWQXGAですとこれでも少し小さい感じですし、今後4kモニタとかになると、もっと小さく感じるでしょう。T98でも、ウィンドウの大きさを可変出来たらとても良かったのですが、、

DOS3起動から、DOS6に変えて環境を整えてみましたが、ATOKもOKですし、EMSを使ったり、ハードを直接参照したりするプログラムでもちゃんと動きました。ゲームが動くくらいですから、当たり前かも知れません。ハードディスクは仮想ディスクですが、実機は他にプリンタとネットワークが繋がっています。プリンタはちょっと工夫すれば何とかなるみたいですが、ネットワークの再現は現時点で無理でしょう。LANはデータ転送に使っていますから、ここは一手間かける感じでWindows上から操作する事になりますね。

T98の旧版"next_rb131"はWin7で動かないとか有りましたが、Windows8.1(64bit)で問題なく動いています。逆に最新版"Next20100525"が、ソフトは立ち上がっているみたいだけどウィンドウが現れない、と言う状況でした。旧版でも不都合ないのでそのまま使っていますが、上述の最新版の不都合は初期設定が問題かも、と思い、試しに一旦MAIN.INIを削除してから起動させると、キチンと立ち上がることを確認しました。仮想ディスクのファイルをNAS上に置いておけば、何処のパソコンからでも98のエミュレータが使えることになります。昔、一所懸命入力した、数千枚のクラッシックCDのデータベースとか、住所録とかが、何処のパソコンからでも参照できることになります。

_ [computer] PC98でタイマーが保持できない症状について

NECのPC98で、内蔵タイマーが保持できなくなり、システムの時間が滅茶苦茶な値になる症状は、古い98には必ず出るようです。以前から所有していた機種も次第にそうなりましたし、中古で買った98も概ね同じ状態です。

当初、これは電源OFF時のタイマー保持用充電池が、劣化で充電できなくなるのが原因かと思っていました。確かにこの充電池は劣化するので、交換で直るケースもありますが、大概はダメです。以前、「98専用タイマー用充電池」をどこかで扱っていたので、結構高価だったのですが取り寄せて交換してみましたが、やはりそれだけでは直らない様でした。

内部時計が狂っても、きちんと立ち上がりますし、操作も普通にできますが、ファイルのタイムスタンプが無茶苦茶な値になりまして、ファイル操作する場合に不都合が出る事があります。私はtarでまとめて、LAN経由でNASにバックアップしていますが、無茶な日付のファイルをtarは認めてくれないみたいで、困ります。

こういう事が知らない内に起こると困るので、日付チェックのプログラムを書いてautoexecに入れてありました。そのプログラムが異常を認めるたびに日付と時間を、手動で入れ直していたのですが、その内にそれも保持出来なくなりました。また時間計測のプログラムを書いても、作動しません。要するに電源を入れても内部タイマー自体が作動していない訳です。でも電源を入れて暫く時間をおくと、動き出す様です。

その内に、電源を入れてブートデバイス選択の画面で暫く置いておくと、日時データも引き継ぎ、正常に起動することが分かりました。要するに、「電池交換で電源OFF時でもタイマーは保持出来ている。ただ、システムを立ち上げた時に、そのデータを引き継げない」と言う事みたいです。原因は内部タイマー周りのコンデンサの劣化辺りだと思うのですが、よく分かりません。とにかく分かった事は、

[1]電源OFF時のタイマー保持用充電池の交換は必要だが、それだけでは直らない。
[2]電源OFF時のタイマーと、システム稼働中の内部タイマーは別の様で、システム立ち上げの時に日時データを引き継ぐ様だ。
[3]機器の劣化により、その内部タイマーが電源を入れても暫くの間動かない為、結局日時がランダムな値になる。
[4]電源を入れた後、内部タイマーが動き出すまで暫く置いてからシステムを立ち上げると、保持されたデータを引き継ぐ事が出来る。

と言うことです。つまりキチンと直すためには、中を開けて目につく充電池の交換だけではダメで、やはりそれなりの所に修理に出さなければいけない、と言う事みたいです。当面は、電源を入れて15分ぐらいブートセレクトの画面で置いておくことで回避していますが、いつまでそれで延命出来るでしょうか。