にがMSX

〜 MSX1の補修と改修 〜




SONY HB-10
 
SYSTEM
S3527 MSX1
CPU
NEC uPD780C-1
 (Z80互換 3.58MHz)
RAM
16kB(SLOT#0)
VDP
TMS9118NL
VRAM
16kB
Ex.SLOT
#1,#2

 ひょんなことからSONYのHB-10を入手した。SONYのMSX1としては後期の製品であるが、メモリは16kBと少ない。販売時はBASICの通信添削講座とロードランナーのROMカートリッジが付属していたらしく入門機という位置づけだろうが、BASICで使うにしても32kBは欲しいところ。

日本での発売は1985年だそうだが、同じ年にMSX2規格が発表、翌1986年にはMSX2のHB-F1が同じ価格帯で発売されていることから、国内での製造は短期間で終わったと思われる。海外では1986年に64kB化されたPAL版が展開されており、世界的には意外と普及したのかも知れない。MSX Resource Centerに情報あり。



 画像上が初代FS-A1、下がHB-10の本体側コネクタである。いずれもACアダプタはDC+AC出力だが、似ているようで電圧も大きさも違うので流用はできない。

変態ACアダプタ単体での入手が困難である反面、本体のみのジャンクは比較的安価で出回っており、USB電源化してしまえば軽量コンパクトのメリットが生きてくる。


 本機にはMSX SYSTEM (S3527)が採用されており、この中に主なロジック回路とPSG、入出力I/Fが入っているため、メインボードはシンプルにまとまっている。

 前オーナーの情報によると、電源投入しても画面が出ず、VRAMを交換しても直らなかったのこと。ACアダプタが付属していなかったが、±12Vはスロットへの供給でしか使われていないため、5V系に適当なUSB電源を接続することで動作検証は可能である。

 試しに沙羅曼蛇を起動してみると画面が真っ暗なままCMTのリレーがカチっと動作して無反応になった。何度か試してみると稀に上画像のような表示が現れ動作した。SCCサウンドは流れ、ジョイスティックを操作するとそれっぽい反応はみられる。


システムROM
 
 ネットでHB-10について調べてみると、システムROMが壊れていた事例があったので、試しにROMライターで読んでみた。当初は読み取りに失敗したが、本機のROM(MSM38256RS)は1pが特殊で、メーカーオプションにより正論理または負論理のチップセレクト信号に設定されるらしい。

 通常のEPROMでは1pがVpp端子になっていて、読み込み時はHレベルとするが、本機のROMでは負論理の/CSに設定されていて、Lレベルにしないとデータが読めない仕様になっていた。

 そこで1pを跳ね上げてGNDに接続したらROMライターでも正常に読み取りできた。検証のため別のEPROMに置き換えてみたが症状は変わらず。よってROMに問題は無く、VDPの故障が疑われる。




 
VDP TMS9x18
 初期のMSX1のVDPにはTMS9918が使われているが、本機はTMS9118NLで、これらは接続できるDRAMの仕様が異なる。ピン名が同じなので非常に紛らわしいが、ADxとRDxの内容が異なるため互換性はない

 TMS9918は1bit x16kのDRAMを8個接続する仕様で、ADxが出力専用でアドレスと書込みデータがマルチプレクス化されており、RDxは入力専用となっている。TMS4116等の古いDRAMはデータの入出力が別ピンになっており、TMS9918ではこれに合わせて入力信号と出力信号を分ける仕様で作ったのだろう。

 一方、TMS9118は4bit x16kのDRAMを2個接続する仕様で、ADxはアドレス信号出力専用RDxが双方向。TMS4416等の4bitタイプのDRAMはデータ入出力を同一ピンで行うため仕様変更したと思われる。

欠損キーの複製
 TMS9118は某海外通販でオーダーし、到着するまでの間に欠損しているファンクションキー2個を複製することにした。

 同一形状のキーをノギスで計測し、KiCADのPcbnewで製図。型紙を1mm厚のプラバンに貼り付けてアルティメットカッターで切り出した。加工誤差が生じるため余分に切り出して精度の良いものを選別。
 キーの底面は複雑な形状になっていて、バネを支持するボス2本と、スイッチに勘合する突起6本で構成されている。これをフルスクラッチで再現するのは難しいので、おゆまるで型取りし、プラリペアで複製した。

 型取りしたおゆまるの内周にプラ板を差し込み、プラリペアの粉を充填し、プラリペア液で溶解させる。一気にやると液が末端まで浸透しないので充填と溶解を数回に分けて行った。

 24時間経過後に型抜きした。逆テーパーで抜きにくいが、おゆまるは柔らかいのでなんとかなる。
 型から抜いたら天面のプラ板を接着して蓋をする。数日放置してサンドペーパーで表面を平滑にして角を面取りしたら完成。


 バネは鉄道模型のジャンクから流用し、複製キーを本体に取り付けた。底面の突起が本体側のスイッチの突起と嵌合し、軽く引っ張って抜けなければOK。

 形状は違和感なく押した感触も悪くない。
色は再現していないが、塗装しても剥げてしまうのでこのままにする。

VDPの交換
 TMS9118NLは発注後3週間で到着。中古取り外し品のようだが、2個で$10程度とお安く、TIのエンボス入りパッケージで見た目はホンモノっぽい。
 取り付けて電源を入れたところ無事にBASICが起動した。フリーエリア12431Bytesなので16kBメモリで動作している。

 ROMゲームも問題なく動作した。
 TINY野郎さんのSLOT CHECKERで調べてみるとRAMはSLOT#0のPage3に割り当てられていた。

 外部スロットは#1,#2に割り当てられており、SLOT#3は不使用。

 本機に搭載されているMSX SYSMTEM (S3527)のスロット選択信号の仕様は上図の通り。本機ではスロット拡張なし、/CAS3信号によりSLOT#0のPage3にRAMを割り当てている。SLOT#3を拡張して/CAS2 Eを使うことでSLOT#3-2にRAMを割り当てることも可能になっている。

 なお、/CAS3、/CAS2 E はDRAMの用のスロット選択信号で、タイミングが通常のスロット選択信号と異なるが、他の目的に転用することはできる模様(実例)。

メモリ64kB化


 さすがにメモリ16kBは少なすぎるので64kBに拡張してみることにした。HB-10の海外仕様(PAL版)はRAM 64kBだが、国内仕様(NTSC版)と基板は共通。そのため比較的簡単に64kB化が可能になっている。海外某所からPAL版HB-10の回路図を入手して実機と比較してみると上記赤丸の部分が相違点となっていた。PAL版ではDRAMのCAS信号がS3527のSLT 3/30とMPX信号から生成されている。




 NTSC版ではDRAMは4bit x16kでR61がCAS3に直結されており、C43,Q4,C53,R62は未実装となっていた。4bit x16kのDRAMはA0,A7がROWアドレスのみ、4bit x64kのDRAMはA0/A14とA7/A15でマルチプレクス化されているが、ピンには互換性があり、そのまま置換しても動作しそう。



 余談だが、Z80内部のDRAM用リフレッシュカウンタは7bitしか存在しない。TMS4116などのA6までしかアドレス線が存在しないDRAMを使う場合はZ80のリフレッシュアドレスをそのまま使うことができるが、A7以上のアドレス線が存在するDRAMを使う場合はリフレッシュアドレスを外付け回路で生成する必要がある。(RAS only refreshの場合)

本機の16kBのDRAMにはA7までアドレス線が存在し、どこかでA7のリフレッシュアドレスを拡張しているはずで、回路図で確認したところ、上図のようなカウンタ回路の存在を確認できた。個人的に既視感のある回路構成だが、以前にFS-A1FXの1MB化で作った1bit extend refresh counterの回路とほぼ同じである。



 64kB化に必要な部品は4bit x64kのDRAM2個、適当なNPNトランジスタ、47kΩ抵抗、100pF、390pFのセラミックコンデンサとなる。

 DRAMは過去のMSX2のメモリ増設時に取り外したものをリサイクルした。
 R61、C43の実装部分はコチラ。R61は(N)側に実装されているものを、(P)側に移動させる。

 C43には390pF程度のコンデンサを取り付ける。このコンデンサは/CAS信号の立下りをMPX信号の立ち上がりから遅延させるためのもの。
 C53に100pF、R62に47kΩ、Q4に2SC1815互換トランジスタを追加実装。これらはMPX信号の反転に使われる。

画像上方に見えるのが、MSX SYSTEM S3527。

 64kBのDRAMを実装して電源投入したところ、フリーエリア28815BytesでBASICが起動した。
スロット構成を見ると、SLOT#3にRAMが見えているが、SLOT#0のPage3にもRAMが現れている。

Page3の同じ物理メモリが複数のスロットから見えていることになるが、それもそのはず、DRAMの/CAS信号がS3527の/CAS3と/SLT 3/30の双方に繋がっているためである。

スロット構成の修正


 MSX1のRAMはスロット番号の若いものが優先されるので、Page0-2はSLOT#3、Page3のみSLOT#0からアクセスされる。RAMが複数スロットにまたがっていても仕様上は問題ないが、一部のソフトエアで不具合の原因になるとテクガイ(p33:第10章4)で読んだことがある。調べてみるとやはりそのようで、MSX Resource Centerで情報が出回っていた。

対策としては、上図のようにCAS3を無効化すればよい。



実際のカット&ショート部位はコチラ。LS08の9pとR61(N)間をパターンカットし、LS08の9p-10pを半田でブリッジした。

元の16kBの状態に戻す時はR61(P)をR61(N)に移動させるだけで良く、カット&ブリッジを戻したり増設した部品を取り外す必要はない。



以上の改修により、SLOT#3にのみRAMが現れるようになった。64kBメモリのMSX1としては標準的な構成だろう。





内部スロットの拡張

 本機に搭載されているMSX SYSMTEM (S3527)のデータシートを紐解くと、SLOT#0または#3の拡張に対応していることが分かる。上図のようにキーボードリターン信号/X6をリセット時にLにすると#0拡張、Hにすると#3拡張となるらしい。本機ではダイオード非実装なので#3が拡張されることになるが、実際のスロットマップを見ると拡張されていない。



 データシートをさらに読み進めると、このような記載がある。拡張スロット選択レジスタFFFFhのデコードには、A0-A15のアドレス信号がすべて1であることを確認する必要があるが、S3527にはA2,A8-A13が接続されていない。IOピン数の問題で、デコーダを外付けにする仕様なのだろう。





 よってS3527の/RSEL端子に適切なデコード信号を入力してやることでSLOT#3が拡張されると思われる。

 データシートのピンアサインを見ると、/RSELは9p。内部プルアップされており、本機ではNCになっていた。
 複数信号のNAND論理をまとめて取得するには74HC30や74HC133が便利だが、2021年現在はやや入手困難。CPLDに移行してもIOピン不足でこのような石が必要になるケースはあるので、製造を続けてもらいたいものだが…。

回路図通りにZ80の裏側に74HC30を実装した。S3527のピッチは細かいが、配線は5本だけなので意外とラク。


以上の改修により、SLOT#3が拡張された。使い道は特に無いが、実験としては成功。





電源の改修
純正の変態ACアダプタは入手が難しい上に、トランス電源+シリーズレギュレータは効率が悪いので、USB電源化を行った。

USBはコネクタの規格が乱立しているが、2021年現在ならTypeC化が適切だろうか。秋月電子でコネクタ付き基板を入手してみた。

必要なのはGNDとVBUSの2本。VBUSはワイヤー接続にするため、ヘッダピンを上に突き出すように加工している。

GND側は基板直付けにするため、適当に位置決めしてドリルで開口し、レジストを削った。

片面基板へのコネクタ直付けは半田割れを誘発する恐れがあるが、5本も半田付けしておけばしばらく持つだろうし、ワイヤーで予備線を接続しておけば完璧だろう。
AC電源から±12Vを生成するためのレギュレータ(IC19,IC20)は撤去した。78L12が+12V、79L12が-12V用。

±12Vの生成
 ±12Vはスロットでしか使わないのでなくてもあまり困らないが、音源カートリッジのオペアンプや一部のFDD I/Fカートリッジで使われることがあるので、DC-DCを追加しておいた。

HB-F1XVの改修では秋月のMAU108を使ったが、今回はAitendoのモジュールを利用。価格はMAU108とほぼ同じだが、MAU108の方がノイズが少ない気がする。

接続ポイントは下画像の通り。メインボード外のヒートシンク付きレギュレータのワイヤーは取り外し、IN-OUTをショートしている。



電源改修部の全体像がコチラ。



 意外に発熱するVDPにヒートシンクを装着した。TMS9118の故障事例はそれほど珍しくないようで、排熱不良による劣化が故障の原因かもしれない。






リセット回路の修正
 ついでにMSX Resource Centerで指摘されている問題を修正しておく。本機ではなぜかスロットのリセット信号がダイオードでオープンドレイン化されており、スロットのデバイスの動作不良を誘発する。実際にMegaSCSIが立ち上がらなかったという報告あり。

スロット側をプルアップするか、ダイオードを100Ω程度の抵抗に置換しても良いが、ここではシンプルに直結しておいた。初代FS-A1でも同様に直結されているので問題ないだろう。





PSGバランス修正
MRCでも指摘されているように、本機はPSGの音量バランスに問題があるため、これを修正する。sd_snatcher氏によるとR22を10k -> 1kΩに、R15を10k -> 4.7kΩに変更するとよいとのこと。実際に検証してみた。

 まずは改修前、BASICのPLAY文で "v15o4a"を発音させたときの波形。オシロのプローブを本体の音声出力端子に当てて測定した。綺麗な矩形波で出力は671mVp-pである。単音であれば聴取上の違和感もない。
 "v15o4c","v15o4e","v15o4g"の和音を出した時の波形。確かに各chの出力が重なったときのバランスがおかしい。音も割れている。
左側スロットの近傍にR15とR22があるので、これらを4.7kΩと1kΩに変更した。
改修後、"v15o4a"の波形。238mVp-pと小さくなった。
改修後の "v15o4c","v15o4e","v15o4g"の和音。各ch出力が綺麗に3段階に合成されている。音割れもなくなった。

確かにこれは本機の回路バグと言っても良さそうだ。半田ごてを使える方には修正をお勧めしたいところ。



おわりに


 HB-10には設計上の問題があり、NTSC版はメモリも16kBと貧弱でACアダプタも特殊仕様である。何かとクセの強いMSXで、そのままでは使い物にならないが、ちょっとした改修で普通に使える軽量コンパクトな機体に生まれ変わる。ネットオークションでは比較的安価で取引されており、改造前提で入手するのならば割とお勧めの一品かもしれない。

私が入手した個体はキーボードも全キー押下可能で黄ばみも少なく内部も綺麗だったので掘り出し物だったかも。今後は自作ハードの互換性検証に活用するつもりである。

 お約束ですが、この記事を見て修理・改造などを行い故障やその他問題が発生しても当方は責任を負いません。各自の責任において情報を広く集めて行うことをおすすめします。

この記事の内容は個人の憶測や見解の誤りを含んでいる可能性があります。内容についてメーカー各社に問い合わせるのは止めましょう。


ご意見、ご感想、ご質問はにが BBSまで!
Top pageへ 戻る

copyright (C) 2021 Niga.