SHARP MZ-700/1500 のエミュレータです。 以下の機能を実装しています。
- メイン RAM(64KB)
- VRAM
- PCG (MZ-1500)
- テープ
- QD(読み込みのみ)
- Beep
- PSG
- RAM ファイル (MZ-1R28)
速度は調整していませんが、単純にCPU の速度は実機より数割増し、描画は少し遅めなのでほぼトントンと思われます。
BML3 や FM-7 エミュレータと同じです
- GPIO0 VGA:H-SYNC
- GPIO1 VGA:V-SYNC
- GPIO2 VGA:Blue
- GPIO3 VGA:Red
- GPIO4 VGA:Green
- GPIO6 Audio
VGA RGB 信号との間には 220~270 ohm 程度の抵抗を直列に入れてください。 VGA、Audio の GND に Pico の GND を接続してください。
Pico の USB 端子に、OTG ケーブルなどを介して USB キーボードを接続します。 USB キーボードに存在しないキーは以下のように割り当てています。
- 英数 → Tab
- カナ → カタカナ・ひらがな
- GRAPH → ALT
また F12 でメニュー画面に移ります。 QD イメージや MZT イメージの操作ができます。
いつもの VGA 出力ですが、データ量節約のため 320x400 ドットで描画しています。 PCG の変更があるたびに、キャラクタ単位で書き換えているので、グラフィック命令の速度が遅いです。
いつもと違って、UART 入出力に対応していません。 LittleFS 上の MZT 形式のファイルをロード・セーブに用います。
QDF / MZT 形式のファイルの読み込みのみ対応しています。 littleFS 上においてください。
littleFS の作り方、イメージの書き込み方は、 https://mkusunoki.net/?p=8196 等を参考にしてください。 (SWD経由で書き込める装置が必要です)
いつものように純正ROM が必要です。
mznewrom.h
を mzrom.h
にコピーしたのち、
mzipl
mzext
mzfont
にそれぞれ、IPL、拡張 ROM、フォントのデータを入れてください。
なお実機の ROM がなくても MZ-700 として使えるように、互換 ROM & FONT を同梱しています。(拡張 ROM がないので、QD は使えません)
冒頭の #define USE_NEWMON
を有効にしてください。
MZ-NEWMON http://mzakd.cool.coocan.jp/mz-memories/mz700win.html##6
漢字 ROM は互換 FONT で動作確認していますが、辞書 ROM の動作は未テストです。
- 最初に起動する際に LittleFS のフォーマットで固まることがあります。(リセットでOK)
- 辞書ROMの動作確認をしていません。
- Pico SDK 2.0 ではうまく動かないかもしれません。
このエミュレータは以下のライブラリを使用しています。