レトロマシンのメンテ~その2
- 2021/10/06 12:53
- カテゴリー:マニアックなおはなし, make:
実家から持ち帰ってきたものをチェックするシリーズ,今回はソードのM5jrです。
このM5jr,大好きなマシンなのでもとより手放す気などないのですが,実は借り物ですので勝手に捨てる訳にもいきません。その割には粗末に扱っていたことがわかって,もっと大事にすべきだったと後悔しています。
最初に残念なのは,改造されていることでした。それもくだらない改造です。もともとM5シリーズの映像出力はなんとRF出力のみという割り切った仕様になっていて,コンポジットビデオ出力さえもありません。
20年前までなら,いかなるテレビでも接続可能だったM5ですが,今となっては接続可能なテレビが皆無です。一部で需要のあるRGB接続などとは違い,もうまったく需要のない接続方法ですので,お金を出せば解決するという甘いものでもありません。
30年前,当時の私が考えたこともこれに近く,M5jrにコンポジットビデオ出力端子を増設したのでした。今見てみるとなかなか真面目に作ってあり,トランジスタ1つを使ってビデオアンプを用意してありました。
ところがこれにも穴があり,音声をどうするかという問題が残ります。当時の私はオーディ出力端子を設けることをせず,PC-6001と同じく本体にスピーカーを搭載するという荒技に出ました。
これが結構手抜きで,LM386のアンプをちゃっちゃと組み立てて内蔵し,カートリッジスロットの右側に6mm程の穴を9つ開けてスピーカーを裏側から貼り付けるという,まさに電子工作レベルの改造です。あげく,音量調整用のリュームは,トランジスタラジオによく見られたスイッチ付きのボリュームのジャンク品を流用,スイッチ部を壊して無効化し,筐体の手前に細い角穴を開けて,ここに瞬間接着剤で固定するというやっつけ仕事で逃げています。
ボリュームは接着が外れてグラグラ,スピーカーの穴は右に左に曲がっているという体たらくで,これは見るのも辛いです,まずはこれから解決です。
とはいうものの,開いた穴を塞ぐのは上手くいかないので,スピーカーについては45mmほどの大穴をあけ,表側からスピーカーを接着してしまいます。スピーカーには黒いネットを貼り付ければ,とりあえず素人臭さはなくなります。
ボリュームは他にいい方法がなかったので接着方法を見直して再固定。これでなんとか形になりました。
さて,次はソフトですね。手持ちのカートリッジはBASIC-Gのみしかありませんので出来る事は限られます。テープ版のソフトは5本ほどあるんですが・・・
最初にBASIC-Gのマニュアルを見ようとしたのですが,どこにもありません。それもそのはず,実家で見た記憶もないのです。これはまさかの紛失です。
すでにスキャンし廃棄している可能性も考えましたが,肝心のPDFが見当たりませんので,結局BASIC-Gのマニュアルを見つけることは出来ませんでした。トホホ・・・
ここでもう心折れて片付けても良かったのですが,ふと思いついたのはBASIC-GのRAM不足の問題です。M5は本体にRAMをほとんど持たず,ユーザーエリアはカートリッジに持つ事になっています。BASIC-Gも他例に漏れず,わずか4kBのRAMがカートリッジに内蔵されています。
いかに良く出来たBASIC,いかに整数型BASICとはいえ,4kBではあまりに少なく,80年代前半の低価格マシンがRAMを削ることで成り立っていたことをここでも痛感するわけですが,一応純正でRAMを32kBまで増設出来るので,改造によってメモリを不足すことは可能です。
メモリマップを確認すると,さすがにシンプルで定評のあるM5で,RAMは8000HからFFFFHまでの32kBが割り当てられています。A15を反転するだけで256kBiteのSRAMのCSを作る事が出来そうです。
カートリッジ内部を見てみると,16kbitのSRAMが2個入っています。ピン数が違うとは言え,このパターンを上手く活用すれば256kbitのSRAMに置き換えることが簡単にできそうです。
そうなると今度はROMです。BASIC-Gは2764が2個搭載されていて,2000Hから3FFFHまでと,4000Hから5FFFHまでにそれぞれ割り当てられています。それぞれのCSは本体側のカスタムICが作っているのでカートリッジ側はただ繋がっているだけです。
なら,このCSをORして27128や27256のCSに突っ込んでやればBASIC-Gを1つのEP-ROMに格納できそうですよね。しかも,空いたスペースにゲームなりBASIC-Iなりを詰め込んでおけば,便利カートリッジも実現しそうです。
いやいや,BASIC-Fもこの際だから搭載しよう,M5が実数型BASICで動くなんて面白いじゃないかと欲張ってみたのですが,結論から言うと失敗しました。
まず,BASIC-Fは20kBの容量があり,上記のROMエリアに続いて6000Hから6FFFHまでROMをマッピングしないといけないのです。このエリアのCSもカスタムICで作られていて,カートリッジスロットまでは来ているのですが,悪いことにカートリッジ基盤にはパターンがなく,信号を利用出来ません。
ならば真面目のデコーダを組むかと考えてみたのですが,どうしても規模が大きくなりすぎ,これも面倒くさくなってやめました。だって,2000Hから6FFFHまでイメージなしのフルデコードですよ,面倒くさいですやん。
そこでBASIC-Gをとりあえず1つのROMに格納する実験を繰り返したのですが,どうも配線ミスが解決しないみたいで,なかなかきちんと起動しません。実はROMをソケットにした時点でカートリッジのフタが閉まらなくなってしまうので,無理にこの改造を行うモチベーションもなくなってしまっていたのですが,このままでは基板も壊すかもと勇気ある撤退を決断,もとの2764を2つ,直にハンダ付けする元の状態に戻しました。
ROMに手を入れる前にRAMを32kBに改造して動作確認まで終わっていたのですが,ROMの改造に手こずってしまったことで,RAMの動作も怪しくなってしまっては本末転倒です。とりあえず1つ戻って2764で動かして見ると問題ないので一安心です。
これでフタがきちんと閉まる32kBのRAMを持つBASIC-Gになったのでこれでよしとしたのですが,ちょっとゲームで遊んで見たくなったので,SRAMの空きパターンにソケットをくっつけ,ここにもう1つ8kBのROMを搭載出来るようにしておきました。
ゲームで遊ぶときにはいちいち殻割りし,ROMを焼いてここに差し込み,スイッチを切り替えて裸の基板で遊ぶことになりますが,ハンダ付けもいらないレベルですので,ここまでやっておけばいろいろ試せるでしょう。
一応数本のゲームと,BASIC-Iまでは正常に起動し切り替える事がでできることを確認できて,ここでM5jrは終了です。
今回いろいろ触って見て,M5っていいマシンだなあと思いました。シンプルで「あたりまえ」のハードウェア,モード2割り込みの実装とBASICからの利用で同時並行で処理を記述出来る利便性,整数型BASICによる軽快な動き,小さくかわいらしい筐体に意外に使いやすいキーボードと,復刻して欲しいくらいです。
MSXがこのコンセプトでどこかのメーカーから作られていれば,それはそれでヒットしたんじゃないかと思うのですが,家電メーカーや重電メーカーのマシンはごっつく,力関係上それが販売の主流だった当時は,MSXに軽快さを求めるのは難しかったように思います。
そういえば,カシオあたりがかわいらしいMSXを作っていましたが,やはり搭載RAMの小ささで躓いてしまいました。これはデザインや小ささで買ってもらえる製品を目指したというより,安いことを真っ先にした結果でしょう。
さて,あとは出来上がったM5jrでカセット版のゲームを遊んでおしまいです。残念ながらマニュアルが見当たらないのでBASIC-Gを詳しく使ってみることはしません。