xref: /dragonfly/contrib/file/magic/Magdir/xenix (revision 614728ca)
1327e51cbSPeter Avalos
2327e51cbSPeter Avalos#------------------------------------------------------------------------------
3*614728caSSascha Wildner# $File: xenix,v 1.14 2021/04/26 15:56:00 christos Exp $
4327e51cbSPeter Avalos# xenix:  file(1) magic for Microsoft Xenix
5327e51cbSPeter Avalos#
6327e51cbSPeter Avalos# "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
7327e51cbSPeter Avalos# model" lifted from "magic.xenix", with comment "derived empirically;
8327e51cbSPeter Avalos# treat as folklore until proven"
9327e51cbSPeter Avalos#
10327e51cbSPeter Avalos# "small model", "large model", "huge model" stuff lifted from XXX
11327e51cbSPeter Avalos#
12327e51cbSPeter Avalos# XXX - "x.out" collides with PDP-11 archives
13327e51cbSPeter Avalos#
14327e51cbSPeter Avalos0	string		core		core file (Xenix)
15c30bd091SSascha Wildner# URL: http://www.polarhome.com/service/man/?qf=86rel&tf=2&of=Xenix
16*614728caSSascha Wildner#      http://fileformats.archiveteam.org/wiki/OMF
17c30bd091SSascha Wildner# Reference: http://www.azillionmonkeys.com/qed/Omfg.pdf
18c30bd091SSascha Wildner# Update: Joerg Jenderek
19c30bd091SSascha Wildner# recordtype~TranslatorHEADerRecord
20c30bd091SSascha Wildner0	byte		0x80
21*614728caSSascha Wildner# GRR: line above is too general as it catches also Extensible storage engine DataBase,
22*614728caSSascha Wildner# all lif files like forth.lif hpcc88.lif lex90b.lif ( See ./lif)
23*614728caSSascha Wildner# and all compressed DEGAS low-res bitmaps like: MUNCHIE.PC1 PIDER1.PC1
24c30bd091SSascha Wildner# skip examples like GENA.SND Switch.Snd by looking for record length maximal 1024-3
25c30bd091SSascha Wildner>1	uleshort	<1022
26970935fdSSascha Wildner# skip examples like GAME.PICTURE Strange.Pic by looking for positive record length
27c30bd091SSascha Wildner>>1	uleshort	>0
28970935fdSSascha Wildner# skip examples like Xtable.Data FRACTAL.GEN SHR.VIEW by looking for positive string length
29c30bd091SSascha Wildner>>>3	ubyte		>0
30*614728caSSascha Wildner# skip examples like OMBRE.6 with "UUUUUU" name by looking for valid high second record type
31*614728caSSascha Wildner>>>>(1.s+3)	ubyte	>0x6D	8086 relocatable (Microsoft)
32c30bd091SSascha Wildner#!:mime	application/octet-stream
33c30bd091SSascha Wildner!:mime	application/x-object
34*614728caSSascha Wildner!:ext	obj/o/a
35*614728caSSascha Wildner# T-module name often source name like "hello.c" or "jmppm32.asm" in JMPPM32.OBJ or
36*614728caSSascha Wildner# "kbhit" in KBHITS.OBJ or "CAUSEWAY_KERNAL" in CWAPI.OBJ
37c30bd091SSascha Wildner>>>>>3	pstring		x		\b, "%s"
38*614728caSSascha Wildner# data length probably lower 256 according to TrID obj_omf.trid.xml
39*614728caSSascha Wildner>>>>>1	uleshort	x		\b, 1st record data length %u
40c30bd091SSascha Wildner# checksum
41*614728caSSascha Wildner#>>>>>(3.b+4)	ubyte	x		\b, checksum %#2.2x
42*614728caSSascha Wildner# second recordtype: 96h~LNAMES 88h~COMENT 8CH~EXTDEF
43*614728caSSascha Wildner>>>>>(1.s+3)	ubyte	x		\b, 2nd record type %#x
44*614728caSSascha Wildner>>>>>(1.s+4)	uleshort x		\b, 2nd record data length %u
45327e51cbSPeter Avalos0	leshort		0xff65		x.out
46327e51cbSPeter Avalos>2	string		__.SYMDEF	 randomized
47327e51cbSPeter Avalos>0	byte		x		archive
48327e51cbSPeter Avalos0	leshort		0x206		Microsoft a.out
49327e51cbSPeter Avalos>8	leshort		1		Middle model
50327e51cbSPeter Avalos>0x1e	leshort		&0x10		overlay
51327e51cbSPeter Avalos>0x1e	leshort		&0x2		separate
52327e51cbSPeter Avalos>0x1e	leshort		&0x4		pure
53327e51cbSPeter Avalos>0x1e	leshort		&0x800		segmented
54327e51cbSPeter Avalos>0x1e	leshort		&0x400		standalone
55327e51cbSPeter Avalos>0x1e	leshort		&0x8		fixed-stack
56327e51cbSPeter Avalos>0x1c	byte		&0x80		byte-swapped
57327e51cbSPeter Avalos>0x1c	byte		&0x40		word-swapped
58327e51cbSPeter Avalos>0x10	lelong		>0		not-stripped
59327e51cbSPeter Avalos>0x1e	leshort		^0xc000		pre-SysV
60327e51cbSPeter Avalos>0x1e	leshort		&0x4000		V2.3
61327e51cbSPeter Avalos>0x1e	leshort		&0x8000		V3.0
62327e51cbSPeter Avalos>0x1c	byte		&0x4		86
63327e51cbSPeter Avalos>0x1c	byte		&0xb		186
64327e51cbSPeter Avalos>0x1c	byte		&0x9		286
65327e51cbSPeter Avalos>0x1c	byte		&0xa		386
66327e51cbSPeter Avalos>0x1f	byte		<0x040		small model
67327e51cbSPeter Avalos>0x1f	byte		=0x048		large model
68327e51cbSPeter Avalos>0x1f	byte		=0x049		huge model
69327e51cbSPeter Avalos>0x1e	leshort		&0x1		executable
70327e51cbSPeter Avalos>0x1e	leshort		^0x1		object file
71327e51cbSPeter Avalos>0x1e	leshort		&0x40		Large Text
72327e51cbSPeter Avalos>0x1e	leshort		&0x20		Large Data
73327e51cbSPeter Avalos>0x1e	leshort		&0x120		Huge Objects Enabled
74327e51cbSPeter Avalos>0x10	lelong		>0		not stripped
75327e51cbSPeter Avalos
76327e51cbSPeter Avalos0	leshort		0x140		old Microsoft 8086 x.out
77327e51cbSPeter Avalos>0x3	byte		&0x4		separate
78327e51cbSPeter Avalos>0x3	byte		&0x2		pure
79327e51cbSPeter Avalos>0	byte		&0x1		executable
80327e51cbSPeter Avalos>0	byte		^0x1		relocatable
81327e51cbSPeter Avalos>0x14	lelong		>0		not stripped
82327e51cbSPeter Avalos
83327e51cbSPeter Avalos0	lelong		0x206		b.out
84327e51cbSPeter Avalos>0x1e	leshort		&0x10		overlay
85327e51cbSPeter Avalos>0x1e	leshort		&0x2		separate
86327e51cbSPeter Avalos>0x1e	leshort		&0x4		pure
87327e51cbSPeter Avalos>0x1e	leshort		&0x800		segmented
88327e51cbSPeter Avalos>0x1e	leshort		&0x400		standalone
89327e51cbSPeter Avalos>0x1e	leshort		&0x1		executable
90327e51cbSPeter Avalos>0x1e	leshort		^0x1		object file
91327e51cbSPeter Avalos>0x1e	leshort		&0x4000		V2.3
92327e51cbSPeter Avalos>0x1e	leshort		&0x8000		V3.0
93327e51cbSPeter Avalos>0x1c	byte		&0x4		86
94327e51cbSPeter Avalos>0x1c	byte		&0xb		186
95327e51cbSPeter Avalos>0x1c	byte		&0x9		286
96327e51cbSPeter Avalos>0x1c	byte		&0x29		286
97327e51cbSPeter Avalos>0x1c	byte		&0xa		386
98327e51cbSPeter Avalos>0x1e	leshort		&0x4		Large Text
99327e51cbSPeter Avalos>0x1e	leshort		&0x2		Large Data
100327e51cbSPeter Avalos>0x1e	leshort		&0x102		Huge Objects Enabled
101327e51cbSPeter Avalos
102327e51cbSPeter Avalos0	leshort		0x580		XENIX 8086 relocatable or 80286 small model
103