aboutsummaryrefslogtreecommitdiff
path: root/magic/alf
blob: 024b5194271b7eb6154698348f14a223b3ddc61e (plain)
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
### AlfCrunch
#   Reference:
#   https://slackware.uk/~urchlay/repos/alftools/plain/doc/fileformat.txt
#   https://slackware.uk/~urchlay/repos/alftools/plain/doc/compression.txt
#
#   This is very similar to ARC (see Magdir/archive), but doesn't
#   overlap with it. The . in the filename is always present, even
#   if there's no extender after it.
#
#   Offsets 18 and 28 are the high bytes of the 32-bit original and
#   compressed sizes. These will always be 0, since Atari files are
#   never >16MB in size (and since LZ.COM and DZ.COM can't create or
#   extract them anyway).
#
#   Offset 29 is the first byte of the compressed stream. It will always
#   be 0x80, because the stream always starts with a 9-bit "reset" code
#   (for normal files), or an "end" code (for 0-byte files). Either way,
#   the high 8 bits of the code are 0x80.
#
#   magicbits=61.7
#
0  uleshort 0x0f1a
>18 ubyte 0x00
>>28 ubyte 0x00
>>>29 ubyte 0x80
>>>>2  regex/13    [A-Z][A-Z0-9@_]{0,7}\.[A-Z0-9@_]{0,3}
>>>>>&0  ubyte    0
>>>>>>2  string    x  Atari 8-bit AlfCrunch data, first filename %s
!:mime   application/x-atari-8bit-alfcrunch
!:ext alf