******************************************************
    Emulator SHARP MZ-80B/80B2/2000/2200 for Win32
                (Not support Windows CE)
                   Plug In Module

                    [MZ_1E18.DLL]

      S.Tsuneoka (tsuneoka@kxa.biglobe.ne.jp)
      http://www7a.biglobe.ne.jp/~tsuneoka/
******************************************************
[Board Infomation]
 Name      : MZ-1E18
 Maker     : SHARP Corp.
 Comment   : Quick Disk I/F Card
 Port      : $D0 - $D3 , $F8 - $F9
 Dialog    : Yes
 Interrupt : Not Use

[Need EmuZ-2000 Version]
  EmuZ-2000 TF-Edition Version 0.8
  EmuZ-2000 Version 0.430 (要リコンパイル)　未確認

[This Dll Make/Use File]
 特になし

　このDLLは、EmuZ-2000のプラグイン・モジュールです。

　謝辞
　TF-Editionに、EmuZ-2000の拡張ボード機能とのインタフェース互換プラグイン機能を
　実装することで実現できたQDインタフェースプラグインです。
　TF-Editionのプラグインの実装について、福井さんのご協力を得ることができたことで、
　完成させることができました。この場を借りて、お礼申し上げます。


[実機との違い]

1)書き込み、ディスクフォーマットはサポートしていません。
2)OBJ,BTXのみをサポートします。
3)MZT形式のファイルを、QuickDiskとみなして読み込みを行います。
　複数のファイルを扱うには、MZTファイルを連結したQ20形式ファイル(*)
　を作成する必要があります。
4)Z80SIOのコマンドを完全にエミュレートしているわけではありません。
　IPLやBASICが行う制御と異なる手順でI/Oを行うと正しく動作しない場合があります。

(*) Q20ファイルの作成方法は、後述しています。

[ボードの使用方法]

MZ-1E18のIPLROMまたはQuickDiskBASICから、MZT形式ファイルおよびQ20形式ファイルの
読み込みを、可能にします。

　ファイル構成
　　mz_1e18.dll　(プラグインDLL)
　　mz_1e18.bin　(MZ-1E18IPLROMファイル：オプション、TF-Editionでサポート)
　　mz20ipl.bin　(MZ-2000IPLROMファイル：オプション、TF-Editionでサポート)

ファイルは、プラグインの設定画面から、[Open]ボタンを押下して、
ファイルを選択してください。
MZ-1E18が持っているIPLROMはブートローダーのため、IPLROMは必須ではありません。
QuiskDiskBASICのMZTをドラッグ＆ドロップして起動することで、BASIC内での
QuickDiskの読み込みが可能になります。

IPLからファイルを読み込みには、実機(MZ-2000)のIPLROMとMZ-1E18のROMが
必要になります。IPLからQuickDiskのIPLを起動させるには、EmuZ-2000TFEdition
からIPLを起動した直後に、"/"キーを押下します。

なお、QuickDiskは、MZ-80B/B2ではサポートしていませんので、
本プラグインもMZ-80B/B2モードでは使用できません。

■MZ-1E18のIPLROMデータ吸い出しについて

MZ-2000のIPLROMは、ROMライタを用いて採取する必要がありますが、
MZ-1E18のIPLROMは、プログラムで取得することが可能です。

1)MZ-1E18を接続した実機で以下のプログラムを実行し、テープにSAVEします。

10 D=40960:REM $A000
20 FOR H=0 TO 31
30 FOR L=0 TO 255
40 OUT@ $F8,H
50 OUT@ $F9,L
60 INP@ $F9,A
70 POKE D,A
80 D=D+1
90 NEXT L
100 NEXT H
RUN
MON
*S
FILE NAME:MZ-1E18
S-ADR.$A000
E-ADR.$BFFF
J-ADR.$A000
でSAVEします。

2)MZ-1E18.WAVを作成する

　カセットテープの音声をWAVファイル化します。

3)IPLROMのバイナリ化

http://www7a.biglobe.ne.jp/~tsuneoka/
で公開しているLoad.exe(*)を利用する場合、
>load -a -F MZ-1E18
を実行すると、MZ-1E18_head.dat, MZ-1E18_body.dat, MZ-1E18.mztが生成されます。
(*)Load.exeにGUIを追加したMZTapeLoad.exeもあります。

MZ-1E18_body.datが、ROMの本体です。
MZ-1E18_body.datを、mz_1e18.binにリネームすると、本プラグインで使用できる
ROMファイルが出来上がります。
mz_1e18.binは、EmuZ2000TF.exeと同じディレクトリに配置する必要があります。

■Q20ファイルの作成方法

Q20ファイルは、MZTファイルをバイナリ連結したファイルを指します。
Q20ファイルは、Windows上でコマンドプロンプトを起動し、
COPYコマンドでMZTファイルを連結することで簡単に作成できます。

実機のQDに配置できる最大ファイル数はわかりませんが、概算で(64*1024)/70ファイル
くらい登録ができると考えられます。本プラグインは、最大1024ファイルまで、
登録ができるように設計してあります。QDの記憶容量は最大64KBのため、
1024ファイルを超えることはありません。
ただし、ガードはかけていませんので、チャレンジはしないでください。


<Q20ファイルの作成例>
copy /b MZ-5Z007V1.0B.mzt+AUTO_RUN.mzt MZ-5Z007V1.0B.q20

■ベースアドレスは、$D0です。

　各I/Oアドレスは以下のように定義されています。
　F8-F9ポートは、EmuZ-2000TFEditionでIPLROMを使用する場合のみ使用します。
　mz_1e18.binファイルが存在するときに、ポートをアサインしてIPLを起動できる
　状態にします。

　　ポートアドレス　出力 (OUT)　　　　　　　　　入力 (IN) 

　　　　D0h 　　　　Z80SIOデータポートA　　　　　ファイルデータ出力
　　　　D1h 　　　　Z80SIOデータポートB
　　　　D2h 　　　　Z80SIOコントロールポートA　　制御データ
　　　　D3h 　　　　Z80SIOコントロールポートB　　制御データ

　　　　F8h 　　　　アドレス取得
　　　　F9h 　　　　アドレス取得　　　　　　　　　IPLROMコード出力


[制限事項]

1)ファイルの保存はサポートしていません。
2)BSD(シーケンシャルファイル)はサポートしていません。
3)QuiskDiskメディアのフォーマットはサポートしていません。
4)EmuZ-2000は、不連続なPortを持つボードをサポートしていないため
　MZ-1E18のIPLROMを用いたIPL起動はサポートしていません。
5)MZ-1R12プラグインとI/Oアドレスが重なります。
　併用する場合は、IPLROMを使用しない(mz_1e18.binファイルを配置しない)か、
　MZ-1R12のベースアドレスを変更する必要があります。


[修正履歴]
ver 0.01 2010/4/24
・新規作成


−以上
