1b6cee71dSXin LI 2b6cee71dSXin LI#------------------------------------------------------------------------------ 3*3e41d09dSXin LI# $File: macintosh,v 1.26 2015/11/25 00:36:02 christos Exp $ 4b6cee71dSXin LI# macintosh description 5b6cee71dSXin LI# 6b6cee71dSXin LI# BinHex is the Macintosh ASCII-encoded file format (see also "apple") 7b6cee71dSXin LI# Daniel Quinlan, quinlan@yggdrasil.com 8b6cee71dSXin LI11 string must\ be\ converted\ with\ BinHex BinHex binary text 9b6cee71dSXin LI!:mime application/mac-binhex40 10b6cee71dSXin LI>41 string x \b, version %.3s 11b6cee71dSXin LI 12b6cee71dSXin LI# Stuffit archives are the de facto standard of compression for Macintosh 13b6cee71dSXin LI# files obtained from most archives. (franklsm@tuns.ca) 14b6cee71dSXin LI0 string SIT! StuffIt Archive (data) 15b6cee71dSXin LI!:mime application/x-stuffit 16b6cee71dSXin LI!:apple SIT!SIT! 17b6cee71dSXin LI>2 string x : %s 18b6cee71dSXin LI0 string SITD StuffIt Deluxe (data) 19b6cee71dSXin LI>2 string x : %s 20b6cee71dSXin LI0 string Seg StuffIt Deluxe Segment (data) 21b6cee71dSXin LI>2 string x : %s 22b6cee71dSXin LI 23b6cee71dSXin LI# Newer StuffIt archives (grant@netbsd.org) 24b6cee71dSXin LI0 string StuffIt StuffIt Archive 25b6cee71dSXin LI!:mime application/x-stuffit 26b6cee71dSXin LI!:apple SIT!SIT! 27b6cee71dSXin LI#>162 string >0 : %s 28b6cee71dSXin LI 29b6cee71dSXin LI# Macintosh Applications and Installation binaries (franklsm@tuns.ca) 30b6cee71dSXin LI# GRR: Too weak 31b6cee71dSXin LI#0 string APPL Macintosh Application (data) 32b6cee71dSXin LI#>2 string x \b: %s 33b6cee71dSXin LI 34b6cee71dSXin LI# Macintosh System files (franklsm@tuns.ca) 35b6cee71dSXin LI# GRR: Too weak 36b6cee71dSXin LI#0 string zsys Macintosh System File (data) 37b6cee71dSXin LI#0 string FNDR Macintosh Finder (data) 38b6cee71dSXin LI#0 string libr Macintosh Library (data) 39b6cee71dSXin LI#>2 string x : %s 40b6cee71dSXin LI#0 string shlb Macintosh Shared Library (data) 41b6cee71dSXin LI#>2 string x : %s 42b6cee71dSXin LI#0 string cdev Macintosh Control Panel (data) 43b6cee71dSXin LI#>2 string x : %s 44b6cee71dSXin LI#0 string INIT Macintosh Extension (data) 45b6cee71dSXin LI#>2 string x : %s 46b6cee71dSXin LI#0 string FFIL Macintosh Truetype Font (data) 47b6cee71dSXin LI#>2 string x : %s 48b6cee71dSXin LI#0 string LWFN Macintosh Postscript Font (data) 49b6cee71dSXin LI#>2 string x : %s 50b6cee71dSXin LI 51b6cee71dSXin LI# Additional Macintosh Files (franklsm@tuns.ca) 52b6cee71dSXin LI# GRR: Too weak 53b6cee71dSXin LI#0 string PACT Macintosh Compact Pro Archive (data) 54b6cee71dSXin LI#>2 string x : %s 55b6cee71dSXin LI#0 string ttro Macintosh TeachText File (data) 56b6cee71dSXin LI#>2 string x : %s 57b6cee71dSXin LI#0 string TEXT Macintosh TeachText File (data) 58b6cee71dSXin LI#>2 string x : %s 59b6cee71dSXin LI#0 string PDF Macintosh PDF File (data) 60b6cee71dSXin LI#>2 string x : %s 61b6cee71dSXin LI 62b6cee71dSXin LI# MacBinary format (Eric Fischer, enf@pobox.com) 63b6cee71dSXin LI# 64b6cee71dSXin LI# Unfortunately MacBinary doesn't really have a magic number prior 65b6cee71dSXin LI# to the MacBinary III format. The checksum is really the way to 66b6cee71dSXin LI# do it, but the magic file format isn't up to the challenge. 67b6cee71dSXin LI# 68b6cee71dSXin LI# 0 byte 0 69b6cee71dSXin LI# 1 byte # filename length 70b6cee71dSXin LI# 2 string # filename 71b6cee71dSXin LI# 65 string # file type 72b6cee71dSXin LI# 69 string # file creator 73b6cee71dSXin LI# 73 byte # Finder flags 74b6cee71dSXin LI# 74 byte 0 75b6cee71dSXin LI# 75 beshort # vertical posn in window 76b6cee71dSXin LI# 77 beshort # horiz posn in window 77b6cee71dSXin LI# 79 beshort # window or folder ID 78b6cee71dSXin LI# 81 byte # protected? 79b6cee71dSXin LI# 82 byte 0 80b6cee71dSXin LI# 83 belong # length of data segment 81b6cee71dSXin LI# 87 belong # length of resource segment 82b6cee71dSXin LI# 91 belong # file creation date 83b6cee71dSXin LI# 95 belong # file modification date 84b6cee71dSXin LI# 99 beshort # length of comment after resource 85b6cee71dSXin LI# 101 byte # new Finder flags 86b6cee71dSXin LI# 102 string mBIN # (only in MacBinary III) 87b6cee71dSXin LI# 106 byte # char. code of file name 88b6cee71dSXin LI# 107 byte # still more Finder flags 89b6cee71dSXin LI# 116 belong # total file length 90b6cee71dSXin LI# 120 beshort # length of add'l header 91b6cee71dSXin LI# 122 byte 129 # for MacBinary II 92b6cee71dSXin LI# 122 byte 130 # for MacBinary III 93b6cee71dSXin LI# 123 byte 129 # minimum version that can read fmt 94b6cee71dSXin LI# 124 beshort # checksum 95b6cee71dSXin LI# 96b6cee71dSXin LI# This attempts to use the version numbers as a magic number, requiring 97b6cee71dSXin LI# that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second 98b6cee71dSXin LI# be 0x81. This works for the files I have, but maybe not for everyone's. 99b6cee71dSXin LI 100b6cee71dSXin LI# Unfortunately, this magic is quite weak - MPi 101b6cee71dSXin LI#122 beshort&0xFCFF 0x8081 Macintosh MacBinary data 102b6cee71dSXin LI 103b6cee71dSXin LI# MacBinary I doesn't have the version number field at all, but MacBinary II 104b6cee71dSXin LI# has been in use since 1987 so I hope there aren't many really old files 105b6cee71dSXin LI# floating around that this will miss. The original spec calls for using 106b6cee71dSXin LI# the nulls in 0, 74, and 82 as the magic number. 107b6cee71dSXin LI# 108b6cee71dSXin LI# Another possibility, that would also work for MacBinary I, is to use 109b6cee71dSXin LI# the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will 110b6cee71dSXin LI# have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset, 111b6cee71dSXin LI# and that 74 will be 0. So something like 112b6cee71dSXin LI# 113b6cee71dSXin LI# 71 belong&0x80804EFF 0x00000000 Macintosh MacBinary data 114b6cee71dSXin LI# 115b6cee71dSXin LI# >73 byte&0x01 0x01 \b, inited 116b6cee71dSXin LI# >73 byte&0x02 0x02 \b, changed 117b6cee71dSXin LI# >73 byte&0x04 0x04 \b, busy 118b6cee71dSXin LI# >73 byte&0x08 0x08 \b, bozo 119b6cee71dSXin LI# >73 byte&0x10 0x10 \b, system 120b6cee71dSXin LI# >73 byte&0x10 0x20 \b, bundle 121b6cee71dSXin LI# >73 byte&0x10 0x40 \b, invisible 122b6cee71dSXin LI# >73 byte&0x10 0x80 \b, locked 123b6cee71dSXin LI 124b6cee71dSXin LI#>65 string x \b, type "%4.4s" 125b6cee71dSXin LI 126b6cee71dSXin LI#>65 string 8BIM (PhotoShop) 127b6cee71dSXin LI#>65 string ALB3 (PageMaker 3) 128b6cee71dSXin LI#>65 string ALB4 (PageMaker 4) 129b6cee71dSXin LI#>65 string ALT3 (PageMaker 3) 130b6cee71dSXin LI#>65 string APPL (application) 131b6cee71dSXin LI#>65 string AWWP (AppleWorks word processor) 132b6cee71dSXin LI#>65 string CIRC (simulated circuit) 133b6cee71dSXin LI#>65 string DRWG (MacDraw) 134b6cee71dSXin LI#>65 string EPSF (Encapsulated PostScript) 135b6cee71dSXin LI#>65 string FFIL (font suitcase) 136b6cee71dSXin LI#>65 string FKEY (function key) 137b6cee71dSXin LI#>65 string FNDR (Macintosh Finder) 138b6cee71dSXin LI#>65 string GIFf (GIF image) 139b6cee71dSXin LI#>65 string Gzip (GNU gzip) 140b6cee71dSXin LI#>65 string INIT (system extension) 141b6cee71dSXin LI#>65 string LIB\ (library) 142b6cee71dSXin LI#>65 string LWFN (PostScript font) 143b6cee71dSXin LI#>65 string MSBC (Microsoft BASIC) 144b6cee71dSXin LI#>65 string PACT (Compact Pro archive) 145b6cee71dSXin LI#>65 string PDF\ (Portable Document Format) 146b6cee71dSXin LI#>65 string PICT (picture) 147b6cee71dSXin LI#>65 string PNTG (MacPaint picture) 148b6cee71dSXin LI#>65 string PREF (preferences) 149b6cee71dSXin LI#>65 string PROJ (Think C project) 150b6cee71dSXin LI#>65 string QPRJ (Think Pascal project) 151b6cee71dSXin LI#>65 string SCFL (Defender scores) 152b6cee71dSXin LI#>65 string SCRN (startup screen) 153b6cee71dSXin LI#>65 string SITD (StuffIt Deluxe) 154b6cee71dSXin LI#>65 string SPn3 (SuperPaint) 155b6cee71dSXin LI#>65 string STAK (HyperCard stack) 156b6cee71dSXin LI#>65 string Seg\ (StuffIt segment) 157b6cee71dSXin LI#>65 string TARF (Unix tar archive) 158b6cee71dSXin LI#>65 string TEXT (ASCII) 159b6cee71dSXin LI#>65 string TIFF (TIFF image) 160b6cee71dSXin LI#>65 string TOVF (Eudora table of contents) 161b6cee71dSXin LI#>65 string WDBN (Microsoft Word word processor) 162b6cee71dSXin LI#>65 string WORD (MacWrite word processor) 163b6cee71dSXin LI#>65 string XLS\ (Microsoft Excel) 164b6cee71dSXin LI#>65 string ZIVM (compress (.Z)) 165b6cee71dSXin LI#>65 string ZSYS (Pre-System 7 system file) 166b6cee71dSXin LI#>65 string acf3 (Aldus FreeHand) 167b6cee71dSXin LI#>65 string cdev (control panel) 168c2931133SXin LI#>65 string dfil (Desk Accessory suitcase) 169b6cee71dSXin LI#>65 string libr (library) 170b6cee71dSXin LI#>65 string nX^d (WriteNow word processor) 171b6cee71dSXin LI#>65 string nX^w (WriteNow dictionary) 172b6cee71dSXin LI#>65 string rsrc (resource) 173b6cee71dSXin LI#>65 string scbk (Scrapbook) 174b6cee71dSXin LI#>65 string shlb (shared library) 175b6cee71dSXin LI#>65 string ttro (SimpleText read-only) 176b6cee71dSXin LI#>65 string zsys (system file) 177b6cee71dSXin LI 178b6cee71dSXin LI#>69 string x \b, creator "%4.4s" 179b6cee71dSXin LI 180b6cee71dSXin LI# Somewhere, Apple has a repository of registered Creator IDs. These are 181b6cee71dSXin LI# just the ones that I happened to have files from and was able to identify. 182b6cee71dSXin LI 183b6cee71dSXin LI#>69 string 8BIM (Adobe Photoshop) 184b6cee71dSXin LI#>69 string ALD3 (PageMaker 3) 185b6cee71dSXin LI#>69 string ALD4 (PageMaker 4) 186b6cee71dSXin LI#>69 string ALFA (Alpha editor) 187b6cee71dSXin LI#>69 string APLS (Apple Scanner) 188b6cee71dSXin LI#>69 string APSC (Apple Scanner) 189b6cee71dSXin LI#>69 string BRKL (Brickles) 190b6cee71dSXin LI#>69 string BTFT (BitFont) 191b6cee71dSXin LI#>69 string CCL2 (Common Lisp 2) 192b6cee71dSXin LI#>69 string CCL\ (Common Lisp) 193b6cee71dSXin LI#>69 string CDmo (The Talking Moose) 194b6cee71dSXin LI#>69 string CPCT (Compact Pro) 195b6cee71dSXin LI#>69 string CSOm (Eudora) 196b6cee71dSXin LI#>69 string DMOV (Font/DA Mover) 197b6cee71dSXin LI#>69 string DSIM (DigSim) 198b6cee71dSXin LI#>69 string EDIT (Macintosh Edit) 199b6cee71dSXin LI#>69 string ERIK (Macintosh Finder) 200b6cee71dSXin LI#>69 string EXTR (self-extracting archive) 201b6cee71dSXin LI#>69 string Gzip (GNU gzip) 202b6cee71dSXin LI#>69 string KAHL (Think C) 203b6cee71dSXin LI#>69 string LWFU (LaserWriter Utility) 204b6cee71dSXin LI#>69 string LZIV (compress) 205b6cee71dSXin LI#>69 string MACA (MacWrite) 206b6cee71dSXin LI#>69 string MACS (Macintosh operating system) 207b6cee71dSXin LI#>69 string MAcK (MacKnowledge terminal emulator) 208b6cee71dSXin LI#>69 string MLND (Defender) 209b6cee71dSXin LI#>69 string MPNT (MacPaint) 210b6cee71dSXin LI#>69 string MSBB (Microsoft BASIC (binary)) 211b6cee71dSXin LI#>69 string MSWD (Microsoft Word) 212b6cee71dSXin LI#>69 string NCSA (NCSA Telnet) 213b6cee71dSXin LI#>69 string PJMM (Think Pascal) 214b6cee71dSXin LI#>69 string PSAL (Hunt the Wumpus) 215b6cee71dSXin LI#>69 string PSI2 (Apple File Exchange) 216b6cee71dSXin LI#>69 string R*ch (BBEdit) 217b6cee71dSXin LI#>69 string RMKR (Resource Maker) 218b6cee71dSXin LI#>69 string RSED (Resource Editor) 219b6cee71dSXin LI#>69 string Rich (BBEdit) 220b6cee71dSXin LI#>69 string SIT! (StuffIt) 221b6cee71dSXin LI#>69 string SPNT (SuperPaint) 222b6cee71dSXin LI#>69 string Unix (NeXT Mac filesystem) 223b6cee71dSXin LI#>69 string VIM! (Vim editor) 224b6cee71dSXin LI#>69 string WILD (HyperCard) 225b6cee71dSXin LI#>69 string XCEL (Microsoft Excel) 226b6cee71dSXin LI#>69 string aCa2 (Fontographer) 227b6cee71dSXin LI#>69 string aca3 (Aldus FreeHand) 228b6cee71dSXin LI#>69 string dosa (Macintosh MS-DOS file system) 229b6cee71dSXin LI#>69 string movr (Font/DA Mover) 230b6cee71dSXin LI#>69 string nX^n (WriteNow) 231b6cee71dSXin LI#>69 string pdos (Apple ProDOS file system) 232b6cee71dSXin LI#>69 string scbk (Scrapbook) 233b6cee71dSXin LI#>69 string ttxt (SimpleText) 234b6cee71dSXin LI#>69 string ufox (Foreign File Access) 235b6cee71dSXin LI 236b6cee71dSXin LI# Just in case... 237b6cee71dSXin LI 238b6cee71dSXin LI102 string mBIN MacBinary III data with surprising version number 239b6cee71dSXin LI 240b6cee71dSXin LI# sas magic from Bruce Foster (bef@nwu.edu) 241b6cee71dSXin LI# 242b6cee71dSXin LI#0 string SAS SAS 243b6cee71dSXin LI#>8 string x %s 244b6cee71dSXin LI0 string SAS SAS 245b6cee71dSXin LI>24 string DATA data file 246b6cee71dSXin LI>24 string CATALOG catalog 247b6cee71dSXin LI>24 string INDEX data file index 248b6cee71dSXin LI>24 string VIEW data view 249b6cee71dSXin LI# sas 7+ magic from Reinhold Koch (reinhold.koch@roche.com) 250b6cee71dSXin LI# 251b6cee71dSXin LI0x54 string SAS SAS 7+ 252b6cee71dSXin LI>0x9C string DATA data file 253b6cee71dSXin LI>0x9C string CATALOG catalog 254b6cee71dSXin LI>0x9C string INDEX data file index 255b6cee71dSXin LI>0x9C string VIEW data view 256b6cee71dSXin LI 257b6cee71dSXin LI# spss magic for SPSS system and portable files, 258b6cee71dSXin LI# from Bruce Foster (bef@nwu.edu). 259b6cee71dSXin LI 260b6cee71dSXin LI0 long 0xc1e2c3c9 SPSS Portable File 261b6cee71dSXin LI>40 string x %s 262b6cee71dSXin LI 263b6cee71dSXin LI0 string $FL2 SPSS System File 264b6cee71dSXin LI>24 string x %s 265b6cee71dSXin LI 266b6cee71dSXin LI0 string $FL3 SPSS System File 267b6cee71dSXin LI>24 string x %s 268b6cee71dSXin LI 269b6cee71dSXin LI# Macintosh filesystem data 270b6cee71dSXin LI# From "Tom N Harris" <telliamed@mac.com> 271b6cee71dSXin LI# Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net> 272b6cee71dSXin LI# The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these 273b6cee71dSXin LI# entries depend on the data arithmetic added after v.35 274b6cee71dSXin LI# There's also some Pascal strings in here, ditto... 275b6cee71dSXin LI 276b6cee71dSXin LI# The boot block signature, according to IM:Files, is 277b6cee71dSXin LI# "for HFS volumes, this field always contains the value 0x4C4B." 278b6cee71dSXin LI# But if this is true for MFS or HFS+ volumes, I don't know. 279b6cee71dSXin LI# Alternatively, the boot block is supposed to be zeroed if it's 280b6cee71dSXin LI# unused, so a simply >0 should suffice. 281b6cee71dSXin LI 282b6cee71dSXin LI0x400 beshort 0xD2D7 Macintosh MFS data 283b6cee71dSXin LI>0 beshort 0x4C4B (bootable) 284b6cee71dSXin LI>0x40a beshort &0x8000 (locked) 285b6cee71dSXin LI>0x402 beldate-0x7C25B080 x created: %s, 286b6cee71dSXin LI>0x406 beldate-0x7C25B080 >0 last backup: %s, 287b6cee71dSXin LI>0x414 belong x block size: %d, 288b6cee71dSXin LI>0x412 beshort x number of blocks: %d, 289b6cee71dSXin LI>0x424 pstring x volume name: %s 290b6cee71dSXin LI 291c2931133SXin LI# *.hfs updated by Joerg Jenderek 292c2931133SXin LI# http://en.wikipedia.org/wiki/Hierarchical_File_System 293b6cee71dSXin LI# "BD" gives many false positives 294c2931133SXin LI0x400 beshort 0x4244 295c2931133SXin LI# ftp://ftp.mars.org/pub/hfs/hfsutils-3.2.6.tar.gz/hfsutils-3.2.6/libhfs/apple.h 296c2931133SXin LI# first block of volume bit map (always 3) 297c2931133SXin LI>0x40e ubeshort 0x0003 298c2931133SXin LI# maximal length of volume name is 27 299c2931133SXin LI>>0x424 ubyte <28 Macintosh HFS data 300c2931133SXin LI!:mime application/x-apple-diskimage 301c2931133SXin LI#!:apple hfsdINIT 302c2931133SXin LI#!:apple MACSdisk 303*3e41d09dSXin LI# http://www.macdisk.com/macsigen.php 304*3e41d09dSXin LI#!:apple ddskdevi 305*3e41d09dSXin LI!:apple ????devi 306*3e41d09dSXin LI# https://en.wikipedia.org/wiki/Apple_Disk_Image 307*3e41d09dSXin LI!:ext hfs/dmg 308c2931133SXin LI>>>0 beshort 0x4C4B (bootable) 309c2931133SXin LI#>>>0 beshort 0x0000 (not bootable) 310c2931133SXin LI>>>0x40a beshort &0x8000 (locked) 311c2931133SXin LI>>>0x40a beshort ^0x0100 (mounted) 312c2931133SXin LI>>>0x40a beshort &0x0200 (spared blocks) 313c2931133SXin LI>>>0x40a beshort &0x0800 (unclean) 314c2931133SXin LI>>>0x47C beshort 0x482B (Embedded HFS+ Volume) 315c2931133SXin LI# http://www.epochconverter.com/ 316c2931133SXin LI# 0x7C245F00 seconds ~ 2082758400 ~ 01 Jan 2036 00:00:00 ~ 66 years to 1970 317c2931133SXin LI# 0x7C25B080 seconds ~ 2082844800 ~ 02 Jan 2036 00:00:00 318c2931133SXin LI# construct not working 319c2931133SXin LI#>>>0x402 beldate-0x7C25B080 x created: %s, 320c2931133SXin LI#>>>0x406 beldate-0x7C25B080 x last modified: %s, 321c2931133SXin LI#>>>0x440 beldate-0x7C25B080 >0 last backup: %s, 322c2931133SXin LI# found block sizes 200h,1200h,2800h 323c2931133SXin LI>>>0x414 belong x block size: %d, 324c2931133SXin LI>>>0x412 beshort x number of blocks: %d, 325c2931133SXin LI>>>0x424 pstring x volume name: %s 326b6cee71dSXin LI 327b6cee71dSXin LI0x400 beshort 0x482B Macintosh HFS Extended 328b6cee71dSXin LI>&0 beshort x version %d data 329b6cee71dSXin LI>0 beshort 0x4C4B (bootable) 330b6cee71dSXin LI>0x404 belong ^0x00000100 (mounted) 331b6cee71dSXin LI>&2 belong &0x00000200 (spared blocks) 332b6cee71dSXin LI>&2 belong &0x00000800 (unclean) 333b6cee71dSXin LI>&2 belong &0x00008000 (locked) 334b6cee71dSXin LI>&6 string x last mounted by: '%.4s', 335b6cee71dSXin LI# really, that should be treated as a belong and we print a string 336b6cee71dSXin LI# based on the value. TN1150 only mentions '8.10' for "MacOS 8.1" 337b6cee71dSXin LI>&14 beldate-0x7C25B080 x created: %s, 338b6cee71dSXin LI# only the creation date is local time, all other timestamps in HFS+ are UTC. 339b6cee71dSXin LI>&18 bedate-0x7C25B080 x last modified: %s, 340b6cee71dSXin LI>&22 bedate-0x7C25B080 >0 last backup: %s, 341b6cee71dSXin LI>&26 bedate-0x7C25B080 >0 last checked: %s, 342b6cee71dSXin LI>&38 belong x block size: %d, 343b6cee71dSXin LI>&42 belong x number of blocks: %d, 344b6cee71dSXin LI>&46 belong x free blocks: %d 345b6cee71dSXin LI 346b6cee71dSXin LI## AFAIK, only the signature is different 347c2931133SXin LI# same as Apple Partition Map 348c2931133SXin LI# GRR: This magic is too weak, it is just "TS" 349b6cee71dSXin LI#0x200 beshort 0x5453 Apple Old Partition data 350b6cee71dSXin LI#>0x2 beshort x block size: %d, 351b6cee71dSXin LI#>0x230 string x first type: %s, 352b6cee71dSXin LI#>0x210 string x name: %s, 353b6cee71dSXin LI#>0x254 belong x number of blocks: %d, 354b6cee71dSXin LI#>0x400 beshort 0x504D 355b6cee71dSXin LI#>>0x430 string x second type: %s, 356b6cee71dSXin LI#>>0x410 string x name: %s, 357b6cee71dSXin LI#>>0x454 belong x number of blocks: %d, 358b6cee71dSXin LI#>>0x800 beshort 0x504D 359b6cee71dSXin LI#>>>0x830 string x third type: %s, 360b6cee71dSXin LI#>>>0x810 string x name: %s, 361b6cee71dSXin LI#>>>0x854 belong x number of blocks: %d, 362b6cee71dSXin LI#>>>0xa00 beshort 0x504D 363b6cee71dSXin LI#>>>>0xa30 string x fourth type: %s, 364b6cee71dSXin LI#>>>>0xa10 string x name: %s, 365b6cee71dSXin LI#>>>>0xa54 belong x number of blocks: %d 366b6cee71dSXin LI 367b6cee71dSXin LI# From: Remi Mommsen <mommsen@slac.stanford.edu> 368b6cee71dSXin LI0 string BOMStore Mac OS X bill of materials (BOM) file 369b6cee71dSXin LI 370b6cee71dSXin LI# From: Adam Buchbinder <adam.buchbinder@gmail.com> 371b6cee71dSXin LI# URL: http://en.wikipedia.org/wiki/Datafork_TrueType 372b6cee71dSXin LI# Derived from the 'fondu' and 'ufond' source code (fondu.sf.net). 'sfnt' is 373b6cee71dSXin LI# TrueType; 'POST' is PostScript. 'FONT' and 'NFNT' sometimes appear, but I 374b6cee71dSXin LI# don't know what they mean. 375b6cee71dSXin LI0 belong 0x100 376b6cee71dSXin LI>(0x4.L+24) beshort x 377b6cee71dSXin LI>>&4 belong 0x73666e74 Mac OSX datafork font, TrueType 378b6cee71dSXin LI>>&4 belong 0x464f4e54 Mac OSX datafork font, 'FONT' 379b6cee71dSXin LI>>&4 belong 0x4e464e54 Mac OSX datafork font, 'NFNT' 380b6cee71dSXin LI>>&4 belong 0x504f5354 Mac OSX datafork font, PostScript 381