MZ-700/1500/80B/2000/2200のディスクについて

■ディスクの仕様
5 インチ 2D ディスク
シリンダ数 35
ヘッド数 2
セクタ長 256 バイト
トラック数 70 (シリンダ数 x ヘッド数)
1トラック辺りのセクタ数 16
全セクタ数 1120 (トラック数 x 1トラック辺りのセクタ数)
容量 286720 バイト (280 キロバイト)
注意
以後、ディスクの場所を示す場合、最初のトラックの最初のセクタを 0 として最後のトラックの最後のセクタを 1119 とした通しセクタ番号を使用します。

■システムディスクの構造
通しセクタ番号 トラック番号 セクタ番号 システムディスク
0 0 1 IPL
1~14 0 2~15 未使用(すべてBFh)
15 0 16 FAT(ビットマップ)
16~23 1 1~8 ディレクトリ(64個分)
24~31 1 9~16 未使用(すべてBFh)
32~47 2 1 未使用(すべてBFh)
48~n-1 nによって変動 nによって変動 BASICなど起動時に読み込むデータ
n~1119 nによって変動 nによって変動 ファイルデータ
nはビットマップのオフセット x (ビットマップのブロックサイズを示す倍率 + 1)
例としてはMZ-2Z001の起動ディスクは176
起動時に読み込むデータはディレクトリに存在しない
トラック番号 = int(n / 16)
セクタ番号 = n % 16 + 1

■データディスクの構造
通しセクタ番号 トラック番号 セクタ番号 データディスク
0 0 1 未使用 (すべてBFh)
1~14 0 2~15 未使用(すべてBFh)
15 0 16 FAT(ビットマップ)
16~23 1 1~8 ディレクトリ(64個分)
24~31 1 9~16 未使用(すべてBFh)
32~47 2 1 未使用(すべてBFh)
48~1119 3 1 ファイルデータ

■IPL (通しセクタ番号 0)
アドレス +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00h 機種 起動用シグネチャ 起動システム名→
10h 未使用 読み込みサイズ 読込開始アドレス 実行アドレス 未使用 マスタディスク ロード開始セクタ
20h~FFh 未使用

機種 01h MZ-80B/2000/2200
02h MZ-80A
03h MZ-700/1500
起動用シグネチャ 起動ディスク 49h 50h 4Ch 50h 52h 4Fh 'IPLPRO'
起動システム名 0Dh で終わる文字列
読み込みサイズ ロードしたプログラムの読み込みバイト数
読込開始アドレス プログラムをロードする先頭アドレス
実行アドレス ロードしたプログラムの実行アドレス
マスタディスク FFh マスタディスク
00h マスタディスクからコピーしたディスク
マスタディスクからコピーしたディスクは付属のユーティリティでコピーできません
ロード開始セクタ IPL がロードする先頭セクタ番号

■FAT(ビットマップ) (通しセクタ番号 15)
アドレス +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00h ボリューム番号 オフセット 使用済みブロック数 全体ブロック数 各ブロックの使用状況→
10h~EFh
F0h~FFh ブロックサイズを示す倍率

ボリューム番号 システムディスクは 00h、
データディスクは 01h ~ FFh
オフセット データ領域の位置を示します
この値にブロックサイズを示す倍率を掛けた値が
データ領域の先頭セクタを示します
使用済みブロック数 使用済みのブロック数を示します
システム領域を含めた全ての使用済みブロックを示します
全体ブロック数 全体のブロック数を示します
2D の 70 トラックの場合は 460h
80 トラックの場合は 500h
各ブロックの使用状況 1 ブロックが 1 ビットで示されます
1 バイトで 8 ブロック、全部で 1992 ブロックの管理が可能
1 が使用中、0 が未使用です
ブロックサイズを示す倍率-1 セクタサイズに対するブロックサイズの
倍率から 1 引いた値を示します
2D は 0 で倍率は 1、ブロックサイズは 256 バイト

■ディレクトリ (通しセクタ番号 16~23、64 個)
アドレス +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00h モード ファイル名
10h 属性 未使用 ファイルサイズ ロードアドレス 実行アドレス 未使用(MZ-2500では日付として使用) 開始セクタ

モード 00h 未使用
01h OBJ (マシン語プログラム)
02h BTX (BASIC プログラム)
03h BSD (シーケンシャルファイル)
80h ボリューム番号 (ディレクトリの先頭に必ず 1 つ作られる)
ファイル名 0Dh で終わる文字列。0Dh を合わせて 17 バイト。
モードが 80h の場合は次のバイトに FAT の先頭に記録されているボリューム番号と同じ番号が記録される。
属性 b0 プロテクト (0 = 通常ファイル、1 = プロテクトファイル)
b7 ファイル形態 (0 = 1 セクタ毎に次のセクタ番号が記録されたファイル、1 = 連続したファイル)
ファイルサイズ ファイルのバイト数
ロードアドレス ロードするアドレス、モードが OBJ の場合のみ有効
実行アドレス 実行するアドレス、モードが OBJ の場合のみ有効
開始セクタ ファイルが記録されている先頭セクタ番号

戻る