[今更誰得] MSX用のROMカートリッジを自作する #MSX

MegaFlashROM(以下MFR)を入手した中の人としてみれば、ROMのソフトを試すのはMFRに焼くだけなので至極簡単なのですが、いろいろ思うところ(目的)があり、シンプルなROMカートリッジを自作してみようと思い立ちました。

※ROMカートリッジを自作しようと思った理由や経緯は別エントリで書く予定です

もちろん、中の人はMFRのようにソフトもハードもお膳立てが出来上がっている環境以外でROMを焼いたこともなければ、カートリッジを自作したことも、もちろんありません。

ということで暗中模索状態で、道具や材料をそろえて試してみました。

用意するもの

  • EPROMライタ
  • EPROM
  • ROMカートリッジ用のPCB(基板)

EPROMライタ


もちろんこの世界については門外漢である中の人は、何も確証はなかったのですが、自分で調べた範囲では「TL866II」というタイプのEPROMライタ(正確にはEEPROMライタ)が対応するチップも多そうで良さそうかなと思い、こちらを買ってみました。
 


Amazonでこういうのを調べると、ブランドが違うけどほとんど同じだよね?っていう商品が出るわ出るわの金太郎飴状態なのですが、おそらく、仕入れている業者が違うだけで、中身は同じものがくるんじゃないだろうかと思います。

届いた箱はこんな感じで。Amazonで表記されていたブランド名はどこにも書いてありませんのでねw



ちなみに、中の人が購入したわけではないのですが、Twitterで教えていただいたこちら↓も価格的にはかなり安いので、チャレンジしてみる価値はあると思います。保証はしませんが、おそらくは中身は一緒と思いますので。

高速超小型汎用プログラマー [TL866II-PLUS] | aitendo



EPROM


ROMを焼き込むチップです。これも、全然中の人は知識がないのと、Amazonなどで気軽に手に入りそうなのが、27C512という512Kbit(64KB)のEPROMだったので、こちらをいくつか購入してみました。オークションなんかでも出回ってますので、それと比べるとちょっと高めですが、おそらく新品かそれに近いものなんじゃないかと思います。





ちなみにEPROMというのはUV(紫外線)で内容が消去できるもので、EEPROMというのは電気的に内容を消去でき、後者の方が利便性は高そうなので、後者が入手できるなら後者を購入するのが良いのかもしれません。

なんだか紫外線で内容が消去、と書くと、不意に野ざらしにしておいたら蛍光灯や直射日光であっという間に内容が消えるのでは?みたいな気がしてしまいますが、実際は蛍光灯とか直射日光に1~2時間さらしたくらいでは全然内容は消えないらしいです。そう考えると、やはり消したいときに消せるEEPROMの方がお手軽性は高いと言えそうです。

執筆当初、Primeで早く届くブツがUV EPROMのものしかなかったので、とりあえずUV EPROMのほうにしましたが、そのうちEEPROMも試してみたいですね。


ROMカートリッジ用のPCB(基板)


カートリッジスロットに挿す用の基盤です。こちらは、探してみると、ヤフオク、BOOTH、家電のケンちゃんなどで同人ハードがいくつか見つかります。中の人は最初ヤフオクで、raphnet.さんの基板を発見して落札しました。↓のツイートに出ているやつですね。



これで最初試してうまくいったので、買い増ししようと思ったのですが、このところヤフオクには出品がなく、ネットで検索したところraphnet.さんの公式サイトで直販もしていることがわかり、こちらで購入しました。

raphnet. - MSX用EPROM基板(64kB、自作・開発用)
https://www.raphnet-tech.com/products/msx_64k_rom_pcb/index_ja.php 

決済がドル建てなので、ちょっと不安を覚える方もいらっしゃると思うのですが、実は発送自体は国内からで、ゆうパックやゆうパケットで送られてきますので、比較的安心して買えるのではないかと思います。中の人はeBayでPayPalをよく使っているので、PayPalで決済して、数日後に届きました。土曜にオーダーしたので、少し時間がかかってしまったかもしれませんので、休日を挟まなければリードタイムはもっと短いかもしれません。


ROMカートリッジ作成の手順


(1) ROMイメージを用意する

中の人としては、まずMSXDISKのDISKROMの起動を手軽にやりたかったので、MSXDISKのDISKROMイメージを焼くことにしましたので、これを準備しました。

MSXDISKについてはあとでエントリを上げますのでそちらも御覧ください。


注意としては、MSXDISKのROMイメージは、4000H~7FFFHにあるので、27C512のような64KBのEPROMの場合は、焼き込む番地を間違わないようにする必要があります。


(2) EPROMライタ用のアプリケーションをPCにインストールする

購入したEPROMライタは機械のみで、EPROM操作のためのアプリケーションは同梱していませんでした。そのため、公式サイト?からダウンロードして用意します。

TL866 High Performance Universal Programmer
http://www.autoelectric.cn/en/tl866_main.html

↑ここのサイドバーの下の方に「T56/TL866II PlusApplication Software Download」というリンクがありますのでここからダウンロードします。

ダウンロードしたアプリをPCにインストールしておきます。

(3) EPROMライタをUSB接続し、ライタ用のアプリケーションを起動

Xgproというアプリケーションを起動します。




(4) 焼き込む対象のチップを選択

アプリのSelect ICというところにあるボタンをクリックして、チップを選択します。中の人が買ったのはFUJITSUのMBM27C512というEPROMチップなので、これを選択します。

(5) 焼き込むROMイメージをアプリにロード

[LOAD]ボタンをクリックし、ROMイメージをアプリケーションにロードします。
[Browse]ボタンでROMイメージを選択しますが、このとき重要なのが、繰り返しになりますが焼き込む番地を間違わないことです。

ソフト側で設定するのが心配な方は、意図的に0000H~3FFFHを00HやFFHで埋め、4000H以降にROMイメージが登場するようにしたROMイメージを作って使うという手もあります。

バイナリファイルの編集は以下のソフトがおすすめです。

「Binary Editor BZ」色分け表示のできる多機能バイナリーエディターのオープンソース版 - 窓の杜
https://forest.watch.impress.co.jp/library/software/binaryeditbz/


設定から調整する場合は、[TO Buffer Start Address(HEX):]のところに、書き込みをスタートしたい番地(今回の場合は04000と入力)して、[OK]ボタンをクリックします。


メイン画面に戻ると、4000H以降に焼き込み用のROMイメージがロードされたことが分かります。


(6) EPROMをライタにセット

EPROMを向きに気をつけながら(切り欠きになっている方をよく見て向きを合わせます)セットします。レバーを下げると固定されます。


(7) 焼き込み開始

[PROG.]ボタンをクリックします。情報を確認して、[Program]ボタンをクリックします。
数秒待つと焼き込みが終わります。




(8) EPROMを基板に半田付けする

EPROMを基板に半田付けします。raphnet.さんの基板にもEPROMの切り欠きマークがあるので、向きを間違わないようにセットして、半田付けしてください。

一つの基板でEPROMを交換して使いたい方は、ROMソケットを半田付けしてください。

ただし、基板→ソケット→EPROMと重なると、そこそこの厚みになってしまい、カートリッジケースには収まらなくなりますので注意してください。裸運用の場合は問題ないのですが、中の人の手元にあるCX7M/128のスロットでも厚さは結構ギリギリでした。もちろん、無理矢理しないと刺さらないないというほどギリギリではないので、利用には問題ないと思います。

本当は、TL866IIに付いているような、レバーで固定できるようなタイプのソケットが付けられれば、さらにお手軽なのですがさすがにそのソケットは厚みがありすぎてカートリッジスロットにさすことは全く出来ません。残念。

スロット延長基板とかがほしくなりますね。


(9) 出来上がったカートリッジをMSXのスロットに挿して起動

中の人が焼いたMSXDISKのDISKROMの場合は、ジョイスティックポートを経由してPCのディスクイメージを読みに行きます。

CX5F/YIS503/HC-6などのRAMがスロット0にあるタイプのMSXは、MSXDISKを利用するときに拡張RAMを64KB挿していても、MSXDISKのデフォルトの判定ロジックで認識に失敗するので、中の人が手抜きカスタムした(スロット1にRAM64KBがある前提に決め打ちするw)専用のDISKROMを用意する必要がありますが、ROMカートリッジ化しておけば起動も簡単で、重宝すると思います。

【ダウンロード】
"スロット1に64KB増設RAMを搭載した"ヤマハCX5F/YIS503用のDISK.ROM 

あ、当然ですが焼くROMはMSXDISKのDISKROMじゃなくても、手持ちのアプリケーションを吸い出したROMファイルでもOKです。

ただし、メガROMは今回の道具では焼けない(それ用の基板やEPROMがあれば出来たりするのかもしれませんが、今回の基板は多分対応していないですし、中の人には良くわかりませんww)ので、64KB以下のROMを焼く用途に使ってください。

きっと、昔はEPROMライタもEPROMももっと高価だったんじゃないかと思いますが、近頃は比較的安価で、しかも全て通販で入手できるようになって、良い時代ですね。

中の人はやったことないですが、MSXは8000H以降に所定のルールで焼けば、BASICのプログラムもROM化できるらしいです。BASICアプリを作って楽しんでいる方はそういうチャレンジも面白そうですね。

現場からは以上です。


コメント