KZ80の基板を組み合わせてMSX風に動かす場合の注意点とか手順をまとめてみたいと思います。
SBC8080 CPUルーズキット互換のKZ80-CPUBをつくったあと、YM2149(PSG)ボードを作って鳴らしてみたり、TMS9918ビデオボードを作ってみたりしているうちに「MSX風に動くんじゃ??」と思って作ってみたものです。
74HCシリーズを中心に構成したしバスバッファとか省略しても安定して動けばいいなぁぐらいのノリで作ってみたので、あたたかい目で見守っていただけると助かります。
必要な基板
MSX1のように動かす場合に必要なKZ80シリーズ基板は以下になります。すべてgithubで回路図、ガーバーデータをMITライセンスで公開していますので、ご自由にお使いください。
※バグがあったら直していただけると…
名前 | リビジョン | 説明 | githubリンク |
KZ80-CPUB | REV3 | Z80 CPUボード | https://github.com/kuninet/Z80_CPUB/releases/tag/3.0 |
KZ80-TMS9918A | REV1 | TMS9918ビデオボード | https://github.com/kuninet/KZ80-TMS9918A/releases/tag/1.0 |
KZ80-YM2149 | REV2.1 | PSG音源&ジョイスティックボード | https://github.com/kuninet/KZ80-YM2149/releases/tag/2.1 |
KZ80-MSXCTRG | REV2.1 | MSXカートリッジボード | https://github.com/kuninet/KZ80-MSXCTRG/releases/tag/2.1 |
KZ80-USBKBD | REV1 | USBキーボードI/Fボード | https://github.com/kuninet/KZ80-USBKBD/releases/tag/1.0 |
KZ80-MSXMEM | REV1 or REV2 | 偽MSX専用メモリーボード | https://github.com/kuninet/KZ80-MSXMEM/releases/tag/1.0 https://github.com/kuninet/KZ80-MSXMEM/releases/tag/2.0 |
基板ごとの部品組付け注意点
以下に各基板ごとの部品組付けの注意点を記載します。
KZ80-CPUB REV3 (Z80 CPUボード)
Z80が搭載されたCPUボードです。このCPUボードはSBC8080 CPUルーズキットとの互換を目指して作成しました。
以下のgithub wikiに部品表などが出てますので参考にしてください。
部品組付けの注意はそれほどありませんが、今回はMSX1互換を目指すため 水晶振動子は「3.579545MHz」にしてください。ゲームなどの速度に影響があります。
また、偽MSXとして動作させるにはREV3で搭載したZ80信号線端子(2×7 14P)が必要となります。
SBC8080ルーズキットを知っている方はご存じの通り、SBC8080ルーズキットはCPUボードとメモリー・シリアルボードに分かれいます。つまり、このKZ80-CPUBもメモリーやシリアルI/Oは搭載していません。よって単体での動作確認はできません。単体で動作確認したい場合は、SBC8080 SUBルーズキットや、KZ80-1MSRAM+KZ80-IOBなどと組み合わせて動作確認してください。
以下の記事はちょっと古いバージョンのZ80 CPUボードとSBC8080 SUBルーズキットを組み合わせてUniversal Monitorを動かしてみた記事です。ご参考まで。
KZ80-TM9918A (TMS9918Aビデオボード)
この基板はSBC8080バスにつながるTMS9918AビデオLSIを動かしてみようということで作成したボードです。VRAMとしてSRAMを搭載しています。
組付けについては以下のgithub wikiを参考にしてください。部品表なども出てます。
偽MSX1として動作させる場合は、I/Oアドレスジャンパを JP1,J5,J4を組み合わせて設定して $98に設定してください。
また、VSYNC割込み信号をSBC8080バスに接続する必要がありますので、JP2(割り込みジャンパ)は “SBC BUS”側に設定してください。
上記wikiにはZ80 CPUボードやメモリーボード・I/Oボードと組み合わせて動作確認したソフトウェアへのリンクも掲載していますので、基板単体での動作確認を実施したい場合は参考にしてください。
ちなみに、VRAMをDRAMで構成した版のTMS9918Aビデオボードも2種類githubで公開しています。興味のある方は是非。(以下のリポジトリに2種類の基板データを掲載しています。)
KZ80-YM2149 (PSG音源ボード)
この基板はSBC8080バスにつながるPSG音源 & MSX的ジョイスティックボードとして作成しました。
以下のgithub wikiに部品表などが出てますので参考にしてください。
偽MSX1として動作させる場合は、I/Oアドレスジャンパ を $A0 に設定してください。
この基板単体での動作確認としては、githubリポジトリの以下の場所にVGMデータ演奏プレーヤーとか、CP/M上で動く HiTech-Cで書いたジョイスティック動作確認プログラムのソースをUPしています。参考にしてください。
KZ80-MSXCTRG (MSXカートリッジボード)
いままでの基板はKZ80マイコンやSBC8080ルーズキットとつないで各LSIを動かしてみようということで作成した基板でしたが、これ以降の基板たちはMSX的に動かすために追加作成したものとなりますので、基板ごとの単体の動作確認はむつかしいものとなります。
MSXカートリッジボードはMSXカートリッジスロットを2個搭載し、かつ MSXメモリースロット信号とかZ80へのWAIT信号発生回路を持ったボードです。
部品表はCSVファイルを以下に置いてます。参考にしてください。
JP2のWAITジャンパは必ず短絡してください。短絡することでWAIT信号がSBC8080バスに乗ります。
短絡しないと「グラディウス2」などで画面が乱れるなどタイミングがズレるソフトがあります。
KZ80-USBKBD (USBキーボードI/Fボード)
この基板は @HRA! さん作の usb_keyboard_bridge_for_msxを搭載したボードであります。
部品表はCSVファイルを以下に置いてます。参考にしてください。
Raspberry Pi Picoを使っていて、Picoにファームを書き込む必要があります。下の方の「Raspberry Pi PocoにファームウェアをUSBキーボードI/Fの書き込み」を参照してください。
KZ80-MSXMEM (偽MSX専用メモリーボード)
この基板はKZ80-MSXCTRG(MSXカートリッジボード)と連携して動く専用メモリーボードです。この基板単体では動作しません。
過去のBLOG記事にある通り、KZ80-1MSRAMをパターンカットしても同じようなRAMボードは作成可能です。(パターンカットがめんどくさいですが…)
githubにはREV1(32k RAM)とREV2(64k RAM)の 2つのバージョンを掲載してまして、どちらでも動作可能です。REV2は「いちおう」64k RAM搭載となりますが、64kバイトRAMなのでよかったー!というソフトとはまだ巡り合っていません。
部品表はCSVファイルを以下に置いてます。参考にしてください。
各基板同士をつなぐ
基板同士を接続するためには上記のように結線していきます。SBC8080バス(40Pフラットケーブル)のほかにもジャンパ的に複数の接続が必要です。(基板同士も30mm程度のスペーサで階層構造にする必要があります。)
すべての基板をSBC8080バス(40Pフラットケーブル)で接続
すべての基板はSBC8080バス(40Pフラットケーブル)のコネクタを装備しています。これらを40Pフラットケーブルで接続してください。
フラットケーブル(リボンケーブル)やMIL40P圧着コネクタは 共立エレシッョプの通販などで入手可能です。万力やケーブル圧接工具で ケーブルを作ってください。
ままたAmazonなどでケーブル圧接工具が出てます。便利です。
MSXカートリッジボードと各基板との接続
MSX的に動かすための回路がMSXカートリッジボードに集まっているため、カートリッジボードとほかの各基板とのジャンパ的な接続が必要です。
MSXカートリッジボード⇔CPUボードの接続
MSXカートリッジボードとZ80 CPUボードの間は、14Pフラットケーブル(MILコネクタつき)で接続してください。SBC8080バスに足りないZ80専用の制御信号を持ってくるものです。
※秋月電子通販で手に入ります。→https://akizukidenshi.com/catalog/g/g102489/
MSXカートリッジボード⇔キーボードI/Fの接続
MSXカートリッジボードとキーボードI/Fボードの間も同様に、14Pフラットケーブル(MILコネクタつき)で接続してください。
※秋月電子通販で手に入ります。→https://akizukidenshi.com/catalog/g/g102489/
MSXではメモリーの基本スロット情報はキーボードI/Fでも使っている8255パラレルLSIが保持していますので、それをMSXカートリッジボードのスロット信号生成回路へ接続するために必要です。
MSXカートリッジボード⇔メモリーボードの接続
MSXカートリッジボードで生成した /SLT0(ROMセレクト) 信号と /SLT3(RAMセレクト) 信号をメモリーボードと接続する必要があります。
MSXカートリッジボード⇔PSG音源ボードの接続
「グラディウス2」など MSXカートリッジ内に音源をもったものがありまして、その音声信号をPSGの出力とミキシングしてあげないと音楽が寂しいものとなる場合があります。2PのXHケーブルなどで接続してください。(ちょっと抜けやすいですが、ジャンパケーブル メス-メスでもOKです。)
※最悪この配線は「音楽が寂しくなる」だけなので、接続しなくても問題はありません。(問題あるか…)
動作テスト
各基板をつないで動作させる前に、基板個別での動作確認とか Vcc(5V)とGNDが短絡していないかとか、基板ごとの状態を回路図と見比べてテスターなどで十分確認してください。
電源ラインがどこかで短絡していると大事なLSIがお釈迦になっちゃいますのでご注意ください。
さて動作テストのためには、以下のようにいろいろと事前準備が必要です。
Raspberry Pi PocoにファームウェアをUSBキーボードI/Fの書き込み
USBキーボードI/Fボードに搭載されているRaspberry Pi Picoに @HRA!さん作の usb_keyboard_bridge_for_msxのファームを “本機用にリビルドして” 書きこみしてください。
本機用にリビルドが必要です。ちょっとコツが必要なので、以下の私のBLOG記事を参考にしてください。
https://kuninet.org/2023/03/30/kz80-usbkbd%e7%94%a8-raspberrypi-pico%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%83%93%e3%83%ab%e3%83%89%e6%96%b9%e6%b3%95/
少々ソースを修正して、PCでビルドさえできればUSB接続でファイル転送するだけなのでけっこうお手軽に書き込みできます。
メモリーボードのROMにBIOSを書き込み
メモリーボードのROMにMSXとして動作するBIOSをフラッシュROM(28C256タイプ)へ書き込んでください。互換BIOSのC-BIOSは以下で入手可能です。
ROMへの書き込みにはROMライターが必要です。Amazonなどで入手できるTL866II PlusなどUSB接続タイプがお手軽でおすすめです。
偽MSX用メモリーボードでは28C256(フラッシュタイプ)のROMを使用します。27C256のようなUV EPROMではピン配置が異なりますので動きません。注意してください。
ゲームカートリッジなどソフトの準備
市販のMSXゲームカートリッジ、または オープンソースのMSXゲーム等々 MSXカートリッジに挿して動かしたいソフトを準備してください。
ちなみに、KZ80-MSXCTRGは+/-12Vを省略していますのでRS-232Cボードなど+/-12Vが必要なカートリッジは動作しません。ご注意ください。
電源は5V 6A程度のACアダプターが必要
6枚の基板にいろいろなLSIが載って動作しますので、本機はけっこう電気食います。秋月電子の5V 6Aとかのアダプター(センタープラス)を準備してください。
※5V 4Aでもギリギリ動きますが動作が不安定になることがありました。
画面出力はRCAジャック(黄色いやつ)がつながるディスプレー or TVへ
TMS9918Aビデオボードは昔懐かしい RCAジャックの映像出力(黄色いやつ)を装備しています。このケーブルが接続できるディスプレー or TVを準備してください。
音楽出力はPSGボードとアンプつきスピーカーをつないで
音楽などの出力はよくある3.5mmステレオプラグで、PSGボードとアンプつきスピーカーとかラジカセにつないでください。ディスプレーによってはアンプ内蔵で3.5mmステレオプラグの入力端子をもってるものもあります。
準備ができたらカートリッジを挿してCPUボードの電源ON!
すべての準備ができたら CPUボードの電源スイッチをONにしてください。BIOS起動画面が出て、ROMカセットのゲームなどが起動したらOKです!!
コメント