MZ のディスクを活用しよう

MZ-2500 のディスクについての情報です。

■ディスクの仕様
3.5 インチ 2DD ディスク
シリンダ数 80
ヘッド数 2
セクタ長 256 バイト
トラック数 160 (シリンダ数 x ヘッド数)
1 トラック辺りのセクタ数 16
全セクタ数 2560 (トラック数 x 1 トラック辺りのセクタ数)
容量 655360 バイト (640 キロバイト)
注意
以後、ディスクの場所を示す場合、最初のトラックの最初のセクタを 0 として最後のトラックの最後のセクタを 2559 とした通しセクタ番号を使用します。

■ディスクの構造
セクタ番号 システムディスク データディスク
0000h IPL
0001h 起動ファイル情報 1 未使用(すべて00h)
0002h 起動ファイル情報 2 未使用(すべて00h)
0003h 起動ファイル情報 3 未使用(すべて00h)
0004h ~ 000Eh 未使用(すべて00h)
000Fh FAT
0010h ~ 0017h ディレクトリ
0018h プリンタ情報 未使用(すべてBFh)
0019h アルゴキー情報 未使用(すべてBFh)
001Ah ~ 002Fh 調査中 未使用(すべてBFh)
0030h ~ 調査中 ファイルデータ

■IPL (セクタ 0000h)
アドレス +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00h 機種 起動用シグネチャ 起動システム名→
10h 未使用 読み込みサイズ 未使用 実行アドレス 未使用 ロード開始セクタ
20h ロードするメモリブロック列
30h 実行開始時のマッピング 未使用
40h~FFh 未使用

機種 01h MZ-80B/2000/2200/2500
03h MZ-700/1500
04h MZ-2500 データディスク
起動用シグネチャ 起動ディスク 49h 50h 4Ch 50h 52h 4Fh 'IPLPRO'
データディスク 00h で埋まっている
起動システム名 0Dh で終わる文字列
読み込みサイズ ロードしたプログラムの読み込みバイト数
実行アドレス ロードしたプログラムの実行アドレス
ロード開始セクタ IPL がロードする先頭セクタ番号
ロードするメモリブロック列 調査中
実行開始時のマッピング 調査中

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

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

■ディレクトリ (セクタ 0010h ~ 0017h、64 個)
アドレス +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00h モード ファイル名
10h 属性 未使用 ファイルサイズ ロードアドレス 実行アドレス 作成日付 開始セクタ

モード 00h 未使用
01h OBJ (マシン語プログラム)
02h BTX (BASIC プログラム)
03h BSD (シーケンシャルファイル)
04h BRD (ランダムファイル)
0Fh サブディレクトリ
80h SWAP されたファイルがない
81h SWAP されたファイルがある
ファイル名 0Dh で終わる文字列。0Dh を合わせて 17 バイト。
属性 b0 プロテクト (0 = 通常ファイル、1 = プロテクトファイル)
b7 ファイル形態 (0 = 1 セクタ毎に次のセクタ番号が記録されたファイル、1 = 連続したファイル)
ファイルサイズ モードが BRD の場合は実際のサイズを 32(20h) で割った値が記録される
その他のファイルはバイト数が記録される
ロードアドレス ロードするアドレス、モードが OBJ の場合のみ有効
実行アドレス 実行するアドレス、モードが OBJ の場合のみ有効
作成日付
1 バイト目 2 バイト目 3 バイト目 4 バイト目
b7b6b5b4 b3b2b1b0 b7b6b5b4 b3b2b1b0 b7b6b5b4 b3b2b1b0 b7b6b5b4 b3b2b1b0
10の位
(0~9)
1の位
(0~9)
10の位
(0~1)
1の位
(0~9)
10の位
(0~3)
1の位
(0~9)
10の位
(0~2)
1の位
(0~9)
10の位
(0~5)
1の位
(0~9)
開始セクタ ファイルが記録されている先頭セクタ番号

■MZ-2500 BASIC-M25 GSAVE、GLOAD ファイル形式
ヘッダ部
アドレス 内容
0000h ~ 000Fh 67h 72h 61h 70h 68h 69h 63h 20h 64h 61h 74h 61h 20h 30h 30h 30h
'graphic data 000'
0010h ~ 0013h 未使用 (すべて 00h)
0014h ~ 0015h 画像の幅
0016h ~ 0017h 画像の高さ
0018h 10h 16 色
20h 256 色
0019h ~ 00FFh 未使用 (すべて 00h)

データ部 (16 色モード)
青 1 バイト
赤 1 バイト
緑 1 バイト
光度 1 バイト
の順番で画像データのサイズ分埋まっている
各バイトは各色成分 8 ドット分を表している
よって 4 バイトで 16 色 8 ドット分を表している

データ部 (256 色モード)
8 バイト単位で画像データのサイズ分埋まっている
各バイトは各色成分 8 ドット分を表している
よって 8 バイトで 256 色 8 ドット分を表している
詳細は不明、調査中

MZ-700/1500/80B/2000/2200 のディスクについての情報です。

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

■ディスクの構造
セクタ番号 システムディスク データディスク
0000h IPL 未使用 (すべてBFh)
0001h ~ 000Eh 未使用(すべてBFh)
000Fh FAT
0010h ~ 0017h ディレクトリ
0018h ~ 002Fh 未使用(すべてBFh)
0030h ~ 調査中 ファイルデータ

■IPL (セクタ 0000h)
アドレス +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
03h MZ-700/1500
起動用シグネチャ 起動ディスク 49h 50h 4Ch 50h 52h 4Fh 'IPLPRO'
起動システム名 0Dh で終わる文字列
読み込みサイズ ロードしたプログラムの読み込みバイト数
実行アドレス ロードしたプログラムの実行アドレス
マスタディスク FFh マスタディスク
00h マスタディスクからコピーしたディスク
マスタディスクからコピーしたディスクは付属のユーティリティでコピーできません
ロード開始セクタ IPL がロードする先頭セクタ番号

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

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

■ディレクトリ (セクタ 0010h ~ 0017h、64 個)
アドレス +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00h モード ファイル名
10h 属性 未使用 ファイルサイズ ロードアドレス 実行アドレス 作成日付 開始セクタ

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

戻る