|
|
画像上: 「はにはにのヴィンテージPC新品再生ブログ」のblogマスターである”はにはに”氏からの贈呈品(メインボード死亡のジャンク機) 画像下:札幌MSXユーザーの集いで頂いたもの。筐体、キーボードはなぜかA1STのものだが、メインボードはA1FX。 |
まずは頂いた当時、この機体にFM音源を増設すると約束しておきながら15年も塩漬けになっていたことをお詫びしたい。当時「集い」に通っておられたMさんに頂いたEPROMも出てきたので今回活用させて頂いた。FM音源チップの「YM2413」もどなたかに頂いたのだが、もはや誰に貰ったのかも分からなくなってしまった。もしこの記事を見ていたらニヤリとでもしていただければ幸いである。 |
|
貰い物に文句もいえないが、譲り受けた時点で、電源ケーブル切断、プリンタ端子欠損、ジョイスティックポート2欠損、ネジすべて紛失、バックパネル、マウンタ金具類ほとんど欠損、FDDなし、スピコン基板、集中インジケータ基板&パネル欠損、という状態。それでも電源ケーブルさえACに接続できれば起動ができる状態なので、火入れをしてみたが、電源が入ったり入らなかったり、入っても途中で落ちたりと非常に不安定。 考えてみれば製造後既に25年ほど経過しているわけで、電解コンデンサも寿命を迎えているだろう。とりあえずコンデンサの総張替えをした(画像はRGB出力のケミコンのみ張替え前)が、動作は安定せず、基板をチェックすると電源部のパターンの剥離、VDPの半田クラック、その他半田の薄いところにクラックが散見されたため、修復、半田の盛りなおしを行ったところ安定動作するようになった。 動作の目処が立ったため、改造に着手すると共に、パーツ集めを開始。まずはFM音源の増設、512kBメモリ増設、S端子の増設を行ったのが上の画像。欠損パーツについてもはにはに氏からジャンク品を提供して頂くことができた(多謝)。 |
|
パナMSX2+のメモリ増設といえば、44256(256kx4bit)互換チップで256kBまたは512kBに増設するのが定番ではあるが、今時DIPのDRAMもあまり出回っていない。オクで中古をゲットするという手もあり、古い9801のアイオーデータ製メモリボードを入手して日立の「87424」という謎メモリを剥がして載せてみたが、うまくいかず断念。アイオーデータカスタムのメモリのようだったがデータシートがなく、壊れていたのか仕様が異なるのかは不明。 手持ちのジャンクを調べてみたら、98ノートNX/C用の4MB増設メモリボードに「514800」というDRAMが8個載っているのを見つけた。NX/Cは実機を持っているが、既に8MB増設ボードを入れているので4MB版は不要。ということでこのDRAMを活用する方向で進めることにした。 |
|
514800はデータシートによると、512kx8bitのメモリで、アドレス線はA0-A8,A9Rの10本。データ線はD0-D7の8本を持つ。このA9Rが特徴的で、A9だけROWアドレスのみ有効でCOLOMNを持たないらしい。そのためDRAMとしては中途半端な512kのアドレス空間になっている。容量としてはこれ1個で512kBなのだが、A1FXで使われているカスタムチップT9769の仕様では、DRAMのアドレス線はA8まで、/CAS信号が2本までとなっているため、とりあえずA9RはGND固定で殺し、1つを256kx8bitのメモリとして使用。これを2個使って512kBに増設した。 実際の作業としては、514800x2を亀の子で重ね、1p-14pまではIC21空きパターンの同名信号、15p-28pはIC24の同名信号に接続することになる(※上記回路図では、分かりやすくするためIC24のデータ線はD4-D7と表記した)。 上に重ねた514800の/CAS(23p)だけは亀の子せず、ジャンパー線でT9769の50p(MPSL1)に接続。ここは細かい作業となるので半田スキルが必要。そして前述のようにA9RはGNDに接続。これでとりあえず512kBとして正常に使うことができた。(余っているA9Rは後に活用して1024kBに拡張した)。 |
|
基本は定番の512kB増設と同じで、T9769の容量設定端子MPSL0(51p),MPSL1(52p)を共に+5Vでプルアップして、/CAS0(49p),/CAS1(50p)をそれぞれのDRAMの/CAS端子に接続することになる。 上画像ではTP1の穴を通している白いワイヤーが/CAS1(50p)、その1本上に見えるワイヤーがMPSL0(51p)。MPSL1はJ2カット&J3ショートで+5Vに接続されるが、MPSL0はT9769下のパターンによってGNDに繋がっているので、足を基板から浮かせて+5Vに接続しなくてはならない。足を半田ごてで暖めながらデザインナイフで処理した。足を根元からポッキリ折ってしまうと終了してしまうので慎重な作業が必要。 単に両方の容量設定端子を+5Vに繋げるだけならMPSL1を隣のMPSL0とショートさせてしまっても構わないが、この基板では128kB化の実証試験も行ったため、このように配線した。 |
|
|
まずはFM音源の増設から。BABAXさんが公開されているA1WXの回路図と実機を照らし合わせて、不足分の部品を書いたのがこの回路図。なお、データバスなどの配線は省略している。音源チップであるYM2413と積分回路を増設してオペアンプに信号を引き渡す部分となる。オペアンプのLM324のみ既に実装されているが、それ以外の部品を用意して、この回路図どおりに実装すればよい。ROMの内部増設については後述する。 |
|
A1FXで使われているビデオエンコーダCXA1145は元々Y/C出力に対応しており、実際S端子を標準装備したA1WSXではそこから信号を引き出している。A1WSXではトランジスタを使った面倒な回路構成になっているが、ここは専用のビデオアンプICを使う。 NJM2268というY/C出力に特化したICを使うのが定番であるが、入手性にやや難あり。2014年現在千石電商で入手が可能だが、秋月電子や札幌の梅沢無線では扱いなし。NJM2267でも代用は可能だが、その場合はC信号はビデオアンプを通さず、CXA1145 ChromaOut(15p) - +220uF - 75Ω- SVideo C(3p) といった具合に直列に繋いでコネクタに引き出せばとりあえず使える(電解コンデンサはCXA1145側が+)。 映像信号は既にHDMIが標準化しており、市販のテレビからもS端子が消えてきている。今後NJM2268はますます入手が難しくなりそう。
その後BASICプログラムでカラーバーを表示させてチェックしてみたところ、Chroma信号の赤色に縦縞ノイズが混入していることが判明。オシロスコープで波形を確認すると、NJM2268の8pに入っているChroma信号はノイズの無い綺麗な状態だったが、NJM2268の5pから出てくる信号のマゼンタ、赤色に周期性のあるノイズが混入していた。これが縦縞ノイズとなって現れていた模様。 試しにNJM2268に入れるChroma信号にカップリングコンデンサを噛ませ、抵抗で適当なBIAS電圧を与えてみたが、ノイズは消えなかった。Chroma信号はAC信号だが、CXA1145から出ている信号は元々BIAS電圧がかかっており、NJM2268にDC結合にしていたことは特に問題ではない模様。なお、Y信号は中途半端にカップリングコンデンサを噛ませると信号が歪むので現状のDC結合で良さそう。 NJM2268がどこからノイズを拾っているのか分からないが、経験的にCXA1145のChromaOutは直接75Ωドライブしても問題なく画像を表示することが分かっているので、敢えてビデオアンプを通さずにCXA1145からカップリングコンデンサと抵抗を介してモニタに信号を引き渡すことにした。下記Rev.2のように回路を修正したところ、縦縞ノイズは消え綺麗なカラーバーが表示されるようになった。NJM2268のBIAS側は使用しないので、比較的手に入りやすいNJM2267でも同じように使える。 |
|
CXA1145のYoutはR37から、ChromaOutはC110から取り出せる。ノイズ対策のために、R75とC23から取り出したGNDとツイストペアにしてワイヤーを引き回している。NJM2267の+5V電源はC24から取り出せる。 ちなみに左のジャンパー線は、剥ぎ取られたジョイスティックポート2のパターンを修復したもの。 |
|
RFユニットを撤去しているので、その穴を活用することができるが、サイズは異なるので多少棒ヤスリなどで穴を拡大する必要はある。丁寧に加工すると違和感無く仕上げることができるだろう。 |
|
コンポジットビデオ端子とS端子での出力を同じ自作LCDモニタで比較した映像がこちら。画像左のコンポジットビデオ出力はボケボケであり、輝度の高い文字の右に影が出来ている。アクションゲームなどではあまり気にならないが、横80字モードでは文字の判読に難があり、実用できる状態ではなかった。 S端子に切り替えたところ、文字がクッキリとしてドットのエッジまで分かるようになった。全体的には微妙なノイズはあり、RGB出力には若干劣るものの十分に実用的だ。 |
|
FM音源をシステムから認識させるためには、ドライバのROM(FMBIOS)が必要となる。とりあえずROMカートリッジ式で認識させても良いが、それだとFMPACの節約にはなるもののスロットに節約にならないのであまりメリットがない。そこでEPROMを内蔵させる手法について検討、解析を行った。 まず、FXの内蔵ROMや空いているROMパターンがどのように接続されているかを調べたところ、内臓ROMのアドレスバス、データバスはCPU・スロットのものとは違い、すべてゲートアレイM60014に入っており、そこで一定のアドレス空間で区切られて適当な内部スロットに振り分けられていることが判明した。 当初はEPROMを空きパターンに載せて余っているスロットセレクト信号を使うつもりだったが、目論見が外れてしまった。空きパターンを使わずに、アドレスバス、データバスをすべて手配線しても良いが、合計28本の空中配線はやっぱり面倒だし実装場所の問題もある。ということで、内蔵ソフトの領域を乗っ取って、ここにFMBIOSが現れるように改造することにした。うまくいけば内蔵ソフトスイッチ「入」起動でオリジナルのまま、「切」で内蔵ソフトが消えてFMBIOSが現れるようになるので、敢えてPSGサウンドに戻したい時にBIOSを切り離すこともできる。 |
|
兄弟機のA1WXはROMの特定の領域のアクセスに対して、物理ROM切り替えるためのアドレスデコーダ回路を持っている(基板右下のIC25-IC27)。A1FXではその部分は省略されているが、せっかくなのでそこの空きパターンを利用することにした。ROMの実アドレス2000h-27FFFhを乗っ取るので、ROMのアドレス線 A17=1 , A16=0 , A15=0 のときに/CSがアクティブになるタイミングでEPROMに切り替えることになる。 今回、EPROMは32kBの27C256を使用した。前半16kBにA1WXから吸い出したFMBIOSを焼き、後半はFFhで埋めておけば良いのだが、容量を余らせるのも勿体無いので後半に「べーしっ君ぷらす(BASICコンパイラ)」を焼いて切り替えられるようにした。ただし、FMBIOSもべーしっ君もページ1でしか動作しないので同時に使うことはできないし、ページ2に置くと暴走するので、乗っ取りは前半16kBのみ、つまりA14=0も監視が必要となり、回路図は上記のようになった。こうすると、ページ2には内蔵ソフトの内容が現れたままになるが、ROMヘッダを持たないのでシステムには悪影響を与えない。なお、32kBのEPROMで後半をFFhで埋めて使うのであればHC138の/G2BはGNDに繋いでしまっても構わない。 ちなみに内蔵ソフトスイッチは、入でH、切りでLレベルになる。リセット信号からの立ち上がり時のスイッチの状態をHC74で監視、記憶させているので、システム起動後にスイッチを切り替えてもROMの内容は切り替わらないようになっている。そのため内蔵ソフトやFMBIOSが稼動しているときにスイッチを切り替えても暴走しない。 |
|
実際のロジックICの実装の様子がこちら。IC26に74HC138、IC17に74HC148を取り付けた。可能な限り元のパターンは利用し、パターンカットは極力行わない方針で実装している。 HC138は3p,4pの足を跳ね上げて実装し、3pはIC25パターンの2pに来ているC15に接続、4pは別途増設したHC74のQ出力(5p)に接続する。13p(/Y2)出力は、HC148の4pと接続。 HC148は回路図どおり1,2,3,10,11,12,13pは+5Vに接続するが、10,11pは他の実装済みのICに繋がっているので足を跳ね上げる必要あり。同様に5,6,7,9pも足を跳ね上げ、5pは元のROMのIC16の22p(/ROM2)に接続する。 元のROMは前の画像のように、IC16から引っこ抜いてIC18に実装している。こうすると、R140の空きパターンをショートするだけで、HC148の/E0(15p)がROMの/CS(22p)に接続され、パターンカットが不要となる。ROM引っ越しが面倒ならば、カット&ショートでも構わない。 |
|
今回EPROMは27C256を使用したので、27pが最上位アドレス線のA14となっている。ここをLにするとFMBIOS、Hにするとべーしっ君が有効になるので、PICの切り替え信号出力に接続している。16kBの27C128を使う場合は、27pはROM焼きに関わる信号線になり、通常使用時は+5Vに接続する。 元々IC15の22p(EPROMの/OE)はどこか別の回路に繋がっているが、ここはパターンカットして、GNDに接続した(パターンカットはここ1箇所のみ)。 元のROMが刺さっていたIC16の22p(/ROM2)は前述の通り、HC148の5pにジャンパー線飛ばして接続している。空きパターンの穴を利用して、ジャンパー線を引き回しているが、こうすると誤ってワイヤーを引っ掛けたときに基板のパターン剥離をある程度予防することができる。 |
|
74HC74には、リセット信号の立ち上がり時の内蔵ソフトスイッチの状態を記憶させている。ここを省略して/G2Aとスイッチを直結しても切り替えはできるが、スイッチの接点が劣化したり、起動後に不用意なスイッチの切り替えを行うと暴走するのであったほうが良いだろう。 余ったゲートは後で3倍速改造のウェイト回路で利用するので、スロットの近くに実装したが、IC25の空きパターンを利用しても良かったかも知れない。とりあえず余ったゲートは暫定的に入力端子を+5Vに接続している。 |
|
FMBIOSとべーしっ君の切り替えは排他的とし、電源投入またはリセット時のBキーの状態を読み取って、Bキー押下ならべーしっ君が現れるようにした。これをロジックICで組み立てるのは大変なので、PICマイコン12F629を使用。 BキーはキーマトリクスではX7,Y2となっており、押下判定のためにはY2をLに落とすパルスを発生させ、そのときのX7を読み取ればよい。システムのキースキャンと競合しないように、Y2出力はダイオードでオープンコレクタ(もどき)とし、リセット信号からの立ち上がりを検出したらCPUにウェイトをかけ、その隙にBキーを読み取ってEPROMの最上位アドレス線A14の論理を決定するプログラムを書いた。 アセンブラのソースはこちら。HEXファイルはこちら。Bキーは起動時の一瞬のみ検出するので、MSXロゴが出現するときの青画面に切り替わったら離してもOK。実際に切り替わったかは、BASICで、「CALL RUN」でエラーが出るかで判定できる。FMBIOSの場合は「CALL MUSIC」で判定可能。 |
後編へつづく 内蔵ソフトスイッチ「切」、Bキーを押さずに起動したときのスロットマップがこちら。スロット#3-3のページ1にFMBIOSが現れているのが分かるが、ページ2は内容不明のROM(内蔵ソフトの後半)のままだ。長くなってきたので、ここで一旦切るが、ここまでの改造でとりあえずDOS2やゲームでの使用が普通に行える状態にはなった。内蔵ソフトスイッチを「入」にすれば、FM音源はシステムから切り離されて、PSGサウンドでゲームもできた。
次回は3倍速改造と、DRAMの眠らせていた容量を使用可能とし、メモリ1024kB増設を行う。取り外して余ったDRAMであまり役に立たないVRAM増設もしてしまおう。
後編へつづく!
copyright (C) 2014 Niga.