'01.1.22 ('03.3.6更新)
MacBinaryのヘッダ128バイトを解説すれば、MacBinaryの規格の説明になりますね。おまけとしてMacBinary判別法を載せました。「MacBinaryって何?」って人には入門編があります。
ヘッダにはデータフォークとリソースフォークを分離するためのデータとともに、デスクトップファイル等に保存されている、そのファイルに関してのデータが保存されます。
データフォーク、リソースフォークは128バイトの倍数になるように、ぴったりでない場合はnullで水増しされます。コメントは水増しの必要は有りませんが、水増しするエンコーダもあります。
Get Infoコメントの保存は、MacBinaryIIの時には規格にあっても殆ど採用されませんでした。現在のMacBinaryIIIになってから採用されつつあるようです。OS8になって、デスクトップファイルを作り直してもコメントが消えなくなったためでしょう。
MacBinaryI, MacBinaryII, MacBinaryIIIと少しずつ変わっていますが、基本的な部分は同じです。MacBinaryIIIはMac OS8に対応して作られましたが、まだMacBinaryIIを使うソフトも多くあります。
OS XでFinderが255文字までのファイル名に対応しましたが、MacBinaryでは最長でも63バイトまでしか扱えません。
| オフセット | 長さ | コンテンツ |
|---|---|---|
| 000 | byte | ゼロ |
| 001 | byte | ファイルネームの長さ(byte)(通常31bytesまで) |
| 002 | 1 to 63 bytes | ファイルネーム(ASCIIコード) (長さbytes分だけ重要) (日本語はShift JISになるようだが規格上は未確認) |
| 065 | long word | ファイルタイプ(ASCIIコード通常4文字) |
| 069 | long word | クリエータ(ASCIIコード通常4文字) |
| 073 | byte |
Finderフラグ MacBinaryI,MacBinaryII MacBinaryIII |
| 074 | byte | ゼロ |
| 075 | word | ウインドウの中でのファイル(アイコン)の垂直位置 |
| 077 | word | ウインドウの中でのファイル(アイコン)の水平位置 |
| 079 | word | ファイルのウインドウかフォルダのID |
| 081 | byte | Protectedフラグ(最下位ビット) |
| 082 | byte | ゼロ |
| 083 | long word | データフォークの長さ(byte) |
| 087 | long word | リソースフォークの長さ(byte) |
| 091 | long word | 作成日 (1904年1月1日(金) 0:00 AM からの経過秒数) |
| 095 | long word | 最終修正日 (1904年1月1日(金) 0:00 AM からの経過秒数) |
| *099 | word |
リソースフォークの後ろに追加されたGet Infoコメントの長さ(byte)(Iではゼロで追加しない) Get InfoコメントとはFinderの「情報を見る(Get Info)」で書き込める、ファイルに添付するコメント。 |
| *101 | byte |
Finderフラグその2(Iではゼロ) Bit 7 - hasNoInits |
| **102 | long word | 識別目的のための署名(ASCIIコードで'mBIN')(I,IIではゼロ) (mBINと書いてあればMacBinaryIII) |
| **106 | byte | ファイル名のスクリプト(fxInfoに記録されたfdScript fieldから)(I,IIではゼロ) |
| **107 | byte | 拡張Finderフラグ(fxInfoに記録されたfdXFlags fieldから)(I,IIではゼロ) |
| 108-115 | - | 使わない。ゼロにしておく、読む時は無視。 |
| *116 | long word | アーカイブした場合の元のファイル全部足した長さ(Iではゼロ) |
| *120 | word | 第2ヘッダの長さ。将来の拡張のためで、MacBinaryではゼロ |
| *122 | byte | MacBinaryのバージョンナンバー MacBinaryII=129,MacBinaryIII=130(Iではゼロ) |
| *123 | byte | 最小のMacBinaryのバージョンナンバー (II,IIIは129にセット)(Iではゼロ) |
| *124 | word | この前124バイトのCRC(Iではゼロ) (CRCはエラー検出、訂正方式のひとつ) |
| 126 | word | MacBinaryIでコンピュータタイプとOSのIDのための予約だった。(II,IIIは未定義) |
| オフセット | 長さ | コンテンツ | 値 | 結果 |
|---|---|---|---|---|
| 0と74 | byte | - | ゼロ | 最低限ここはチェック |
| 82 | byte | - | ゼロ | MacBinaryI
ゼロならIと互換性あり |
| 1 | byte | 名前の長さ | 1〜63bytes | MacBinaryI |
| 83と87 | long word | フォークの長さ | 0〜0x007F FFFF bytes |
MacBinaryI |
| 101〜125 | byte | - | すべてゼロ | MacBinaryIのみ |
| 124 | word | CRC | 合ってる | MacBinaryII以上 |
| 123 | byte | 最小バージョン | 129 | MacBinaryIIとIII
129ならIIと互換性あり |
| 102 | long word | 署名 | mBIN | MacBinaryIII |