にがMSX

〜 FS-A1Fの改造 前編〜




FS-A1F
Panasonic FS-A1Fは思い入れのある機体で、自分にとって2代目のMSX。FDDが普及価格帯に下りてきた頃の製品で当時の定価は54800円。それまで初代FS-A1を使っていたので外付けFDDの購入という選択枝もあったが、PanasonicのFDDはカートリッジ一体型で、上に挿しても後ろに挿してもアンバランスな印象で、スロットが塞がるとかデカいACアダプタが2本挿しになる等デメリットが多いと感じられ、A1Fへの買い替えを選択した。

同時期にSONY HB-F1XDが発売されたが、これは「F1ツールディスク」というユーティリティがウリだった模様。一方、A1Fには漢字ROMが内蔵されており、これが購入の決め手になった。当時はSONY機の方がデザイン面で人気だったと記憶しているが、今となってはコンパクトデザインのA1Fが再評価されているように思う。FDDの前面レイアウトも自分は気に入っていた。

今回改造する機体は自分が高校生の時に秋葉原で購入したものだ。長らく実家の物置に眠らせていたが、整備ついでに改造してみようと引っ張り出してきた。


まずは補修

 A1Fで真っ先に補修が必要なのが、HICの面実装タイプの電解コンデンサ。HICはミツミのDAMCNX0039XTで、BABAXさんのblogに回路図が公開されている。+5V単一電源であるため、このHICを採用したFS-A1Mk2は±12Vを供給しなくても動作する。

ソニー機にも同じHICが採用されているものがあるが、ノーメンテのものは早急に交換が必要だろう。

 電解コンデンサの容量や耐圧は横に表記されていた。100uF/6.3Vが1個と10uF/16Vが2個。

一見して電解液の漏出やパターンの腐食は見えないが、手前のチップ抵抗等の半田が妙に曇っているのがお分かり頂けるだろうか。この半田を加熱すると特有な電解液の匂いが漂ってくる。電解液の漏出(揮発?)による半田表面の腐食は広範囲に及んでいる模様。

面実装のケミコンは右画像の@→A→Bの手順で除去する。@でアルミ缶のくびれ部分をニッパーで挟み頭をもぎ取るが、経験的に±の電極の並びと平行に刃を入れたほうがパターンの剥離が少ない(剥がれる時は剥がれる)。Aでアルミ缶の下部分とシーリングを除去、更に足をニッパーで切断すると黒いプラスチックの底板が除去されBの状態になる。

ちなみにバブルデッキのメンテ記事にも手法を書いているが、当時の画像は刃の入れ方が90度不適切と思われるので注意。
部品は適当なリードタイプのコンデンサで代用できるが、パターンは非常に剥離しやすいので、取り付けた部品を決して揺すらないように。中央のコンデンサはパターンの腐食が進行していたためCXA1245の足に直接半田付けした。

なお、多少のパターン腐食があっても、腐食層の下の銅箔は生きていて、デザインナイフなどで表層を削ることで再半田が可能になることも多い。

スイッチング電源
A1Fにはスイッチング電源が採用されている。後発のA1WX〜turboRに至るまでトランス電源だったので、A1FはパナMSXとしては先進的な設計に見える。

 左画像のネイビーブルーの松下ケミコンに付着した茶色い液体が漏出した電解液。既に足を伝って基板に広がり、パターンの腐食が始まっていた。ここは早急なメンテが必要だろう。全てのケミコンを除去した上で、電解液を洗浄し、新しいものに交換した。スイッチング電源には低ESRタイプの電解コンデンサを推奨

一方、メインボード側のケミコンは至急の交換が必要ではないものの、製造後年数を考慮すると交換しておくのがbetterだろう。






改造の方針
1 VDP交換
2 システムROM書き換え
3 F4レジスタ実装
4 S端子増設
5
2ドライブ化テスト
6
FM音源増設
7
メモリ増設(4MB以上)
 さて、いよいよ当サイトお約束の改造ネタに取り掛かる。今回は、海外でよく行われているMSX2+化改造を やってみることにした。MSX2とMSX2+の規格上の違いは、VDP(V9938/V9958)、システムROM(BASIC ver.2.0/漢字BASIC ver.3.0)、F4レジスタの有無。F4レジスタはIOの#F4h,bit7に存在し、リセット時のステータスを記録するもので、このレジスタが無いと起動ロゴが現れなかったりする。

A1Fは漢字ROM内蔵なので、VDP、システムROMを差し替えてF4レジスタを実装すれば完全にMSX2+規格を満たすことになる。誤解されがちだが、FDDとFM音源の有無はMSX2+とは無関係

 A1Fの映像端子は、RGB、コンポジットビデオ、RF出力があるが、ウチの自作モニタに接続するにはS端子が都合がよい。HICのビデオエンコーダにはCXA1145が採用されており、過去記事同様の手法でS端子増設が可能である。

 A1Fの内蔵FDDはベルト駆動で、定期的なメンテを要するが、ベルト交換してもあまり調子が良くならなかったためこれを換装し、GOTEC FDDエミュレータとの2ドライブ化を試してみた(実際の内蔵は後日)。

 メモリ増設は当サイトでは定番ネタであるが、既にS1985のマッパーレジスタを利用したSRAMによる512kB化改造では面白みを感じないので、DRAMで4MB化してみることにした。回路的にはFS-A1FXの改造で実証済みであるが、今回はZ80に下駄を履かせる手法で基板を作ることにした。同じ基板上にFM音源とF4レジスタを同居させれば改造を比較的容易に実現できる。

なお、本体改造は変態的嗜好でもあるので、普通の人には改造を行わずに最初からMSX2+購入することをお勧めする。



S端子増設

 Svideo_Schematic

まずはサクッとS端子から増設。手法は2014年にFS-A1FXで行ったものと同じ。回路図を再掲しておく。


コ ネクタを増設する際にはマウント方法が重要となる。なるべく筐体に穴を開けたくないので、今後使わないRFコンバータを撤去し、跡地に自作のマウンタを増設することにした。RFコンバータの寸法を計測したデータを元にKiCADのpcbnewで図面を作成。実寸プリントして厚紙で模型を作り、微調整を行った。


基板に直接半田付けできるように素材は真鍮板を使用。真鍮はアルミより固く、加工性は劣るが金切りハサミで切断可能。ハンドニブラでもどうにか切れる(刃は傷むかも)。

型紙通りに切り出してベンチバイスとハンマーを利用して曲げ加工を行った後、コネクタ穴を開けた。先に穴を開けてしまうと綺麗に曲げるのが難しくなる




組み立てたS端子ユニットがコチラ。この程度の回路は基板を起こすまでもないだろう。

トグルスイッチはRFコンバータのch切替スイッチの穴を利用できるように取り付けた。後のFDDの改造でA:/B:ドライブの入れ替えに利用する。
ミニDINコネクタは外側から挿し込み、内側からエポキシ接着剤で固めた。コネクタSHELLにはネジが切ってあるので強固な接合が得られる。基板は先に部品を実装してから、コネクタに半田付けした。回路を組み間違うと後から修正困難なので注意。

敢えて基板はマウンタに固定せず、宙に浮いた構造にしている。こうすることでコネクタ着脱時の応力はマウンタの歪みとワイヤーのたわみで吸収される。半田付け部位に負荷がかかりにくいため、後々半田割れを誘発する可能性は低い
電解コンデンサを交換し、S端子マウンタを取り付けたところ。

マウンタは動作確認後に電源基板に半田付けした。


ビデオアンプの電源は直接RFコンバータ用電源端子に配線。S映像信号とトグルスイッチの信号はピンヘッダコネクタで接続できるようにした。

S信号はビデオエンコーCXA1145から適当にワイヤーで引き出して接続。一応GNDとツイストペアにしてみたが、短めのシールド線を使う方がbetter
外装の加工は行っていないが、S端子の着脱には支障なし。トグルスイッチも操作性良好。


S映像信号はケーブルの引き回しに問題があるのか若干横方向に干渉ノイズのようなものが見られるが、文字の視認性は良好。コンポジットビデオだとボケボケで使ってられない。





VDPの換装
MSX2+のVDP V9958はV9938と共通点が多いため、数本の配線変更で換装が可能。海外では割と知られた手法のようだが、国内サイトではLeftyServeに関連記事がある。双方のデータシートでピンアサインを調べてみると、上図の矢印のピンが相違点になっていた。

V9938
V9958
A1F接続先 (改造前)
A1F接続先 (改造後)
4p
/VDS (O)
VRESET (I)
NC
VDD
8p
CPUCLOCK (O)
CPUCLOCK /VDS (O)
CPUCLOCK
CPUCLOCK
21p
VIDEO (O)
VDD /DAC (I)
NC
VDD
26p
/LPS (I)
/WAIT (O)
VDD
NC
27p
/LPD (I)
/HRESET (I)
VDD
VDD
各信号の解釈はLeftyServeをお読みいただくとして、作業としては4p,21pをVDDにジャンパ、26pをパターンカットということで良さそう。なお、機種によってV9938の上記信号の接続先が異なるので、実機で確認してから作業することをお勧めする。



A1Fのメインボードは両面スルーホール基板ランドやパターンが非常に繊細であるため改造難易度は高めである。この時代の他のMSXとは一線を画すると思ったほうが良い。

今回30Wコテとシュッポン吸い取り機の装備でV9938を引っこ抜いたのだが、スルーホールを数個痛めてしまった。一応導通はしているようだったが、念のために予防線を張っておいた。これは持論だが、改造で重要なのは失敗しないことよりもリカバーが適切に行えること。最低限のテクニックは必要だが、切れた線は繋げばよいだけのことで、自身の所有物の改造なら過度に気にする必要はないと思う。

VDP換装に伴う変更点だが、26pはVDDに接続されていたので、パターンカットで切り離しておいた。パターンカットしたくない場合や、先にVDPを載せてしまった場合は足パチで切り離してもOK。

V9958を実装し、パターン面で21p4pをジュンフロン線でVDDに接続した。これにてVDP換装は完了。



システムROMの置き換え
 A1Fのシステムソフトウエアは1Mb(128kB)28pのマスクROMに入っている。同容量のEPROMとはピン数が異なるので変換が必要であるが、各々のピンアサインは上図のように共通点が多い。EPROMのVpp/Pは書き込み時に使う信号なので無視して構わない。メインボードには32pのICソケットを実装することになるが、EPROMの1,2,31,32pの場所にスルーホールはないので、不使用の1,31pはソケットのピンを引っこ抜いておく2p(A16),32p(VDD)はソケットの足がメインボードに接触しないように加工しつつ、ワイヤーで当該パターンに接続。24p(/OE)もメインボードに接触させずにVDDに接続する。


元のROMがどのようにシステムにマッピングされているか調べるために、ROMライターで読んでみた。マスクROMはライターが非対応なのでEPROMとピン互換になるように足を加工した。

ちなみにこのROMをEPROMソケットに挿せば元のBIOSで動作可能。
A1F MSX2 システムROM
ROMの実アドレス
内容
容量
SLOT
PAGE
00000h-07FFFh BASIC MAIN
32kB #0
P0,P1
08000h-0BFFFh BASIC SUB
16kB #3-1 P0
0C000h-0FFFFh DISK ROM
16kB #3-2 P1
10000h-13FFFh 単漢字変換
16kB #3-1 P1
14000h-17FFFh
不明
16kB
#3-1
P2
18000h-1FFFFh 内蔵ソフト
32kB #3-3 P1,P2
マスクROMの内容とスロットマップを照合した結果がコチラ。

これを元にMSX2+実機から吸い出したシステムROMのバイナリを結合して新しいROMイメージを作成する。
改造用MSX2+ システムROM 
ROMの実アドレス
内容
容量
SLOT
PAGE
00000h-07FFFh BASIC MAIN (A1FX)
32kB #0
P0,P1
08000h-0BFFFh BASIC SUB (A1FX)
16kB #3-1 P0
0C000h-0FFFFh DISK ROM (A1FX)
16kB #3-2 P1
10000h-17FFFh 漢字BASIC (A1FX)
32kB #3-1 P1,P2
18000h-1BFFFh
FMBIOS (A1WX)
16kB
#3-3
P1
1C000h-1FFFFh 不使用 (FFh埋め)
32kB #3-3 P2
 DISKROMはFDCに依存するが、A1FA1FXTC8566F搭載機なので、バージョンの新しいA1FXのものに差し替えた(相違点は不明)。ハードウエア構成の異なるFDDのDISKROMは使えないので注意。

FMBIOSは内蔵ソフト領域を利用するので、以後内蔵ソフトは使えなくなる。元に戻したい場合は外したマスクROMを併設するか、2Mb以上のEPROMを使って切替られるようにすればよいだろう。なお、内蔵ソフトはDELキー押下でスキップできるが、ついつい忘れて鬱陶しいコックピットが起動してしまい、イラっとする人は内蔵ソフトにパッチを当てることをお勧めする。具体的にはROMの5D9Bh(ROM実アドレスで19D9Bh)のC8hをC0hに書き換える。これで通常は内蔵ソフトはスキップされ、逆にDEL起動でコックピットが起動する。



EPROMをソケットに実装。この時点ではF4レジスタは非実装であるが、松下のMSX2+BIOSではF4レジスタがなくても電源投入時のMSX2+起動ロゴは表示される(SONY系BIOSではソフトウエアリセットとみなされ、ロゴがスキップされる)

なお、メモリは1990年代に128kBに増設してある。たった64kBの追加だがDOS2が使えるメリットは大きかった。自分にとって初めての改造で、当時は装備も貧弱であったためスルーホールに埋まった半田を抜くのにやたら苦労した。安物の半田コテと吸い取り線でスルーホールに挑むのはやめておいた方がよい。




定番のTINY野郎さんのSLOT CHECKERによる表示。内蔵ソフトが削除されてFMBIOSに置き換わっている。

この時点ではFM音源(YM2413)を実装していないので音は出ない。
TINY SLOT CHEKERはROM版が提供されているので適当なゲーム基板を利用してEPROMを焼いておくと便利。ROM版はPage3のチェックもできるし、ディスクドライブの無い機体でもすぐに使える。






変態FDD
 何故か松下は変態仕様のFDDがお好みのようで、A1Fにも独特の26pピン仕様のドライブが採用されている。しかもメインボードから生えているフラットケーブルは青いラインが26p側になっているので騙されないように注意。
内蔵ドライブは松下製EME-212M。 オレンジ色のイジェクトボタンが特徴的だが、変態ピンアサインとベルトドライブが難点。ベルトの交換で一応は動作するようになったが、調子は良くないようだったのでこの際ドライブごと交換してしまうことにした。イジェクトボタンは独特な形状であるため、他のFDDには移植困難。

メインボードには今後の2ドライブ化対応のために、少し長めのすだれケーブルを再圧着した。

カバーになっている部分のツメを折らないように丁寧に外し、新しいケーブルをあてがってベンチバイスに挟んで締め付ければOK。

Panasonic

FS-A1F/FM

1 NC 2 READY
3 +5V 4 INDEX
5 +5V 6 DRIVE SELECT
7 +5V 8 NC
9 +5V 10 SIDE1 SELECT
11 +5V 12 MOTOR ON
13 +5V 14 DIRECTION
15 GND 16 STEP
17 GND 18 WRITE DATA
19 GND 20 WRITE GATE
21 GND 22 TRACK 00
23 GND 24 WRITE PROTECT
25 GND 26 READ DATA

RetroPC用FDD

YD-702B 6036B D

1 (GND) 2 (MODE SELECT)
3
4 (INU)
5 GND 6 (DRIVE SELECT3)
7 (+5V) 8 INDEX
9 (+5V) 10 DRIVE SELECT0
11 (+5V) 12 (DRIVE SELECT1)
13 GND 14 (DRIVE SELECT2)
15 GND 16 MOTOR ON
17 GND 18 DIRECTION
19 GND 20 STEP
21 GND 22 WRITE DATA
23 GND 24 WRITE GATE
25 GND 26 TRACK 00
27 GND 28 WRITE PROTECT
29 GND 30 READ DATA
31 GND 32 SIDE1 SELECT
33 GND 34 (READY)
ケーブル変換

変態26pをノーマル34pにケーブル上で変換した。一度26pまとまった状態でコネクタを圧着してバラし、適当にケーブルをほぐして再植毛するような感じの作業。この手法であればデイジーチェーンによる2ドライブ化も容易である。なお、換装にREADY信号のないAT互換機用FDDを流用する場合はコチラの記事を参照のこと。


 
ここまでの作業でFDD換装は完了。快調に読み書きできるようになった。ベルトレスFDDにしたので数年おきのメンテナンスが不要になるだろう。ちなみにこのFDD、未使用品ながらかなり古いもので、FDD挿入検知スイッチとライトプロテクトスイッチが劣化していたのでスイッチの分解メンテを必要とした。



FDCとゲートアレイ

(画像はBABAXさん作成のFS-A1WX回路図より抜粋・引用) 回路図ミラーファイル(Rev.04e)


過去記事でも触れていたが、A1FのFDCTC8566Fは2ドライブ対応の信号を出力している。厳密にはFDC(ハード)は4ドライブ、ディスクドライバ(ソフト)が2ドライブまでの対応っぽい。ディスクドライバの仕様については、ASCATさんのディスクテクガイに詳細が記されている。諸々試行した結果、A1Fの内蔵FDCに2つの物理FDDを接続すると以下の挙動を示すことが明らかになった。

  1. FDCのDS0側のFDDがプライマリ(A:)、DS1側がセカンダリ(B:)になる
  2. セカンダリFDDを実装すると自動的に2ドライブシミュレータが無効化される
  3. 物理FDDが1つでも2つでもCTRL起動するとB:ドライブが無効化される(NEXTORは逆にCTRL起動でB:有効化)
  4. メモリ使用量は物理FDDが1つでも2つでも変わらないが、CTRL起動してB:ドライブを無効化するとフリーエリアが増える
  5. ソフトウエアのBOOTができるのはプライマリFDDのみで、セカンダリFDDからは不能

(画像はBABAXさんのサイトより抜粋・引用)
 A1FではFDCのモーター制御信号MEN0は、一旦ゲートアレイ uPD65013GF37598pに入力され、99pから/MOTORON信号としてFDDに出力される。MEN0はデータの読み書き時のみアクティブになる信号らしく、このままFDDに入力すると細切れにモーターが停止と始動を繰り返すことになり、アクセス効率が非常に悪くなる。そのためゲートアレイを経由してハードウエア的にモーターOFFに数秒間のディレイをかけるようになっている。

この仕組みはA1F以降の松下製MSXで共通であるが、他社製品の中にはOFFディレイをソフトウエア的に行うディスクドライバも存在する模様。なお、ゲートアレイのディレイ回路は1系統しか存在しないので、リアルFDD x2ドライブ化の場合は、タイマーICなどを使ってセカンダリFDDのモーター信号にも適当なOFFディレイを掛けるべきだろう(なくてもアクセスは可能だが動作がもたつく)。




2ドライブ化テスト

2FDD化回路図

 以上を踏まえてリアルFDDとFDDエミュレータ(GOTEK)による2ドライブ化回路を考案した。マルチプレクサでDRIVE SELECT信号とMOTOR ON信号を入れ替えることで、どちらのドライブからもBOOT可能。なお、GOTEKはMOTOR ON信号を使わないので、MEN0,MEN1信号についてはリアルFDD用のディレイ入力切り替えの処理のみでOK。なお、上回路図のリアルFDD(YD-702B)は7,9,11pから電源供給する仕様のものを使っているが、一般的なFDDではこれらのピンはGNDになっているので注意


74HC157をCN10の近くに貼りつけ、DS0MEN0は適当なところでパターンカットして引き出した。

新しく生成したリアルFDD側のDRIVE SELECT信号(S0)は元のDS0(CN10 6p)に戻し、GOTEK側のS1は不使用だったCN10の8pを利用してFDDに接続。

切り替え信号はS端子の隣に設けたトグルスイッチに接続した。
DS1MEN1は直接TC8566Fからワイヤーで引き出す必要あり。ピッチ細かいので難易度はそれなり。

とりあえずリアルFDD+GOTEKの2ドライブとしてテスト。ガワに入れる手法は後で考えることにする。

それぞれA:、B:ドライブとして認識され、相互にファイルのコピーもできるし、背面スイッチにてBOOTドライブの入れ替えも可能となった。

なお、ドライブのアクセスLEDが非アクセス時にもうっすらと点灯してしまうが、これは常時FDCからDRIVESELECT信号に謎のパルスが出ているため。どうしても消灯したい場合はLEDにローパスフィルターを取り付けるなどの工夫が必要。




続く

 V9958のテストとして定番のLAYDOCK2を起動してみた。このソフトはBIOSのバージョンをチェックしていないらしく、MSX2でもV9958を載せるだけで自然画が表示されるとか。とりあえず前編はここまで。FM音源、メモリ、F4レジスタの増設は次回に持ち越し。

後編へ続く!

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

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




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

copyright (C) 2020 Niga.