歓迎光臨
"EmuZ-3500" - SHARP MZ-3500 emulator for Win32
"EmuZ-3500" is SHARP MZ-3500 emulator for Win32.
This software is under GNU GENERAL PUBLIC LICENSE.
This software requires Windows 2000/XP/Vista/7.
Download: Jump to Common Source Code Project
EmuZ-3500 謎WIPページ
MZシリーズに残された最後のフロンティア。
こんなとこ開拓しても誰も住み着かないと思いますけど(苦笑)
2016/1/10
漢字サーマルプリンタ MZ-1P17をサポートしました。
また、出力したデータをそのままバイナリファイルに出力するダミープリンタをサポートしました。
2015/10/6
漢字を表示する際のカラーコードを反転するよう修正しました。
賀正デモの和歌の表示色などが実機通りになっているかと思います。
ご指摘ありがとうございます>Oh!石様
正直、なんで漢字の時だけカラーコードが反転するのか疑問なんですが(苦笑)
回路図を追っかけたいところですが、入手できているサービスマニュアルは海外版ので、
漢字VRAM周りが記載されてないんですよねえ。
その他、グラフィックVRAMのサイズやキャラクタVRAMのデータ幅を修正しています。
2015/9/30
テキスト画面のアトリビュートで、垂直・水平線の表示をサポートしました。
BASICのTABLEコマンドで、罫線が表示されるようになっています。
サービスマニュアルだと、200ラインでは垂直・水平線は表示されないとあるのに対して、
BASICマニュアルだと表示されるような記述があるのが気になるところ。
現在の実装では、200ラインCRTでも、垂直・水平線を表示するようにしてあります。
テキストカラーに0が指定されている場合に、不透明な黒でなく白で表示するようにしました。
賀正デモで、一部の札で和歌が表示されない不具合が修正されています。
その他、モノクロ画面をサポートしています。
2015/9/29
中解像度およびグリーンモニタをサポートしました。
また、一部のディップスイッチをサポートしました。
小数点をピリオドにするかカンマにするか、
標準で大文字にするか小文字にするか、
中解像度モニタ時のフォントを、MZ-3500/PC-3200の何れにするか、を指定できます。
2015/9/26
漢字の描画処理を修正しました。
また、不透明な黒色での文字の描画をサポートしました。
また、Windowsのフォントから、漢字ROMを生成するツールを用意しました。
バイナリアーカイブ内のmz3500フォルダ内に入れてあります。
漢字ROM内の文字の並びが文字コード順でなくて、思いのほか面倒でした(苦笑)
後は中解像度やグリーンモニタをサポートしたら、一段落つくかと思います。
2015/9/25
グラフィック画面をサポートしました。
現状では、高解像度、カラーのみのサポートです。
将来的には、中解像度やグリーンモニタもサポートする予定です。
漢字ROMおよび漢字VRAMをサポートしました。
漢字ROMもCPUからアクセスできませんので、ROMライタで吸い出してください。
キーボード周りを修正しました。
PRO/OPのモードスイッチやCL/00キーをサポートした他、一部のキーアサインを変更しました。
HALTボタンについては、メニューから選択してください。
その他、バンク切り替えでME1/ME2信号をサポートしたり、処理を効率化したり、
メインCPUにM1ウェイトを入れたりしています。
2015/9/23-2
かなキーのサポートを忘れていました(苦笑)
取り急ぎ、再更新しておきます。
なお、キーコード全般については、こちらのブログを参考にしています。
2015/9/23
キーボードの実装が完了しましたのでリリースします。
2008年に開発を開始してから、7年以上掛かってしまいました。
ずっとMZ-3500に集中していた訳ではないですが、ちょっと時間掛け過ぎでしたね。
テキスト画面のスクロールが正しく動作していなかったのを修正しました。
GDCのSCROLLコマンドで指定するSLは、行数でなくラスタ数だったようです。
まだグラフィック画面の描画が未実装です。
次はこちらの作業に取り掛かります。
2015/9/21
またしても久しぶりに作業報告だけ。
CP/M 2.2がブートしなくて、ずっとディスク周りやメイン-サブCPUの通信周りを疑っていたんですが。
サービスマニュアルに載っている、IPLのフローチャートをよく読んだら、答えがありました。
I/O SYSTEM LOAD ERRORは、サブCPUのRAMサイズが不足しているときに出るエラーみたいですね。
サブCPUのRAMサイズを倍の16KBにしたら、あっさりブートしました。
サービスマニュアルやカタログだと、8KBの筈なんだけど、オプションで増設できたのかな?
こんなのもブートできるようになりました。
今度こそ、あとはキーボードだけ実装すればリリースできるかな。
2012/1/25
久しぶりに作業報告だけ。
ディスクを読み込んで、EOSがブートするようになりました。
後は、キーコードの調査をして、操作できるようになったらリリースですね。
MZ-3500は、FDCとしてuPD765Aを使用しています。
MZ-80B/2000/2500/2800系列はMB8877を使用しているのですが、MZ-3500/5500/6500は
やっぱり全然別系統のマシンなんだなと感じますね。
uPD765Aでは、操作対象となるドライブ番号を、コマンドのパラメータで指定しますが、
MZ-3500では、何故か外部I/Oによって操作対象のドライブを選択するようになっています。
そのため、従来はドライブを指定するパラメータは参照していなかあったのですが、
実際にはディスクの裏表を指定するビットだけは有効に機能していたようです。
2010/9/9
長らく放置プレイをかましてましたが、最近になってまた弄りはじめてます。
異なるCPUのFP-1100が動くようになったんだから、こっちもいけるだろう、というノリです(を
で、現状。
サブCPUが初期化されて、メインCPU側でフロッピーを読み込むところまで進むようになりました。
FDCにコマンドを送って、HALTしてFDCからのIRQを待っている処理があるのですが、
従来のFDCの実装では、コマンドを受信したらすぐ実行されて、すぐIRQが発生してしまっていたため、
FDCからのIRQを処理して、それからHALTに突入してしまっていたのが問題だったようです。
手持ちのディスクが上手くイメージ化できなくて、第1トラックがアンフォーマットな状態のため、
まだブートするには至っていませんが、近々再イメージ化して試してみます。
エラーメッセージもちゃんと表示できるようになりました。
こちらはGDCの問題で、WRITE DATAコマンドを実行した場合、従来は1バイトまたは2バイト受信したら、
コマンドを打ち切ってしまっていましたが、実際には更にデータを受け付けるようになっているようです。
この問題の修正は、QC-10上での動作と上手くすり合わせるのにちょっと苦労しました(苦笑)
あと、内部的にはサブCPUとキーボード間のシリアル通信I/Fも実装済みです。
現状では、その上でどんなデータがやりとりされているかの解析がまだできていないのですが、
エミュレータ上でOSがちゃんとブートして、キーボードを読んでくれる状態になったら、
その辺の解析も割りと簡単に進むんじゃないかなと思います。
という訳で、随分と長いこと放置プレー状態でしたが、年内にはリリース出来そうです。
2008/4/28
4/17頃から実装を始めましたが、ようやくビルドが通るようになりました。
メインCPUとサブCPUでI/Oが複雑に絡まっていて、どうにもケッタイな設計です。
一応メインCPU側からサブCPUを操作できるところまでは来ています。
初期画面が出ようとするところ。
SYSTEM LOADING
NO SYSTEM MEDIA
と表示しようとしてるんじゃないかと思います。
今回は、基板からROMを外してROMライタで吸い出しています。
サブCPU側のIPLはメインCPUから見えないため、ソフト的には難しそうです。