vendor/file: upgrade from 5.40 to 5.41
[dragonfly.git] / contrib / file / magic / Magdir / acorn
1
2 #------------------------------------------------------------------------------
3 # $File: acorn,v 1.8 2021/04/26 15:56:00 christos Exp $
4 # acorn:  file(1) magic for files found on Acorn systems
5 #
6
7 # RISC OS Chunk File Format
8 # From RISC OS Programmer's Reference Manual, Appendix D
9 # We guess the file type from the type of the first chunk.
10 0       lelong          0xc3cbc6c5      RISC OS Chunk data
11 >12     string          OBJ_            \b, AOF object
12 >12     string          LIB_            \b, ALF library
13
14 # RISC OS AIF, contains "SWI OS_Exit" at offset 16.
15 16      lelong          0xef000011      RISC OS AIF executable
16
17 # RISC OS Draw files
18 # From RISC OS Programmer's Reference Manual, Appendix E
19 0       string          Draw            RISC OS Draw file data
20
21 # RISC OS new format font files
22 # From RISC OS Programmer's Reference Manual, Appendix E
23 0       string          FONT\0          RISC OS outline font data,
24 >5      byte            x               version %d
25 0       string          FONT\1          RISC OS 1bpp font data,
26 >5      byte            x               version %d
27 0       string          FONT\4          RISC OS 4bpp font data
28 >5      byte            x               version %d
29
30 # RISC OS Music files
31 # From RISC OS Programmer's Reference Manual, Appendix E
32 0       string          Maestro\r       RISC OS music file
33 >8      byte            x               version %d
34
35 >8      byte            x               type %d
36
37 # Digital Symphony data files
38 # From: Bernard Jungen (bern8817@euphonynet.be)
39 0               string  \x02\x01\x13\x13\x13\x01\x0d\x10        Digital Symphony sound sample (RISC OS),
40 >8              byte    x       version %d,
41 >9              pstring x       named "%s",
42 >(9.b+19)       byte    =0      8-bit logarithmic
43 >(9.b+19)       byte    =1      LZW-compressed linear
44 >(9.b+19)       byte    =2      8-bit linear signed
45 >(9.b+19)       byte    =3      16-bit linear signed
46 >(9.b+19)       byte    =4      SigmaDelta-compressed linear
47 >(9.b+19)       byte    =5      SigmaDelta-compressed logarithmic
48 >(9.b+19)       byte    >5      unknown format
49
50 0       string  \x02\x01\x13\x13\x14\x12\x01\x0b        Digital Symphony song (RISC OS),
51 >8      byte    x       version %d,
52 >9      byte    =1      1 voice,
53 >9      byte    !1      %d voices,
54 >10     leshort =1      1 track,
55 >10     leshort !1      %d tracks,
56 >12     leshort =1      1 pattern
57 >12     leshort !1      %d patterns
58
59 0       string  \x02\x01\x13\x13\x10\x14\x12\x0e
60 >9      byte    =0      Digital Symphony sequence (RISC OS),
61 >>8     byte    x       version %d,
62 >>10    byte    =1      1 line,
63 >>10    byte    !1      %d lines,
64 >>11    leshort =1      1 position
65 >>11    leshort !1      %d positions
66 >9      byte    =1      Digital Symphony pattern data (RISC OS),
67 >>8     byte    x       version %d,
68 >>10    leshort =1      1 pattern
69 >>10    leshort !1      %d patterns
70
71 # From: Joerg Jenderek
72 # URL: https://www.kyzer.me.uk/pack/xad/#PackDir
73 # reference: https://www.kyzer.me.uk/pack/xad/xad_PackDir.lha/PackDir.c
74 # GRR: line below is too general as it matches also "Git pack" in ./revision
75 0       string  PACK\0
76 # check for valid compression method 0-4
77 >5      ulelong <5
78 # https://www.riscosopen.org/wiki/documentation/show/Introduction%20To%20Filing%20Systems
79 # To skip "Git pack" version 0 test for root directory object like
80 # ADFS::RPC.$.websitezip.FONTFIX
81 >>9     string  >ADFS\  PackDir archive (RISC OS)
82 # TrID labels above as "Acorn PackDir compressed Archive"
83 # compression mode y (0 - 4) for GIF LZW with a maximum n bits
84 # (y~n,0~12,1~13,2~14,3~15,4~16)
85 >>>5    ulelong+12 x    \b, LZW %u-bits compression
86 # https://www.filebase.org.uk/filetypes
87 # !Packdir compressed archive has three hexadecimal digits code 68E
88 !:mime  application/x-acorn-68E
89 !:ext   pkd/bin
90 # null terminated root directory object like IDEFS::IDE-4.$.Apps.GRAPHICS.!XFMPdemo
91 >>>9    string  x       \b, root "%s"
92 # load address 0xFFFtttdd, ttt is the object filetype and dddddddddd is time
93 >>>>&1  ulelong x       \b, load address %#x
94 # execution address 0xdddddddd dddddddddd is 40 bit unsigned centiseconds since 1.1.1900 UTC
95 >>>>&5  ulelong x       \b, exec address %#x
96 # attributes (bits: 0~owner read,1~owner write,3~no delete,4~public read,5~public write)
97 >>>>&9  ulelong x       \b, attributes %#x 
98 # number of entries in this directory. for root dir 0
99 #>>>&13 ulelong x       \b, entries %#x 
100 # the entries start here with object name
101 >>>>&17 string  x       \b, 1st object "%s"
102