summaryrefslogtreecommitdiffstats
path: root/magic/Magdir/os2
blob: cb43e999f6f68852fd64cfb14c15f70de7e822fa (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
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
#------------------------------------------------------------------------------
# $File: os2,v 1.14 2022/03/21 21:25:50 christos Exp $
# os2:  file(1) magic for OS/2 files
#

# Provided 1998/08/22 by
# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
1	search/100	InternetShortcut	MS Windows 95 Internet shortcut text
!:mime	application/x-mswinurl
!:ext	url
>17	search/100	URL= 			(URL=<
>>&0	string		x			\b%s>)

# OS/2 URL objects
# Provided 1998/08/22 by
# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
#0	string	http:			OS/2 URL object text
#>5	string	>\			(WWW) <http:%s>
#0	string	mailto:			OS/2 URL object text
#>7	string	>\			(email) <%s>
#0	string	news:			OS/2 URL object text
#>5	string	>\			(Usenet) <%s>
#0	string	ftp:			OS/2 URL object text
#>4	string	>\			(FTP) <ftp:%s>
#0	string	file:			OS/2 URL object text
#>5	string	>\			(Local file) <%s>

# >>>>> OS/2 INF/HLP <<<<<  (source: Daniel Dissett ddissett@netcom.com)
# URL:		http://fileformats.archiveteam.org/wiki/INF/HLP_(OS/2)
# Reference:	http://www.edm2.com/0308/inf.html
# Carl Hauser (chauser.parc@xerox.com) and
# Marcus Groeber (marcusg@ph-cip.uni-koeln.de)
# list the following header format in inf02a.doc:
#
#  int16 ID;           // ID magic word (5348h = "HS")
#  int8  unknown1;     // unknown purpose, could be third letter of ID
#  int8  flags;        // probably a flag word...
#                      //  bit 0: set if INF style file
#                      //  bit 4: set if HLP style file
#                      // patching this byte allows reading HLP files
#                      // using the VIEW command, while help files
#                      // seem to work with INF settings here as well.
#  int16 hdrsize;      // total size of header
#  int16 unknown2;     // unknown purpose
#
0   string  HSP\x01\x9b\x00 OS/2 INF
!:mime	application/x-os2-inf
!:ext	inf
>107 string >0                      (%s)
0   string  HSP\x10\x9b\x00     OS/2 HLP
!:mime	application/x-os2-hlp
!:ext	hlp
>107 string >0                      (%s)

# From:		Joerg Jenderek
# URL:		http://fileformats.archiveteam.org/wiki/MSG_(OS/2)
# Reference:	https://github.com/OS2World/UTIL-SYSTEM-MKMSGF/blob/master/mkmsgf.h
# Note:		created by MKMSGF.EXE. Text source can be recreated by E_MSGF
#		example like OS001H.MSG
0	string			\xffMKMSGF\0	OS/2 help message
!:mime	application/x-os2-msg
!:ext	msg
# identifier[3] like: DOS NET REX SYS ...
>8	string				x	'%.3s'
# msgnumber: number of messages
>11	uleshort			x	\b, %u messages
# firstmsgnumber; number of the first message like: some times 0 often 1 169 1000 3502
>13	uleshort      			>1	\b, 1st number %u
# offset16bit; 1~Index table has 16-bit offsets (files<64k) 0~Index table has 32-bit offsets
>15	ubyte				=0	\b, 32-bit
#>15	ubyte				=1	\b, 16-bit
# version; file version: 2~new 0~old
>16	uleshort      			!2	\b, version %u
# indextaboffset; offset of index table: 1F~after header 0~no index table for version 0?
>18	uleshort			>0
>>18		uleshort		!0x1f	\b, at %#x index
#	32-bit offset
>>15		ubyte			=0
# offset with message table
>>>(18.s)		ulelong		x	\b, at %#x
# 1st message
# http://www.os2museum.com/files/docs/os210ptk/os2-1.0-ptk-tools-1988.pdf
# message type: E~Error H~Help I~Information P~Prompt W~Warning ?
>>>>(&-4.l)		ubyte		x	%c-type
>>>>>&0			string		x	%s
#	16-bit offset
>>15		ubyte			=1
# msgnum; message number
>>>(18.s)		uleshort	x	\b, number %u
# msgindex; offset of message from begin of file
>>>(18.s+2)		uleshort	x	at %#x
# message type E H I P W ?
>>>>(&-2.s)		ubyte		x	%c-type
# skip newline carriage return
>>>>>&0			ubeshort	=0x0D0a
>>>>>>&0		string		x	%s
>>>>>&0			ubeshort	!0x0D0a
>>>>>>&-2		string		x	%s
#		for version 0 index table apparently at offset 1F
>16	uleshort      			0
>>15		ubyte			1
# 1st message 16-bit
>>>0x1F			uleshort	x	\b, at %#x
# message type: E~Error H~Help I~Information P~Prompt W~Warning ?
>>>>(0x1F.s)		ubyte		x	%c-type
>>>>>&0			string		x	%s
# 2nd message 16-bit
>>>0x21			uleshort	x	\b, at %#x
>>>>(0x21.s)		ubyte		x	%c-type
>>>>>&0			string		x	%s
# 3rd message 16-bit
>>>0x23			uleshort	x	\b, at %#x
>>>>(0x23.s)		ubyte		x	%c-type
>>>>>&0			string		x	%s
#		version 0 32-bit
>>15		ubyte			0
# 1st message 32-bit
>>>0x1f			ulelong		x	\b, at %#x
>>>>(0x1F.l)		ubyte		x	%c-type
>>>>>&0			string		x	%s
# 2nd message 32-bit
>>>0x23			ulelong		x	\b, at %#x
>>>>(0x23.l)		ubyte		x	%c-type
>>>>>&0			string		x	%s
# 3rd message 32-bit
>>>0x27			ulelong		x	\b, AT %#x
>>>>(0x27.l)		ubyte		x	 %c-type
>>>>>&0			string		x	%s
# countryinfo; offset of country info block: 0 for version 0
>20	uleshort			!0	\b, at %#x countryinfo
# nextcoutryinfo
>>22		uleshort		>0	\b, at %#x next
# reserved[5]; Must be 0
>>25	ulelong		!0		\b, RESERVED %#x 
>>(20.s) use				os2-msg-info
#	display country info block of MKMSGF message file
0	name		os2-msg-info
# bytesperchar; bytes per char: 1~SBCS 2~DBCS
>0	ubyte		>1		\b, %u bytes/char
# reserved; Not known
>1	uleshort	!0		\b, reserved %#x
# langfamilyID; language family ID like: 0~? 1~Arabic ... 7~German ... 9~English  ... 34~Slovene
>3	uleshort	>0		\b, language %u
# langversionID; like: 7_1~German 7_2~Swiss German 12_1~French 12_3~Canadian French
>>5	uleshort	x		\b_%u
# langfamilyID too high. This should not happen
>3	uleshort	>34		(invalid language)
# codepagesnumber; number of codepages like: 1 2 ... 16
>7	uleshort	x		\b, %u code page
# plural s
>7	uleshort	>1		\bs
# too many number of codepages. This should not happen
>7	uleshort	>16		(Too many)
# codepages[16]; codepages list like 437 850 ...
>7	uleshort	<17
# 1st code page
>>9	uleshort	>0		%u
# possible 2nd code page number
>>>7	uleshort	>1
>>>>11	uleshort	x		%u
# filename[260]; name of file like: dbaseos2.msg dde4c01e.msg os2ldr.mgr xdfh.msg ...
>41	string		x	 	\b, %s

# OS/2 INI (this is a guess)
0  string   \xff\xff\xff\xff\x14\0\0\0  OS/2 INI
!:mime	application/x-os2-ini
!:ext	ini

# From:		Joerg Jenderek
# URL:		http://warpin.netlabs.org/
# Reference:    http://mark0.net/download/triddefs_xml.7z/defs/a/ark-wpi.trid.xml
# Note:		called by TrID "WarpIN Installer"
# probably magic at the beginning
0	ubelong		=0x770402BE	WarpIN Installer
#>4	ubelong		=0x03000000
#!:mime	application/octet-stream
!:mime	application/x-os2-wpi
!:ext	wpi
# creator program name like: "reserved" or "WIC x.y.z"
>0x106	string		x		\b, created by %s
# name like: "reserved" or "OS/2 Netlabs"
>0x146	string		x		\b, '%s'
# name like: "N/A" "http://warpin.netlabs.org"
>0x186	string		x		\b, URL %s