http://www.z88dk.org/tools/x1/
http://www.z88dk.org/tools/x1/XBrowser_User_Guide.pdf
- 1セクタ = 256バイト
- 16セクタ = 1トラック(2D)
- 26セクタ = 1トラック(2HD)
- 1クラスタ = 16セクタ
- ファイルシステムはクラスタ単位で管理する
- 特記しない限りはリトルエンディアン
- トラックとセクタの関係はトラック構成(2D)を参照
トラック | セクタ |
---|---|
トラック0 | 1~16セクタ |
トラック1 | 1~16セクタ |
… | … |
トラック79 | 1~16クラスタ |
- 位置:トラック0 / 1セクタ目
- エントリー 32バイト(複数ある場合もある?)
名前 | 位置 | サイズ | 詳細 |
---|---|---|---|
ブートフラグ | 0x00 | 1 | 0x01=起動可能 |
ラベル | 0x01 | 13 | IPLにより表示 |
拡張子 | 0x0E | 3 | 'Sys' |
パスワード | 0x11 | 1 | 無指定なら0x20 |
サイズ | 0x12 | 2 | プログラムサイズ |
ロードアドレス | 0x14 | 2 | |
実行アドレス | 0x16 | 2 | |
日付 | 0x18 | 6 | 日付フォーマット |
未使用? | 0x1D | 1 | |
開始セクタ | 0x1E | 2 | [1] |
[1] セクタ数。連続である必要あり。
- ブートフラグが0x01
- 拡張子が'Sys'
- 開始クラスタではなく開始セクタの指定
- 位置: 15セクタ(トラック0)
- 長さ: 1セクタ
- クラスタ数 : 80クラスタ
- クラスタ数: 160クラスタ
- 位置: 29セクタ(トラック1/3セクタ)
- 長さ: 2セクタ
- クラスタ数: 250クラスタ
- 0x00は未使用(空き)を表す
- 0x80-0x8Fはファイル終端を示す
下位4ビットの0x00-0x0Fはクラスタ中で使用された最後のセクタ - 他の値は次のクラスタの位置を示す
[note] 最初の2クラスタ分はファイルシステムで利用するために予約されている。
その為、通常は0x01,0x8Fと書かれている。
- 基本は2Dと同じ
- 最初のアロケーションテーブル用セクタ(29セクタ)は128クラスタ分、残りは次のセクタ(30セクタ)になる
- アロケーションテーブルのセクタは、クラスタの下位ビットと上位ビットに分かれる。
- 下位ビットの部分は2Dと同じく、0x80-0x8Fでファイル終端を表す
- セクタの0x00-0x7Fがクラスタの下位ビット(0bit-6bit)、0x80-0xFFは上位ビット(7bit-)を表す
- 2HDの場合、128+122=250で、それ以降は0x8Fになる。
[note] 最初の3クラスタはファイルシステムで利用するために予約されている。
その為、0x01,0x8F,0x8Fと書かれている。
- 2Dの場合、ディスクの先頭2クラスタ、2HDの場合は3クラスタが予約と考える
- 位置:17セクタ(トラック1 / 1セクタ)
- 長さ:16セクタ
- 1エントリ 32バイト
- 位置:33セクタ トラック1 / 7セクタ
名前 | 位置 | サイズ |
---|---|---|
ファイルモード | 0x00 | 1 |
ファイル名 | 0x01 | 13 |
拡張子 | 0x0E | 3 |
パスワード | 0x11 | 1 |
サイズ | 0x12 | 2 |
読み出しアドレス | 0x14 | 2 |
実行アドレス | 0x16 | 2 |
日付 | 0x18 | 6 |
開始クラスタ | 0x1D | 3 |
- 8エントリ / 1セクタ
- 2D = 78?
- 2HD = 247?
- パスワードの値は未指定時、0x20になる
- 開始クラスタはHIGH,LOW,MIDDLEの順番。
- ただしアロケーションテーブルと同じく7bitのみが有効になる模様。
- 開始クラスタは2DではMIDDLEとHIGHに関しては共に0になる
開始クラスタのLOWが0x03,MIDDLEが0x01であった場合、
(MIDDLE<<7)|(LOW&0x7F)となり、0x83となり、131クラスタが開始クラスタになる。
次のクラスタ情報は128クラスタを超えているため、30セクタ目になる。
値 | 機能 |
---|---|
0x00 | 削除済み(上書き可能) |
0xFF | エントリの終了 |
ビット | 機能 |
---|---|
7 | ディレクトリ |
6 | 読み出しのみ |
5 | ベリファイ |
4 | 隠しファイル |
3 | アスキー |
2 | アスキー |
1 | BASIC |
0 | バイナリ |
- ファイル名と拡張子は0x20で後ろが埋まっている。
- 例として、拡張子'TXT'の場合は、
'T','X','T',0x20
となる
- 大文字、小文字が使用可能。
- ケースセンシティブかどうかは不明。
- 6バイト
- 月+曜日以外はBCD表記
名前 | サイズ | 詳細 |
---|---|---|
年 | 1 | |
月+曜日 | 1 | [1] |
日 | 1 | |
時 | 1 | 24時間 |
分 | 1 | |
秒 | 1 |
[1] 上位4ビットは1~12月、下位4ビットは曜日(0から6)
年は下二桁、80未満の場合は2000を足すとよいかもしれない。
BCD = 4ビットに一桁が割り当てられている。
例 : 分は8分であれば0x08、45分であれば0x45。