View on GitHub

HuDisk

X1 HuBASIC Disk Image Handler

HuBASIC Format詳細

参考文献:

http://www.z88dk.org/tools/x1/
http://www.z88dk.org/tools/x1/XBrowser_User_Guide.pdf

基本:

トラック構成(2D)

トラック セクタ
トラック0 1~16セクタ
トラック1 1~16セクタ
トラック79 1~16クラスタ

ブートセクタ

名前 位置 サイズ 詳細
ブートフラグ 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] セクタ数。連続である必要あり。

ブート条件

アロケーションテーブル

2DD

2HD

アロケーションテーブル内容(2D)

[note] 最初の2クラスタ分はファイルシステムで利用するために予約されている。
その為、通常は0x01,0x8Fと書かれている。

2HD

[note] 最初の3クラスタはファイルシステムで利用するために予約されている。
その為、0x01,0x8F,0x8Fと書かれている。

クラスタサイズ

ディレクトリエントリ

2HD

ディレクトリエントリ詳細

名前 位置 サイズ
ファイルモード 0x00 1
ファイル名 0x01 13
拡張子 0x0E 3
パスワード 0x11 1
サイズ 0x12 2
読み出しアドレス 0x14 2
実行アドレス 0x16 2
日付 0x18 6
開始クラスタ 0x1D 3

エントリ数

ディレクトリで管理できるエントリ数?

詳細

開始クラスタの計算例

開始クラスタのLOWが0x03,MIDDLEが0x01であった場合、
(MIDDLE«7)|(LOW&0x7F)となり、0x83となり、131クラスタが開始クラスタになる。 次のクラスタ情報は128クラスタを超えているため、30セクタ目になる。

ファイルモード

機能
0x00 削除済み(上書き可能)
0xFF エントリの終了

値の詳細

ビット 機能
7 ディレクトリ
6 読み出しのみ
5 ベリファイ
4 隠しファイル
3 アスキー
2 アスキー
1 BASIC
0 バイナリ

ファイル名:

日付:

名前 サイズ 詳細
1  
月+曜日 1 [1]
1  
1 24時間
1  
1  

[1] 上位4ビットは1~12月、下位4ビットは曜日(0から6)

年は下二桁、80未満の場合は2000を足すとよいかもしれない。
BCD = 4ビットに一桁が割り当てられている。
例 : 分は8分であれば0x08、45分であれば0x45。