2 #------------------------------------------------------------------------------
3 # $File: xenix,v 1.10 2016/04/19 18:14:19 christos Exp $
4 # xenix: file(1) magic for Microsoft Xenix
6 # "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
7 # model" lifted from "magic.xenix", with comment "derived empirically;
8 # treat as folklore until proven"
10 # "small model", "large model", "huge model" stuff lifted from XXX
12 # XXX - "x.out" collides with PDP-11 archives
14 0 string core core file (Xenix)
15 # URL: http://www.polarhome.com/service/man/?qf=86rel&tf=2&of=Xenix
16 # Reference: http://www.azillionmonkeys.com/qed/Omfg.pdf
17 # Update: Joerg Jenderek
18 # recordtype~TranslatorHEADerRecord
20 # GRR: line above is too general as it catches also Extensible storage engine DataBase
21 # skip examples like GENA.SND Switch.Snd by looking for record length maximal 1024-3
23 # skip examples like GAME.PICTURE Strange.Pic by looking for positiv record length
25 # skip examples like Xtable.Data FRACTAL.GEN SHR.VIEW by looking for positiv string length
27 # skip examples like OMBRE.6 with "UUUUUU" by looking for filename like "hello.c"
28 >>>>4 regex [a-zA-Z_/]{1,8}[.] 8086 relocatable (Microsoft)
29 #!:mime application/octet-stream
30 !:mime application/x-object
32 >>>>>3 pstring x \b, "%s"
34 #>>>>>(3.b+4) ubyte x \b, checksum 0x%2.2x
35 0 leshort 0xff65 x.out
36 >2 string __.SYMDEF randomized
38 0 leshort 0x206 Microsoft a.out
39 >8 leshort 1 Middle model
40 >0x1e leshort &0x10 overlay
41 >0x1e leshort &0x2 separate
42 >0x1e leshort &0x4 pure
43 >0x1e leshort &0x800 segmented
44 >0x1e leshort &0x400 standalone
45 >0x1e leshort &0x8 fixed-stack
46 >0x1c byte &0x80 byte-swapped
47 >0x1c byte &0x40 word-swapped
48 >0x10 lelong >0 not-stripped
49 >0x1e leshort ^0xc000 pre-SysV
50 >0x1e leshort &0x4000 V2.3
51 >0x1e leshort &0x8000 V3.0
56 >0x1f byte <0x040 small model
57 >0x1f byte =0x048 large model
58 >0x1f byte =0x049 huge model
59 >0x1e leshort &0x1 executable
60 >0x1e leshort ^0x1 object file
61 >0x1e leshort &0x40 Large Text
62 >0x1e leshort &0x20 Large Data
63 >0x1e leshort &0x120 Huge Objects Enabled
64 >0x10 lelong >0 not stripped
66 0 leshort 0x140 old Microsoft 8086 x.out
67 >0x3 byte &0x4 separate
69 >0 byte &0x1 executable
70 >0 byte ^0x1 relocatable
71 >0x14 lelong >0 not stripped
74 >0x1e leshort &0x10 overlay
75 >0x1e leshort &0x2 separate
76 >0x1e leshort &0x4 pure
77 >0x1e leshort &0x800 segmented
78 >0x1e leshort &0x400 standalone
79 >0x1e leshort &0x1 executable
80 >0x1e leshort ^0x1 object file
81 >0x1e leshort &0x4000 V2.3
82 >0x1e leshort &0x8000 V3.0
88 >0x1e leshort &0x4 Large Text
89 >0x1e leshort &0x2 Large Data
90 >0x1e leshort &0x102 Huge Objects Enabled
92 0 leshort 0x580 XENIX 8086 relocatable or 80286 small model