1 2 #------------------------------------------------------------------------------ 3 # $File: os2,v 1.14 2022/03/21 21:25:50 christos Exp $ 4 # os2: file(1) magic for OS/2 files 5 # 6 7 # Provided 1998/08/22 by 8 # David Mediavilla <davidme.news (a] REMOVEIFNOTSPAMusa.net> 9 1 search/100 InternetShortcut MS Windows 95 Internet shortcut text 10 !:mime application/x-mswinurl 11 !:ext url 12 >17 search/100 URL= (URL=< 13 >>&0 string x \b%s>) 14 15 # OS/2 URL objects 16 # Provided 1998/08/22 by 17 # David Mediavilla <davidme.news (a] REMOVEIFNOTSPAMusa.net> 18 #0 string http: OS/2 URL object text 19 #>5 string >\ (WWW) <http:%s> 20 #0 string mailto: OS/2 URL object text 21 #>7 string >\ (email) <%s> 22 #0 string news: OS/2 URL object text 23 #>5 string >\ (Usenet) <%s> 24 #0 string ftp: OS/2 URL object text 25 #>4 string >\ (FTP) <ftp:%s> 26 #0 string file: OS/2 URL object text 27 #>5 string >\ (Local file) <%s> 28 29 # >>>>> OS/2 INF/HLP <<<<< (source: Daniel Dissett ddissett (a] netcom.com) 30 # URL: http://fileformats.archiveteam.org/wiki/INF/HLP_(OS/2) 31 # Reference: http://www.edm2.com/0308/inf.html 32 # Carl Hauser (chauser.parc (a] xerox.com) and 33 # Marcus Groeber (marcusg (a] ph-cip.uni-koeln.de) 34 # list the following header format in inf02a.doc: 35 # 36 # int16 ID; // ID magic word (5348h = "HS") 37 # int8 unknown1; // unknown purpose, could be third letter of ID 38 # int8 flags; // probably a flag word... 39 # // bit 0: set if INF style file 40 # // bit 4: set if HLP style file 41 # // patching this byte allows reading HLP files 42 # // using the VIEW command, while help files 43 # // seem to work with INF settings here as well. 44 # int16 hdrsize; // total size of header 45 # int16 unknown2; // unknown purpose 46 # 47 0 string HSP\x01\x9b\x00 OS/2 INF 48 !:mime application/x-os2-inf 49 !:ext inf 50 >107 string >0 (%s) 51 0 string HSP\x10\x9b\x00 OS/2 HLP 52 !:mime application/x-os2-hlp 53 !:ext hlp 54 >107 string >0 (%s) 55 56 # From: Joerg Jenderek 57 # URL: http://fileformats.archiveteam.org/wiki/MSG_(OS/2) 58 # Reference: https://github.com/OS2World/UTIL-SYSTEM-MKMSGF/blob/master/mkmsgf.h 59 # Note: created by MKMSGF.EXE. Text source can be recreated by E_MSGF 60 # example like OS001H.MSG 61 0 string \xffMKMSGF\0 OS/2 help message 62 !:mime application/x-os2-msg 63 !:ext msg 64 # identifier[3] like: DOS NET REX SYS ... 65 >8 string x '%.3s' 66 # msgnumber: number of messages 67 >11 uleshort x \b, %u messages 68 # firstmsgnumber; number of the first message like: some times 0 often 1 169 1000 3502 69 >13 uleshort >1 \b, 1st number %u 70 # offset16bit; 1~Index table has 16-bit offsets (files<64k) 0~Index table has 32-bit offsets 71 >15 ubyte =0 \b, 32-bit 72 #>15 ubyte =1 \b, 16-bit 73 # version; file version: 2~new 0~old 74 >16 uleshort !2 \b, version %u 75 # indextaboffset; offset of index table: 1F~after header 0~no index table for version 0? 76 >18 uleshort >0 77 >>18 uleshort !0x1f \b, at %#x index 78 # 32-bit offset 79 >>15 ubyte =0 80 # offset with message table 81 >>>(18.s) ulelong x \b, at %#x 82 # 1st message 83 # http://www.os2museum.com/files/docs/os210ptk/os2-1.0-ptk-tools-1988.pdf 84 # message type: E~Error H~Help I~Information P~Prompt W~Warning ? 85 >>>>(&-4.l) ubyte x %c-type 86 >>>>>&0 string x %s 87 # 16-bit offset 88 >>15 ubyte =1 89 # msgnum; message number 90 >>>(18.s) uleshort x \b, number %u 91 # msgindex; offset of message from begin of file 92 >>>(18.s+2) uleshort x at %#x 93 # message type E H I P W ? 94 >>>>(&-2.s) ubyte x %c-type 95 # skip newline carriage return 96 >>>>>&0 ubeshort =0x0D0a 97 >>>>>>&0 string x %s 98 >>>>>&0 ubeshort !0x0D0a 99 >>>>>>&-2 string x %s 100 # for version 0 index table apparently at offset 1F 101 >16 uleshort 0 102 >>15 ubyte 1 103 # 1st message 16-bit 104 >>>0x1F uleshort x \b, at %#x 105 # message type: E~Error H~Help I~Information P~Prompt W~Warning ? 106 >>>>(0x1F.s) ubyte x %c-type 107 >>>>>&0 string x %s 108 # 2nd message 16-bit 109 >>>0x21 uleshort x \b, at %#x 110 >>>>(0x21.s) ubyte x %c-type 111 >>>>>&0 string x %s 112 # 3rd message 16-bit 113 >>>0x23 uleshort x \b, at %#x 114 >>>>(0x23.s) ubyte x %c-type 115 >>>>>&0 string x %s 116 # version 0 32-bit 117 >>15 ubyte 0 118 # 1st message 32-bit 119 >>>0x1f ulelong x \b, at %#x 120 >>>>(0x1F.l) ubyte x %c-type 121 >>>>>&0 string x %s 122 # 2nd message 32-bit 123 >>>0x23 ulelong x \b, at %#x 124 >>>>(0x23.l) ubyte x %c-type 125 >>>>>&0 string x %s 126 # 3rd message 32-bit 127 >>>0x27 ulelong x \b, AT %#x 128 >>>>(0x27.l) ubyte x %c-type 129 >>>>>&0 string x %s 130 # countryinfo; offset of country info block: 0 for version 0 131 >20 uleshort !0 \b, at %#x countryinfo 132 # nextcoutryinfo 133 >>22 uleshort >0 \b, at %#x next 134 # reserved[5]; Must be 0 135 >>25 ulelong !0 \b, RESERVED %#x 136 >>(20.s) use os2-msg-info 137 # display country info block of MKMSGF message file 138 0 name os2-msg-info 139 # bytesperchar; bytes per char: 1~SBCS 2~DBCS 140 >0 ubyte >1 \b, %u bytes/char 141 # reserved; Not known 142 >1 uleshort !0 \b, reserved %#x 143 # langfamilyID; language family ID like: 0~? 1~Arabic ... 7~German ... 9~English ... 34~Slovene 144 >3 uleshort >0 \b, language %u 145 # langversionID; like: 7_1~German 7_2~Swiss German 12_1~French 12_3~Canadian French 146 >>5 uleshort x \b_%u 147 # langfamilyID too high. This should not happen 148 >3 uleshort >34 (invalid language) 149 # codepagesnumber; number of codepages like: 1 2 ... 16 150 >7 uleshort x \b, %u code page 151 # plural s 152 >7 uleshort >1 \bs 153 # too many number of codepages. This should not happen 154 >7 uleshort >16 (Too many) 155 # codepages[16]; codepages list like 437 850 ... 156 >7 uleshort <17 157 # 1st code page 158 >>9 uleshort >0 %u 159 # possible 2nd code page number 160 >>>7 uleshort >1 161 >>>>11 uleshort x %u 162 # filename[260]; name of file like: dbaseos2.msg dde4c01e.msg os2ldr.mgr xdfh.msg ... 163 >41 string x \b, %s 164 165 # OS/2 INI (this is a guess) 166 0 string \xff\xff\xff\xff\x14\0\0\0 OS/2 INI 167 !:mime application/x-os2-ini 168 !:ext ini 169 170 # From: Joerg Jenderek 171 # URL: http://warpin.netlabs.org/ 172 # Reference: http://mark0.net/download/triddefs_xml.7z/defs/a/ark-wpi.trid.xml 173 # Note: called by TrID "WarpIN Installer" 174 # probably magic at the beginning 175 0 ubelong =0x770402BE WarpIN Installer 176 #>4 ubelong =0x03000000 177 #!:mime application/octet-stream 178 !:mime application/x-os2-wpi 179 !:ext wpi 180 # creator program name like: "reserved" or "WIC x.y.z" 181 >0x106 string x \b, created by %s 182 # name like: "reserved" or "OS/2 Netlabs" 183 >0x146 string x \b, '%s' 184 # name like: "N/A" "http://warpin.netlabs.org" 185 >0x186 string x \b, URL %s 186 187