Libretto50 の故障の続編です。
たびたび検討して何とか解決方法を見つけました。
経緯
TOSHIBA Libretto 50 は、現在でもなかなか小さいパソコンです。(厚さはあります)。CPUは、ペンティアムの75MHzです。内蔵メモリは16MBで増設しても合計32MBです。このパソコンがある日突然使用中に電源断になり、再起不能になりました。
破損の症状
通常の起動時にメモリチェックして問題がないのですが、BIOS設定の画面を出した後にメモリチェックするとエラーが検出されます。
CONFIG.SYS で HIMEM.SYS のオプションで /testmem:on とすると、メモリのチェックをしてくれますが、それでもエラーが検出されます。
通常に Windows95 を起動するとフリーズします。
セーフモードで起動すると、日本語のフォントが変で、虫が食ったような一部が書けたり、何もないところに、例えば「に」の文字の左上に濁点があったり、そんな変な文字になっています。
修理は?
メモリを修理すれば使えると思いましたけど、8年前の話だし、修理もできないだろうと、メーカーに出すのはやめました。そこまでして生き返らそうとは思いませんでした。なら、自分でやるか? となりますが、狭ピッチのICでこのメモリ、普通のメモリの上に構造物を立ててその上にもメモリが載っています。こんなの難しいです。
メモリを使わない方法
んじゃ、修理が無理なら、破損しているメモリ部分を使わなきゃ良いわけで、それでどうしましょう。。。。
Windowsが破損メモリを使う前にその破損メモリを確保してしまうようにしなければいけません。そうなると CONFIG.SYS で何か入れるんだろうと予想しました。HIMEM.SYS にオプションでもあって、そこの部分を使わないでくれると良いのですが。んで、この時点では分からなかったのですが、これがなかなか当たりです。
メモリを取り外す
いろいろネットを探して見つけられませんでしたので、んじゃ、メモリを外したらどうかと。修理するだけの能力がありませんけど、メモリを取り外すということならばはんだブリッジになって隣のピンとショートすることも無いですからある程度簡単にできます。それで分解してみましたが、どのICが該当のメモリか分かりません。メモリチップは1個2MBで4列の2階建てで8個あります。(その他に増設メモリ8個もあります)今までのメモリチェックで3Mとか4Mの辺りがおかしいと分かっていますのでそれだけ取ればなんて考えたりしたのですけど、駄目でした。後で考えてみると、該当のメモリを取り外したところで、他のメモリを順次移動するか結線を変えないと駄目かもしれません。この方法は私には無理でした。
メモリ確保ソフト自作?
何かソフトを自作して、MS-DOSのドライバという種類のソフトになるかもしれませんけど、それでメモリを強制的に奪うか、とそう考えたわけですが、なかなか難しいです。フリーソフトウエアでドライバのソースは手に入りますのでそれを参考に変更すればできそうです。メモリを確保するだけなので他に処理も必要ないし単純になるでしょう。アセンブラも入手しないと。
それで、いろいろ調べてみると、メモリを確保するにはXMSというメモリ領域をですので、やはり HIMEM.SYS のお世話になるみたいです。んでDPMI とかの資料を探したわけなんですけど、破損しているメモリをドンピシャリで確保する方法がわかりませんでした。アドレスを指定してメモリを要求できればいいのですけど、できないのか、私が見つけられないのか。。。
また、HIMEM.SYS に戻る
そうしているうちにまた、HIMEM.SYS に逆戻りしました。この文章ではすぐですが、ここまでたどり着くのに2年くらいかかっています。そしたら、/int15というオプションを見つけました。これを使うとint15を使うソフトのためにxmsを管理しないとあります。つまり、HIMEM.SYS に管理しないメモリを指定することができるわけです。
HIMEM.SYS での試行錯誤
まず、MSDOS.SYS で [Options] セクションの BootGUI=0 にして Windows95 が自動起動しないようにします。この編集は、edit msdos.sys と打つとできます。メモリの破損している状況で Windows を起動しようとしてもフリーズしてしまったり、エラーメッセージが見られないので切っておきます。正常にDOS(Windows95 付属の通称 MS-DOS 7.0) が起動できたら、 win と入力することで Windows を起動できます。
それで、device=c:\windows\himem.sys /verbose /int15=100 とします。これは 100KB を制御しないということみたいです。この数値を色々と変更して様子を見ます。うちの場合は、4MB付近まで全て除外させると良いみたいです。ただでさえ少ないメモリを4MBも使わない設定にするのか。。。