エントリー

2022年10月27日の記事は以下のとおりです。

PC-386 Book Lの復活劇 その10 ~メモリ増設大作戦(後編)

20221031102724.JPG

 完調を取り戻し快適なDOSマシンとして有用なPC-386BookLを,さらに便利にするためにメモリ増設を目論んだが失敗を続ける間に季節が1つ進んでしまったわけですが,いよいよこのプロジェクトもゴールが見えてきました。

 中国から日本製の4MbitのSRAMを購入(円安が地味に痛い),ということで,今回は疑似SRAMから換装する所からスタートです。

 この安さで本当に10個の新品のSRAMが届いたことにもちょっと驚いたのですが,まずは小基板から疑似SRAMを剥がします。これは簡単でトラブルなく終わりました。ところが,交換するSRAMのパッケージが微妙に大きくて,そのままではマウント出来ません。

 そこでSRAMの足を内側に曲げて,なんとかマウント出来るようにします。それでも足が浮くことがあるので,注意してハンダ付けです。

 マウント出来たら配線チェックを簡単に行って通電。お,メモリカウントは1MBだけ行われました。なぜ1MB???

 起動したのでtmem.exeでチェックをしますが,やはり全滅。一見すると状況は変わっていないように思いますが,以前は不安定だった起動時のメモリカウントが確実に行われ,しかも1MBで止まります。そしてtmem.exeではこのエリアがNGです

 うーん,0x100000からの1MBは認識されるがエラー,0x200000からは認識もされないという状況ですが,不安定さはなくなりました。大きな一歩です。

 ここでHC138から出ている0x100000と0x200000のデコード出力を入れ換えてみます。こうするとどのエリアがまずいのかがわかるはずです。

 結果は,全く認識せず。つまりもとの0x200000はメモリとして全く機能していないということです。なら,この状態でちゃんと1MBのメモリとして認識するようにしていきましょう。

 こういう時は愚直に配線を確認です。SRAMにしたので回路的には疑うべきところがほぼなくなっていますから,きっとどこかにミスがあるはずです。するとデータバスの1つが配線されていない事が判明しました。なぜかわかりませんが小基板の配線が途切れていました。

 ここをバスに接続して通電するとメモリカウントが1MB行われました。よし!

 続けてtmem.exeでチェックすると,なんとパスしました。NGが全く出ません。ということは,少なくともSRAMを使ったこの回路は正常に動作するということが確定したということです。これは大きな前進です。

 気をよくして入れ換えたデコード出力を戻して通電します。するとメモリカウントは2MBまで進み,正常に起動しました。また一歩前に進んだ感じです。

 そしてtmem.exeでチェック。残念ながら0x100000のエリアはNG。0x200000のエリアはOKとなりました。

 0x100000と0x200000が同じ回路になるようにすればいいだけのことですので随分気は楽です。早速配線チェックをしていくと,アドレスのA6が配線されていないことがわかりました。これも小基板内で切れています。

 ここを配線してtmem.exeでチェックすると,0x100000ではOKの領域とNGの領域が交互に出てくるようになりました。OKが規則的に出てくるというのは一歩前進です。これはよい兆候です。

 さらに配線を確認すると,A17とA15の2つの配線が切れていました。なるほど,それでOKとNGが繰り返すのですね。ここを配線しテストを行うと,すべてのエリアがOKになりました。ようやくゴールが見えてきました。

 ここで私は手痛いミスをします。実はメモリの換装をした直後に上位アドレスのラッチが本当にいるのかどうかを確かめるため,74F373のラッチ入力をHIghに固定して試したのです。するとメモリカウントが行われたのでラッチは必要ない,やはり文献通りエプソン機は上位アドレスにラッチがいらないのだと結論したのです。

 そこで,全エリアOKになった後の作業として,このラッチを取り外すことを計画していました。配線を一部外してから念のためチェックをしないとまずいかなと,配線を戻して通電しますが,起動しません。

 配線を戻すときにミスをしていた(5VをGNDに繋いでしまった)のですが,これを戻してもメモリカウントが進まなくなりました。ラッチが必要なのかと74F373のラッチをALEに繋ぎますが,それでもメモリを認識しなくなりました。

 ああ,なんとういことか。余計な事をしなければよかった。

 74F373が壊れた可能性は低いと思うのですが,正しい配線に戻しても動かなくなりました。ラッチが必要ないと思い込んでいた私は,この時一か八か74F373を完全に外すことにしました。こうすれば74F373が壊れていても正常に動作するはずです。

 せっかく配線した74F373周りの配線を外してバスに直結し,通電します。

 結果はNG。メモリカウントは行われますが,tmem.exeが全エリアNGで通りません。やはりラッチが必要だった?

 起動時のメモリカウントは,どうもライトとリードを同じアドレスに続けて行い,一致すればカウントという仕組みのようです。ですのでアドレスの重複があってもカウントは行われるようで,上位アドレスがラッチされない今回の回路では低位アドレスに何度も読み書きを行ってカウントが進んでいるのだと思います。

 74F373を外す前にtmem.exeでOKが出るところまできちんと追い込んでおくべきだったと地団駄を踏んでもすでに遅く,もう一度74F373を取り付けます。これ,配線数が多いので時間がかかって面倒なんですよねえ・・・

 仮に配線を済ませても,74F373が壊れていたり本体側が壊れていたりすると復活しないでしょう。74F373が壊れているなら手間はかかるけど交換すればなんとかなりますが,本体側が壊れているならもう絶望です。

 配線を追えて祈るような気持ちで通電。しかしメモリカウントも行われません。

 配線チェックを行って再度通電。しかしメモリカウントも行われません。

 74F373が壊れている可能性もあるということで,新しいものに交換します。配線をやり直すのにまた1時間ほどかかってしまいましたが,祈るような気持ちで通電。

 しかしメモリカウントも行われません。

 これはやばいです。本体側を壊したという事です。冷や汗が流れます。ああ,本当に余計な事をしなけりゃよかった・・・

 ところで,そもそもこうした事態に陥ったのは,74F373に5Vを供給する配線を間違えてGNDに繋いでしまったことに始まっています。74F373におかしな電圧はかかっていませんし,本体にだっておかしな電圧はかかっていないはずです。

 起こったことは,5VをGNDに繋いでしまったことで本体の電源をショートさせたことでした。もしかして本体保護のヒューズが入っていないか?

 調べてみると,Lスロットの近くに3.5Aのヒューズがありました。テスターで調べると見事に導通がありません。切れています。

 仮にこれが原因でなくても切れたヒューズをそのままにするのもまずいので,手持ちの2Aのヒューズに交換します。

 電源を入れると,ちゃんとメモリカウントが始まりました。起動後tmem.exeでチェックすると全エリアOKです。よかった,原因はヒューズでした。

 74F373のラッチをHigh固定して無効化してみたところ,正常に動作しています。やはりエプソン機の上位アドレスは本体内部でラッチ済みだったようです。

 今回は慎重に74F373を取り外してチェックしましたが,正常に動いています。

 これで完成です。仮想86モードでEMSにすることも,UMBを利用することも出来る事を確認して,長くかかったこのプロジェクトも終了です。

 軽い気持ちで始めたメモリ増設ですが,こんなに苦労す るとは思いませんでした。

 ちなみにSRAMのウェイトをなくす回路は入れていませんのでかなりのウェイトが入っているはずですが,もともと16bitバスの遅いマシンですので,そんなに気になりません。

 SI.exeでは4.77倍から若干低下し4.66倍,他のベンチマークでも若干速度低下がある程度で,しかしながら画面のスクロールが体感上少し遅くなったように感じます。(ああ,当時が懐かしい)

 しかし,メモリのアクセス速度(ワードアクセスの速度)を調べてみると,増設したエリアは6732usec,内蔵メモリのエリアは2360usecほど出ていますので,3倍ほど遅くなっています。WindowsやLinuxを走らせるわけではありませんので,気にしないことにします。

 ノーウェイトにする方法もありますのでチャレンジしてもいいですし,余っているSRAMをさらに追加してメモリ容量を増やすということも考えたのですが,もういい加減に飽きてきましたし,DOSで2MBも4MBも変わらんだろうということで,ここでもうこの件は終わりにします。

 今回手間がかかったのは,PC-386BookLというマイナーなモデル故の資料のなさ,時代的に2MBもの容量をSRAMで実装した例がなかったこと,PowerBook用の疑似SRAM小基板を流用したがその資料も全くなかったことなど,手探りで進めざるをえなかったことが複数あったのが原因です。

 特にLスロットのピン配置についての資料が限られており,しかもそれによるとCバスとは異なるアサインになっていたので,信用していいかが最大の問題でした。

 今回のボード製作ではっきりしたことは,

(1)PC-386BookLの上位アドレス(SA20からSA23まで)はCバスとは配置が異なる
(2)PC-386BookLの上位アドレス(SA17からSA23)はラッチが必要ない
(3)PC-386BooKLのLスロットの上位アドレスを有効にするにはPRSL(A2ピン)をOpenにする
(4)ENOWAITはLowにしただけではだめ
(5)SRAMでもWEはSMWRではなくMWE0を使用する
(6)さすがSRAM,リフレッシュを考える必要はない(疑似SRAMはDRAMだ)
(7)70nsという高速なSRAMを使えばタイミングのことをほとんど考えなくてよい

 ということで,(1)から(3)がはっきりしたのは大きいです。

 SRAMを使えば簡単にメモリを増設出来ることをいろいろな機種で実装してきましたが,386SX搭載機でも可能であることがわかりました。当たり前のことなので大した自慢にもなりませんが,手に入りにくい昔のPCのメモリを増設する方法としては,現実的な方法の1つだと言えると思います。

 残念な事にSRAMの大容量化が止まっていますし,4Mbit品の入手でさえも難しいのが現実ですが,電源電圧を考慮すれば簡単に繋がるので,ストックを持っておくと面白いかも知れません。

 さーて,お楽しみは1バイトでもコンベンショナルメモリを増やすような,config.sysを書くことですね。これがやりたくてメモリ増設したんですよねー。

 あれ,UMBを設定したらフロッピーディスクドライブが動かなくなりましたよ。


ページ移動

  • 前のページ
  • 次のページ
  • ページ
  • 1

ユーティリティ

2022年10月

- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

過去ログ

Feed