1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
#------------------------------------------------------------------------------
# macintosh description
#
# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
# Daniel Quinlan, quinlan@yggdrasil.com
11 string must\ be\ converted\ with\ BinHex BinHex binary text
>41 string x \b, version %.3s
# Stuffit archives are the de facto standard of compression for Macintosh
# files obtained from most archives. (franklsm@tuns.ca)
0 string SIT! StuffIt Archive (data)
>2 string x : %s
0 string SITD StuffIt Deluxe (data)
>2 string x : %s
0 string Seg StuffIt Deluxe Segment (data)
>2 string x : %s
# Macintosh Applications and Installation binaries (franklsm@tuns.ca)
0 string APPL Macintosh Application (data)
>2 string x \b: %s
# Macintosh System files (franklsm@tuns.ca)
0 string zsys Macintosh System File (data)
0 string FNDR Macintosh Finder (data)
0 string libr Macintosh Library (data)
>2 string x : %s
0 string shlb Macintosh Shared Library (data)
>2 string x : %s
0 string cdev Macintosh Control Panel (data)
>2 string x : %s
0 string INIT Macintosh Extension (data)
>2 string x : %s
0 string FFIL Macintosh Truetype Font (data)
>2 string x : %s
0 string LWFN Macintosh Postscript Font (data)
>2 string x : %s
# Additional Macintosh Files (franklsm@tuns.ca)
0 string PACT Macintosh Compact Pro Archive (data)
>2 string x : %s
0 string ttro Macintosh TeachText File (data)
>2 string x : %s
0 string TEXT Macintosh TeachText File (data)
>2 string x : %s
0 string PDF Macintosh PDF File (data)
>2 string x : %s
# MacBinary format (Eric Fischer, enf@pobox.com)
#
# Unfortunately MacBinary doesn't really have a magic number prior
# to the MacBinary III format. The checksum is really the way to
# do it, but the magic file format isn't up to the challenge.
#
# 0 byte 0
# 1 byte # filename length
# 2 string # filename
# 65 string # file type
# 69 string # file creator
# 73 byte # Finder flags
# 74 byte 0
# 75 beshort # vertical posn in window
# 77 beshort # horiz posn in window
# 79 beshort # window or folder ID
# 81 byte # protected?
# 82 byte 0
# 83 belong # length of data segment
# 87 belong # length of resource segment
# 91 belong # file creation date
# 95 belong # file modification date
# 99 beshort # length of comment after resource
# 101 byte # new Finder flags
# 102 string mBIN # (only in MacBinary III)
# 106 byte # char. code of file name
# 107 byte # still more Finder flags
# 116 belong # total file length
# 120 beshort # length of add'l header
# 122 byte 129 # for MacBinary II
# 122 byte 130 # for MacBinary III
# 123 byte 129 # minimum version that can read fmt
# 124 beshort # checksum
#
# This attempts to use the version numbers as a magic number, requiring
# that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
# be 0x81. This works for the files I have, but maybe not for everyone's.
122 beshort&0xFCFF 0x8081 Macintosh MacBinary data
# MacBinary I doesn't have the version number field at all, but MacBinary II
# has been in use since 1987 so I hope there aren't many really old files
# floating around that this will miss. The original spec calls for using
# the nulls in 0, 74, and 82 as the magic number.
#
# Another possibility, that would also work for MacBinary I, is to use
# the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will
# have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset,
# and that 74 will be 0. So something like
#
# 71 belong&0x80804EFF 0x00000000 Macintosh MacBinary data
#
# >73 byte&0x01 0x01 \b, inited
# >73 byte&0x02 0x02 \b, changed
# >73 byte&0x04 0x04 \b, busy
# >73 byte&0x08 0x08 \b, bozo
# >73 byte&0x10 0x10 \b, system
# >73 byte&0x10 0x20 \b, bundle
# >73 byte&0x10 0x40 \b, invisible
# >73 byte&0x10 0x80 \b, locked
>65 string x \b, type "%4.4s"
>65 string 8BIM (PhotoShop)
>65 string ALB3 (PageMaker 3)
>65 string ALB4 (PageMaker 4)
>65 string ALT3 (PageMaker 3)
>65 string APPL (application)
>65 string AWWP (AppleWorks word processor)
>65 string CIRC (simulated circuit)
>65 string DRWG (MacDraw)
>65 string EPSF (Encapsulated PostScript)
>65 string FFIL (font suitcase)
>65 string FKEY (function key)
>65 string FNDR (Macintosh Finder)
>65 string GIFf (GIF image)
>65 string Gzip (GNU gzip)
>65 string INIT (system extension)
>65 string LIB\ (library)
>65 string LWFN (PostScript font)
>65 string MSBC (Microsoft BASIC)
>65 string PACT (Compact Pro archive)
>65 string PDF\ (Portable Document Format)
>65 string PICT (picture)
>65 string PNTG (MacPaint picture)
>65 string PREF (preferences)
>65 string PROJ (Think C project)
>65 string QPRJ (Think Pascal project)
>65 string SCFL (Defender scores)
>65 string SCRN (startup screen)
>65 string SITD (StuffIt Deluxe)
>65 string SPn3 (SuperPaint)
>65 string STAK (HyperCard stack)
>65 string Seg\ (StuffIt segment)
>65 string TARF (Unix tar archive)
>65 string TEXT (ASCII)
>65 string TIFF (TIFF image)
>65 string TOVF (Eudora table of contents)
>65 string WDBN (Microsoft Word word processor)
>65 string WORD (MacWrite word processor)
>65 string XLS\ (Microsoft Excel)
>65 string ZIVM (compress (.Z))
>65 string ZSYS (Pre-System 7 system file)
>65 string acf3 (Aldus FreeHand)
>65 string cdev (control panel)
>65 string dfil (Desk Acessory suitcase)
>65 string libr (library)
>65 string nX^d (WriteNow word processor)
>65 string nX^w (WriteNow dictionary)
>65 string rsrc (resource)
>65 string scbk (Scrapbook)
>65 string shlb (shared library)
>65 string ttro (SimpleText read-only)
>65 string zsys (system file)
>69 string x \b, creator "%4.4s"
# Somewhere, Apple has a repository of registered Creator IDs. These are
# just the ones that I happened to have files from and was able to identify.
>69 string 8BIM (Adobe Photoshop)
>69 string ALD3 (PageMaker 3)
>69 string ALD4 (PageMaker 4)
>69 string ALFA (Alpha editor)
>69 string APLS (Apple Scanner)
>69 string APSC (Apple Scanner)
>69 string BRKL (Brickles)
>69 string BTFT (BitFont)
>69 string CCL2 (Common Lisp 2)
>69 string CCL\ (Common Lisp)
>69 string CDmo (The Talking Moose)
>69 string CPCT (Compact Pro)
>69 string CSOm (Eudora)
>69 string DMOV (Font/DA Mover)
>69 string DSIM (DigSim)
>69 string EDIT (Macintosh Edit)
>69 string ERIK (Macintosh Finder)
>69 string EXTR (self-extracting archive)
>69 string Gzip (GNU gzip)
>69 string KAHL (Think C)
>69 string LWFU (LaserWriter Utility)
>69 string LZIV (compress)
>69 string MACA (MacWrite)
>69 string MACS (Macintosh operating system)
>69 string MAcK (MacKnowledge terminal emulator)
>69 string MLND (Defender)
>69 string MPNT (MacPaint)
>69 string MSBB (Microsoft BASIC (binary))
>69 string MSWD (Microsoft Word)
>69 string NCSA (NCSA Telnet)
>69 string PJMM (Think Pascal)
>69 string PSAL (Hunt the Wumpus)
>69 string PSI2 (Apple File Exchange)
>69 string R*ch (BBEdit)
>69 string RMKR (Resource Maker)
>69 string RSED (Resource Editor)
>69 string Rich (BBEdit)
>69 string SIT! (StuffIt)
>69 string SPNT (SuperPaint)
>69 string Unix (NeXT Mac filesystem)
>69 string VIM! (Vim editor)
>69 string WILD (HyperCard)
>69 string XCEL (Microsoft Excel)
>69 string aCa2 (Fontographer)
>69 string aca3 (Aldus FreeHand)
>69 string dosa (Macintosh MS-DOS file system)
>69 string movr (Font/DA Mover)
>69 string nX^n (WriteNow)
>69 string pdos (Apple ProDOS file system)
>69 string scbk (Scrapbook)
>69 string ttxt (SimpleText)
>69 string ufox (Foreign File Access)
# Just in case...
102 string mBIN MacBinary III data with surprising version number
|