|
MZTファイルとは |
|
MZTファイルは、MZ-80/MZ-700/MZ-1500、MZ-80B/MZ-2000/MZ-2200エミュレータで使用するカセットテープのソフトのイメージファイルです。
このページはMZ-700、MZ-1500のMZTファイルの仕様についての覚書です。
MZのカセットテープには基本1ファイルにつき、1つのインフォメーションブロックと1つのデータブロックが記録されています。インフォメーションブロックの内容がMZTファイルのヘッダで(128バイト)、データブロックがデータ(本体データ)です。(チェックサムとかも記録されていますがここでは省略)
1つのヘッダに1つの本体データを結合したものが基本的なMZTファイルです。
カセットテープのイメージファイルなのですが、MZ-1500エミュレータではQDのイメージファイルとしても使用します。
|
|
|
|
MZTファイルのヘッダの例 |
|
|
|
・00000000h がアトリビュート(ファイルモード)です。下の表を参照してください。
・00000001h〜00000011hがファイル名です。
エンドマークが0DHで、空きは20Hで埋まっています。
ちなみに00Hや0DHとかゴミデータで埋まっているファイルもあるみたいですが、問題は無いみたいです。
・00000012h、00000013hがファイルサイズ
・00000014h、00000015hがファイル先頭アドレス
・00000016h、00000017hが実行アドレス
となっています。
ファイルサイズ、先頭アドレス、実行アドレスは上位と下位が逆に入っています。
このファイルの場合、ファイルサイズが6C80H、先頭アドレスが1200H、実行アドレスが7E0FHです。
・あと、MZ-700WINでは空き領域の00000040h以降をパッチデータ領域として利用しています。
MZ-700WIN上でBASICでのファイルアクセスに必要です。
(MZ-700WIN0.53同梱のmz700win_jp.txt、tapeload_jp.txt参照)
サンプル画像はMZ-700のS-BASICのもので、こんな感じになります。
(パッチの仕様はMZ-700WIN0.53同梱のMZ700FAQ.HTMを確認)
|
|
アトリビュート(ファイルモード) |
|
ファイルの種類 |
QD/TAPE |
ヘッダの1バイト目の内容 |
概要 |
OBJファイル |
QD |
01 |
マシン語のファイル(Object File) |
TAPE |
BTXファイル |
QD |
02 |
BASICのファイル(BASIC Text File)
QDのファイルをWAVファイル経由で変換した時は、05になっている場合02に修正する必要がある。 |
TAPE
(5Z-001、S-BASIC)
|
05 |
TAPE
(Hu-BASIC、SP-5030) |
02 |
BSDファイル |
QD |
03 |
BASIC シーケンシャルDATA。
WOPEN命令で書き込んだデータやBASICのアスキーセーブもこの形式。
EmuZ-1500のみ対応。ただし、ヘッダに通常は無いファイルサイズ情報が必要 |
TAPE |
04 |
TAPEのBSDファイルは変換が難しい上、エミュレータが対応していない |
・この表以外にもファイルの種類はあります。
・整数型ベーシックコンパイラー for MZ-80K/C,
MZ-1200のコンパイル前ソースファイルは10になっています。
|
|
MZ-1500のQDのBSDファイルについて |
|
BSDファイルはインフォメーションブロックと複数のデータブロックでできています。つまり、ヘッダ+データ+データ・・
EmuZ-1500ではヘッダに通常は無いファイルサイズ情報を追加することでQDのMZTファイルに対応しています。
1つ1つののデータブロックのサイズが0402H固定なのでファイルサイズ情報は0402Hの倍数となります。
|
|
MZ-700のHu-BASICのファイルについて |
|
Hu-BASICのファイルのヘッダの例です。ファイルネーム情報のみ他と違っています。
ファイルネームは13文字で、エンドマークは無く、空きは必ず20Hで埋まっています。
ファイルネームの後に任意の3文字の拡張子を付けることが可能な仕様みたいですが(3バイト)、これは隠し機能で使われていないと思われ、更にもう1バイト、これも隠し機能のパスワード情報で、全て20Hで埋まっています。
|
|
連結MZTファイルをQDのイメージとして扱う |
|
QDはディスクですので、複数のファイルを記録できます。MZTファイルを単純に連結すれば、複数のファイルが記録されたQDのイメージとして扱えます。ただし、EmuZ-1500では64KBを超えるQDのMZTファイルは扱えません。
|
|
MZ-700の多段ロードのファイル |
|
これも単純にMZTファイルを連結すればエミュレータでロードできます。
ただし、多段ロードするソフトの2段目、3段目のファイルの中には、インフォメーションブロックがなく、データブロックのみのものがあるみたいです。
その場合でも、単純にデータだけを連結したりダミーのヘッダを付けたりすれば、エミュレータでロードできるみたいです。
インフォメーションブロックの無いデータの変換の難易度は通常より高くなります。
|
|
拡張子の違うファイル |
|
M12という拡張子のファイルも中身はMZTファイルです。
海外では、MZFという拡張子のファイルが日本のMZTファイルみたいです。ややこしいことに、海外の拡張子MZTのファイルは別のフォーマットのファイルだったりするので注意が必要です。
|
|
参考にさせていただいた情報 |
|
MZ-700WIN0.53に同梱のMZ700FAQ.HTM
MZ のテープを活用しよう (アルゴの記憶さん)
MZTイメージ化に関するメモ (大 深 海 水 淵 亭さん)
改造版MZ700Win/改造版tapeload_gを使った多段ロードソフトのMZTイメージ化 (大 深 海 水 淵 亭さん)
ファイルアトリビュートのメモ (MZ-1500のぺ〜じさん)
ツイッターでいただいた情報
情報をいただいた皆様、ありがとうございました。
|