View on GitHub

HuDisk

X1 HuBASIC Disk Image Handler

D88形式フォーマット

ここではD88フォーマットに関する情報を記載します。

基本構造

項目 サイズ
ヘッダ トラック0の位置
トラック0 不定
トラック1 不定

トラック

ヘッダ

項目 位置 サイズ 備考
ディスク名 0x00 17 文字列(末尾が0x00)
予約 0x11 9  
ライトプロテクト 0x1a 1 0x00=なし 0x10=あり
ディスクの種類 0x1b 1 [1]
ディスクサイズ 0x1c 4 ヘッダと全トラック
トラック先頭オフセット 0x20 4*164[2] [3]

[1] 0x00=2D 0x10=2DD 0x20=2HD 0x30=1D 0x40=1DD
[2] 4*164 = 656(0x290)
[3] ファイル先頭からのオフセット トラック0~163

アドレス計算

必要ヘッダ + トラックアドレス部
32(0x20) + 656(0x290) = 688(0x2b0)

トラック

複数セクタを結合したもの。

セクタ

項目 位置 サイズ 備考
シリンダ(C) 0x00 1 0から
ヘッダ/サイド(H) 0x01 1 0=表面 1=裏面
セクタ(R) 0x02 1 1からセクタ数まで
セクタサイズ(N) 0x03 1 [1]
トラック中のセクタ数 0x04 2 16など
記録密度 0x06 1 [2]
削除フラグ 0x07 1 0x00=通常 0x10=削除
ステータス 0x08 1 下記ステータス詳細を参照
予約 0x09 5  
このセクタのデータサイズ 0x0e 2  
データ 0x10 不定 セクタサイズ分

[1] 0=128bytes 1=256bytes 2=512bytes 3=1024bytes … 128«N
[2] 0x00=倍密度 0x40=単密度 0x01=高密度

ステータス詳細

詳細
0x00 正常
0x10 正常(DELETED DATA)
0xa0 ID CRC エラー
0xb0 データ CRC エラー
0xe0 アドレスマークなし
0xf0 データマークなし

密度

密度 一般記号
高密度 HD
倍密度 DD
単密度 D

例:2Dフォーマット

トラック数 サイド セクタ数/トラック セクタサイズ(byte)
40 2 16 256

ヘッダ

項目 サイズ
ディスク 17 (任意)
予約 9 0x00
ライトプロテクト 1 0x00
ディスクの種類 1 0x00
ディスクサイズ 2 [1]
トラック先頭のオフセット 4*164 0x02b0,0x24b0,…

[1] 348848 = 0x2b0(ヘッダ) + 40(トラック数) x 2(面) x 16(セクタ/トラック) x (0x10(セクタヘッダ) + 0x100(セクタデータ))

トラック(2D)

C H R N セクタ位置
0 0 1 1 0x2b0
0 0 2 1 0x3c0
0 0 16 1 0x12a0
0 1 1 1 0x13b0
0 1 16 1 0x23a0
1 0 1 1 0x24b0
39 1 16 1 0x551a0

C=トラック、H=サイド、R=セクタ、N=セクタサイズ

セクタ(2D)

項目 位置 サイズ
トラック 0x00 1 0〜39
サイド 0x01 1 0 or 1
セクタ 0x02 1 1〜16
セクタサイズ 0x03 1 1
トラック中のセクタ数 0x04 2 16
記録密度 0x06 1 0x00
削除フラグ 0x07 1 0x00
ステータス 0x08 1 0x00
予約 0x09 5 0
このセクタのデータサイズ 0x0e 2 256
データ 0x10 256 (実データ)

セクタ(2HD)

項目 位置 サイズ
トラック 0x00 1 0〜76(0x4C)
セクタ 0x02 1 1〜26(0x1A)
トラック中のセクタ数 0x04 2 0x1A

参照元

http://gra4.hatenadiary.jp/entry/20171108/1510096429
https://github.com/jpzm/wii88/blob/master/document/FORMAT.TXT
http://www.z88dk.org/tools/x1/