MZ2000_SD を活用しよう

■MZ2000_SDについて
MZ2000_SDはyanataka(@yanatoku)さんが作成したMZ-80B、MZ-2000、MZ-2200でマイクロSDカードからのアプリケーション起動、BASICなどのアプリケーションからマイクロSDカードへのロード、セーブを実現するものです。
MZ2000_SDは同人基板なので部品が実装されておらず自分で部品を集めて半田付けする必要があります。
BEEPさんで入手できます。
MZ-2000_SD Rev2.3基板+MZ-2000 EXT-BOARD+GAL22V10D セット
MZ-2000_SD Rev3.3基板+MZ-80B EXT-BOARD セット
MZ-2000_SD Rev4.3基板
詳しい説明はyanatakaさんのGitHubを参照。

■レビジョン
Rev2.3、Rev3.3、Rev4.3と何種類かのレビジョンがありますが機能に差はありません。

レビジョン 説明
Rev2.3 MZからケーブルを引き出して基板を外に取り付けるタイプ。部品にGALが使われている。
Rev3.3 形はRev2.3と同じでGALが論理ICに置き換わっている。SDカードスロットを手元に持ってきたい場合はこちらがお勧めです。
Rev4.3 MZ本体の拡張I/Oポートに直接差し込むタイプ。拡張I/OポートがあるMZならこちらがお勧めです。
MZ-2200以外の機種は拡張I/Oポートは別売りになっており標準状態では搭載されていません。
拡張I/Oポートは拡張I/Oユニット、EXPANSION UNITなどいろいろな呼び方があるようですがMZ-80BはMZ-8BK、MZ-2000はMZ-1U01、MZ-2500はMZ-1U09の事を指します。
私のMZ-2500は1台は拡張I/Oポートを搭載しておりRev4.3を接続していますがもう1台のMZ-2500は拡張I/Oポートを搭載しておらずそのままでは接続できませんでした。
yanatakaさんのGitHubにある「MZ-2500の拡張ユニットが無く、本体内部のコネクタに接続する場合」を教えてもらい接続しました。
MZ-80B/2000などについても接続方法が書いてありますので参照してください。


Rev2.3。本体基板と接続基板に分かれていてフラットケーブルで接続して使う。Arduinoを取り外しできるようにしておけばよかった…。

Rev4.3。本体基板を直接MZに接続して使う。Rev2.3の反省を踏まえてArduinoを取り外しできるようにした。

■MZ2000_SDの仕様
対応機種 MZ-80B/MZ-2000/MZ-2200
MZ-2500(80B/2000モードのみ使用可能、接続していると2500モードではRS-232Cとマウスが使えなくなる)
対応マイクロSDカード マイクロSDカードはFAT32でフォーマットされている必要がある。
WindowsでFAT32のフォーマットができるのは16GB以下のもののみ。
それ以上の大きさのものはなにかしらフォーマットツールが必要。
対応データ MZはルートフォルダのMZTファイルを読み書きする事ができる。
ファイル名は「.MZT」を除いて32文字まで、ただし半角カタカナ、及び一部の記号は使えない。
マイクロSDカードスロット AE-microSD-LLCNVなど。
マイクロSDカードを差し込むことができる。
Arduino Pro Mini
Atmega328版を使用 168版は不可。A4、A5ピンも使っている。
また5Vの駆動のものじゃないと動作しない。
プログラムはMZ-80K_SDと同じものをArduino IDEで書き込む必要がある。
起動用ROM
27256/29C256/27512/27C512など
「/」を押しながら起動したときに読み込まれるプログラムが入っている。
容量は32KB~64KB (64KBの場合は前半後半32KBをスイッチで切り替え)
通常はSDカードアクセスに対応したモニタをROMライタで書き込みます。
最新版では直接モニタをROMから起動せずにSDカードから起動する事ができるようになっています。
(注)初期ロットのMZ-2511/2521ではROMから8KBまでのプログラムしか起動できません。
そのためROMに書き込むプログラムは8KB以内に抑える必要があります。
I/OポートF8h~F9hが割り当てられている。
F8hに上位アドレス、F9hに下位アドレスを書き込みF9hを読み込む。
上位アドレスが80h以上の時のみROMがイネーブルになり、指定するアドレス8000hでROMの0000hが読み出せます。
8255 MZ本体とArduinoを接続する橋渡しをしている。I/OポートA0h~A3hが割り当てられている。
■MZ2000_SDのI/Oポート
ポート番号(16進数) ポート番号(10進数) 方向 説明
A0h 160 出力 送信データ(下位4ビット)
A1h 161 入力 受信データ(8ビット)
A2h 162 出力 b3 未使用
b2 FLG ハンドシェーク用
 0: MZは処理未完了
 1: MZは処理完了
b1 未使用
b0 未使用
A2h 162 入力 b7 CHK ハンドシェーク用
 0: mz2000_sdは処理未完了
 1: mz2000_sdは処理完了
b6 未使用
b5 未使用
b4 未使用
A3h 163 出力 8255 コントロールレジスタ
設定は8Ah (10001010b)
b7 1: 設定, 0: ビット単位の書き込み
b6 0 Reserved
b5 0 Reserved
b4 Aポート(A2h)設定 1:入力, 0:出力
b3 Cポート(A0h)上位4ビット設定 1:入力, 0:出力
b2 0 Reserved
b1 Bポート(A1h)設定 1:入力, 0:出力
b0 Cポート(A0h)下位4ビット設定 1:入力, 0:出力
F8h 248 出力 上位アドレス
F9h 249 入力 上位アドレスが80h以上の時のみROMがイネーブルになり、指定するアドレス8000hでROMの0000hが読み出せます
F9h 249 出力 下位アドレス
戻る