レベル0ヘッダは LHA が LHarc という名称で配布されていた頃標準だった
形式のヘッダである。これは LHarc 独自のものでなく、
先行して開発された LArc と同じ形式である。
LHarc 以外にも PMarc が この形式を採用している。
+0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +A | +B | +C | +D | +E | +F | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | ||
0x0000 | 1F | C3 | 2D | 6C | 68 | 30 | 2D | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | CA | . | ¢ | - | l | h | 0 | - | . | . | . | . | . | . | . | . | Ê | |
0x0010 | 83 | E7 | 2C | 20 | 00 | 09 | 74 | 65 | 73 | 74 | 5C | 74 | 65 | 73 | 74 | 00 | | ç | , | . | . | t | e | s | t | \ | t | e | s | t | . | ||
0x0020 | 00 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
offset | 内容 | 説明 |
00 | ヘッダの大きさ |
先頭の2バイトを除いたヘッダのバイト数。 サンプルでは 0x1F(31)となる。 (ヘッダ全体のサイズ: 33 - 先頭の2バイト:2 ) |
01 | ヘッダのチェックサム |
先頭の2バイトを除いたヘッダの各バイトの合計値の下位1バイトの値。
サンプルでは 0xC3 となる。 (先頭2バイトを除いたヘッダの各バイトの合計値 0x07C3) |
02 | 圧縮法識別子(1) |
圧縮法を識別するための文字列。
文字列は "-???-" のフォーマット(第1バイトと第5バイトは '-'で固定であり、
5バイトの文字列 であること) に従う。 サンプルでは無圧縮を示す "-lh0-" となる。 |
03 | 圧縮法識別子(2) | |
04 | 圧縮法識別子(3) | |
05 | 圧縮法識別子(4) | |
06 | 圧縮法識別子(5) | |
07 | 圧縮後のサイズ(LL) |
ファイルの圧縮後のサイズ。 サンプルでは 0x00000000となる。 |
08 | 圧縮後のサイズ(LH) | |
09 | 圧縮後のサイズ(HL) | |
10 | 圧縮後のサイズ(HH) | |
11 | オリジナルサイズ(LL) |
ファイルの圧縮前のサイズ。 サンプルでは 0x00000000となる。 |
12 | オリジナルサイズ(LH) | |
13 | オリジナルサイズ(HL) | |
14 | オリジナルサイズ(HH) | |
15 | 最終更新時刻(L) |
MS-DOS形式のファイルの最終更新時刻。 ローカルタイムである事に注意する事。 サンプルでは 16時 30分 20秒となる。 |
16 | 最終更新時刻(H) | |
17 | 最終更新日付(L) |
MS-DOS形式のファイルの最終更新日付。 ローカルタイムである事に注意する事。 サンプルでは 2002年 7月 7日となる。 |
18 | 最終更新日付(H) | |
19 | DOSのファイル属性(L) |
MS-DOS形式のファイル属性。 サンプルでは 0x0020 となり、ファイルに書き込みが行われた事を示すフラグのみ on となっている。 |
20 | DOSのファイル属性(H) | MS-DOS形式のファイル属性の予約領域。 MS-DOSがこの領域を常に 0 に設定する事から、この領域をヘッダレベルに使用する事になったようだ。 |
21 | パス名の長さ |
続いて格納されるパス名のバイト数。 サンプルでは 9 となる。 |
22 | パス名(1) |
パス名の文字列。
パスデリミタにはオリジナル LHarc のプラットフォームである MS-DOS の
パスデリミタ '\' が使用される。
'\' は Shift_JIS の2バイト目に現れる可能性があることから(噂など)、
パス名を正しく読むためには、Shift_JISの漢字処理が必須となる。 サンプルでは "test\test" となる。 |
?? | … | |
21+長さ | パス名(終端) | |
22+長さ | ファイルのCRC(L) |
圧縮前のファイルのCRC16値。 一部の実装系には、この情報の無いものが存在するので注意する事。 サンプルでは 0x0000 となる。 |
23+長さ | ファイルのCRC(H) | |
24+長さ | 拡張領域 | 任意の情報を格納する領域。 |
?? | … | |
サイズ-1 | 拡張領域(終端) |
MS-DOS | 77バイト( ヘッダ構造体のサイズ:101 - 拡張領域無しのヘッダの他の要素:24 ) |
UNIX | 65バイト( ヘッダ構造体のサイズ:101 - 拡張領域無しのヘッダの他の要素:24 - UNIX用拡張領域:12 ) |
MacOS | 52バイト( ヘッダ構造体のサイズ:101 - 拡張領域無しのヘッダの他の要素:24 - MaxOS用拡張領域:25 ) |