1f72f8299SJan Lentfer 2327e51cbSPeter Avalos#------------------------------------------------------------------------------ 3*3b9cdfa3SAntonio Huete Jimenez# $File: os2,v 1.14 2022/03/21 21:25:50 christos Exp $ 4327e51cbSPeter Avalos# os2: file(1) magic for OS/2 files 5327e51cbSPeter Avalos# 6327e51cbSPeter Avalos 7327e51cbSPeter Avalos# Provided 1998/08/22 by 8327e51cbSPeter Avalos# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net> 9c30bd091SSascha Wildner1 search/100 InternetShortcut MS Windows 95 Internet shortcut text 10*3b9cdfa3SAntonio Huete Jimenez!:mime application/x-mswinurl 11*3b9cdfa3SAntonio Huete Jimenez!:ext url 12c30bd091SSascha Wildner>17 search/100 URL= (URL=< 13c30bd091SSascha Wildner>>&0 string x \b%s>) 14327e51cbSPeter Avalos 15327e51cbSPeter Avalos# OS/2 URL objects 16327e51cbSPeter Avalos# Provided 1998/08/22 by 17327e51cbSPeter Avalos# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net> 18327e51cbSPeter Avalos#0 string http: OS/2 URL object text 19327e51cbSPeter Avalos#>5 string >\ (WWW) <http:%s> 20327e51cbSPeter Avalos#0 string mailto: OS/2 URL object text 21327e51cbSPeter Avalos#>7 string >\ (email) <%s> 22327e51cbSPeter Avalos#0 string news: OS/2 URL object text 23327e51cbSPeter Avalos#>5 string >\ (Usenet) <%s> 24327e51cbSPeter Avalos#0 string ftp: OS/2 URL object text 25327e51cbSPeter Avalos#>4 string >\ (FTP) <ftp:%s> 26327e51cbSPeter Avalos#0 string file: OS/2 URL object text 27327e51cbSPeter Avalos#>5 string >\ (Local file) <%s> 28327e51cbSPeter Avalos 29327e51cbSPeter Avalos# >>>>> OS/2 INF/HLP <<<<< (source: Daniel Dissett ddissett@netcom.com) 30970935fdSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/INF/HLP_(OS/2) 31970935fdSSascha Wildner# Reference: http://www.edm2.com/0308/inf.html 32327e51cbSPeter Avalos# Carl Hauser (chauser.parc@xerox.com) and 33327e51cbSPeter Avalos# Marcus Groeber (marcusg@ph-cip.uni-koeln.de) 34327e51cbSPeter Avalos# list the following header format in inf02a.doc: 35327e51cbSPeter Avalos# 36327e51cbSPeter Avalos# int16 ID; // ID magic word (5348h = "HS") 37327e51cbSPeter Avalos# int8 unknown1; // unknown purpose, could be third letter of ID 38327e51cbSPeter Avalos# int8 flags; // probably a flag word... 39327e51cbSPeter Avalos# // bit 0: set if INF style file 40327e51cbSPeter Avalos# // bit 4: set if HLP style file 41327e51cbSPeter Avalos# // patching this byte allows reading HLP files 42327e51cbSPeter Avalos# // using the VIEW command, while help files 43327e51cbSPeter Avalos# // seem to work with INF settings here as well. 44327e51cbSPeter Avalos# int16 hdrsize; // total size of header 45327e51cbSPeter Avalos# int16 unknown2; // unknown purpose 46327e51cbSPeter Avalos# 47327e51cbSPeter Avalos0 string HSP\x01\x9b\x00 OS/2 INF 48970935fdSSascha Wildner!:mime application/x-os2-inf 49970935fdSSascha Wildner!:ext inf 50327e51cbSPeter Avalos>107 string >0 (%s) 51327e51cbSPeter Avalos0 string HSP\x10\x9b\x00 OS/2 HLP 52970935fdSSascha Wildner!:mime application/x-os2-hlp 53970935fdSSascha Wildner!:ext hlp 54327e51cbSPeter Avalos>107 string >0 (%s) 55327e51cbSPeter Avalos 56970935fdSSascha Wildner# From: Joerg Jenderek 57970935fdSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/MSG_(OS/2) 58970935fdSSascha Wildner# Reference: https://github.com/OS2World/UTIL-SYSTEM-MKMSGF/blob/master/mkmsgf.h 59970935fdSSascha Wildner# Note: created by MKMSGF.EXE. Text source can be recreated by E_MSGF 60970935fdSSascha Wildner# example like OS001H.MSG 61970935fdSSascha Wildner0 string \xffMKMSGF\0 OS/2 help message 62970935fdSSascha Wildner!:mime application/x-os2-msg 63970935fdSSascha Wildner!:ext msg 64970935fdSSascha Wildner# identifier[3] like: DOS NET REX SYS ... 65970935fdSSascha Wildner>8 string x '%.3s' 66970935fdSSascha Wildner# msgnumber: number of messages 67970935fdSSascha Wildner>11 uleshort x \b, %u messages 68970935fdSSascha Wildner# firstmsgnumber; number of the first message like: some times 0 often 1 169 1000 3502 69970935fdSSascha Wildner>13 uleshort >1 \b, 1st number %u 70970935fdSSascha Wildner# offset16bit; 1~Index table has 16-bit offsets (files<64k) 0~Index table has 32-bit offsets 71970935fdSSascha Wildner>15 ubyte =0 \b, 32-bit 72970935fdSSascha Wildner#>15 ubyte =1 \b, 16-bit 73970935fdSSascha Wildner# version; file version: 2~new 0~old 74970935fdSSascha Wildner>16 uleshort !2 \b, version %u 75970935fdSSascha Wildner# indextaboffset; offset of index table: 1F~after header 0~no index table for version 0? 76970935fdSSascha Wildner>18 uleshort >0 77614728caSSascha Wildner>>18 uleshort !0x1f \b, at %#x index 78970935fdSSascha Wildner# 32-bit offset 79970935fdSSascha Wildner>>15 ubyte =0 80970935fdSSascha Wildner# offset with message table 81614728caSSascha Wildner>>>(18.s) ulelong x \b, at %#x 82970935fdSSascha Wildner# 1st message 83970935fdSSascha Wildner# http://www.os2museum.com/files/docs/os210ptk/os2-1.0-ptk-tools-1988.pdf 84970935fdSSascha Wildner# message type: E~Error H~Help I~Information P~Prompt W~Warning ? 85970935fdSSascha Wildner>>>>(&-4.l) ubyte x %c-type 86970935fdSSascha Wildner>>>>>&0 string x %s 87970935fdSSascha Wildner# 16-bit offset 88970935fdSSascha Wildner>>15 ubyte =1 89970935fdSSascha Wildner# msgnum; message number 90970935fdSSascha Wildner>>>(18.s) uleshort x \b, number %u 91970935fdSSascha Wildner# msgindex; offset of message from begin of file 92614728caSSascha Wildner>>>(18.s+2) uleshort x at %#x 93970935fdSSascha Wildner# message type E H I P W ? 94970935fdSSascha Wildner>>>>(&-2.s) ubyte x %c-type 95970935fdSSascha Wildner# skip newline carriage return 96970935fdSSascha Wildner>>>>>&0 ubeshort =0x0D0a 97970935fdSSascha Wildner>>>>>>&0 string x %s 98970935fdSSascha Wildner>>>>>&0 ubeshort !0x0D0a 99970935fdSSascha Wildner>>>>>>&-2 string x %s 100970935fdSSascha Wildner# for version 0 index table apparently at offset 1F 101970935fdSSascha Wildner>16 uleshort 0 102970935fdSSascha Wildner>>15 ubyte 1 103970935fdSSascha Wildner# 1st message 16-bit 104614728caSSascha Wildner>>>0x1F uleshort x \b, at %#x 105970935fdSSascha Wildner# message type: E~Error H~Help I~Information P~Prompt W~Warning ? 106970935fdSSascha Wildner>>>>(0x1F.s) ubyte x %c-type 107970935fdSSascha Wildner>>>>>&0 string x %s 108970935fdSSascha Wildner# 2nd message 16-bit 109614728caSSascha Wildner>>>0x21 uleshort x \b, at %#x 110970935fdSSascha Wildner>>>>(0x21.s) ubyte x %c-type 111970935fdSSascha Wildner>>>>>&0 string x %s 112970935fdSSascha Wildner# 3rd message 16-bit 113614728caSSascha Wildner>>>0x23 uleshort x \b, at %#x 114970935fdSSascha Wildner>>>>(0x23.s) ubyte x %c-type 115970935fdSSascha Wildner>>>>>&0 string x %s 116970935fdSSascha Wildner# version 0 32-bit 117970935fdSSascha Wildner>>15 ubyte 0 118970935fdSSascha Wildner# 1st message 32-bit 119614728caSSascha Wildner>>>0x1f ulelong x \b, at %#x 120970935fdSSascha Wildner>>>>(0x1F.l) ubyte x %c-type 121970935fdSSascha Wildner>>>>>&0 string x %s 122970935fdSSascha Wildner# 2nd message 32-bit 123614728caSSascha Wildner>>>0x23 ulelong x \b, at %#x 124970935fdSSascha Wildner>>>>(0x23.l) ubyte x %c-type 125970935fdSSascha Wildner>>>>>&0 string x %s 126970935fdSSascha Wildner# 3rd message 32-bit 127614728caSSascha Wildner>>>0x27 ulelong x \b, AT %#x 128970935fdSSascha Wildner>>>>(0x27.l) ubyte x %c-type 129970935fdSSascha Wildner>>>>>&0 string x %s 130970935fdSSascha Wildner# countryinfo; offset of country info block: 0 for version 0 131614728caSSascha Wildner>20 uleshort !0 \b, at %#x countryinfo 132970935fdSSascha Wildner# nextcoutryinfo 133614728caSSascha Wildner>>22 uleshort >0 \b, at %#x next 134970935fdSSascha Wildner# reserved[5]; Must be 0 135614728caSSascha Wildner>>25 ulelong !0 \b, RESERVED %#x 136970935fdSSascha Wildner>>(20.s) use os2-msg-info 137970935fdSSascha Wildner# display country info block of MKMSGF message file 138970935fdSSascha Wildner0 name os2-msg-info 139970935fdSSascha Wildner# bytesperchar; bytes per char: 1~SBCS 2~DBCS 140970935fdSSascha Wildner>0 ubyte >1 \b, %u bytes/char 141970935fdSSascha Wildner# reserved; Not known 142614728caSSascha Wildner>1 uleshort !0 \b, reserved %#x 143970935fdSSascha Wildner# langfamilyID; language family ID like: 0~? 1~Arabic ... 7~German ... 9~English ... 34~Slovene 144970935fdSSascha Wildner>3 uleshort >0 \b, language %u 145970935fdSSascha Wildner# langversionID; like: 7_1~German 7_2~Swiss German 12_1~French 12_3~Canadian French 146970935fdSSascha Wildner>>5 uleshort x \b_%u 147970935fdSSascha Wildner# langfamilyID too high. This should not happen 148970935fdSSascha Wildner>3 uleshort >34 (invalid language) 149970935fdSSascha Wildner# codepagesnumber; number of codepages like: 1 2 ... 16 150970935fdSSascha Wildner>7 uleshort x \b, %u code page 151970935fdSSascha Wildner# plural s 152970935fdSSascha Wildner>7 uleshort >1 \bs 153970935fdSSascha Wildner# too many number of codepages. This should not happen 154970935fdSSascha Wildner>7 uleshort >16 (Too many) 155970935fdSSascha Wildner# codepages[16]; codepages list like 437 850 ... 156970935fdSSascha Wildner>7 uleshort <17 157970935fdSSascha Wildner# 1st code page 158970935fdSSascha Wildner>>9 uleshort >0 %u 159970935fdSSascha Wildner# possible 2nd code page number 160970935fdSSascha Wildner>>>7 uleshort >1 161970935fdSSascha Wildner>>>>11 uleshort x %u 162970935fdSSascha Wildner# filename[260]; name of file like: dbaseos2.msg dde4c01e.msg os2ldr.mgr xdfh.msg ... 163970935fdSSascha Wildner>41 string x \b, %s 164970935fdSSascha Wildner 165327e51cbSPeter Avalos# OS/2 INI (this is a guess) 166327e51cbSPeter Avalos0 string \xff\xff\xff\xff\x14\0\0\0 OS/2 INI 167970935fdSSascha Wildner!:mime application/x-os2-ini 168970935fdSSascha Wildner!:ext ini 169970935fdSSascha Wildner 170614728caSSascha Wildner# From: Joerg Jenderek 171614728caSSascha Wildner# URL: http://warpin.netlabs.org/ 172614728caSSascha Wildner# Reference: http://mark0.net/download/triddefs_xml.7z/defs/a/ark-wpi.trid.xml 173614728caSSascha Wildner# Note: called by TrID "WarpIN Installer" 174614728caSSascha Wildner# probably magic at the beginning 175614728caSSascha Wildner0 ubelong =0x770402BE WarpIN Installer 176614728caSSascha Wildner#>4 ubelong =0x03000000 177614728caSSascha Wildner#!:mime application/octet-stream 178614728caSSascha Wildner!:mime application/x-os2-wpi 179614728caSSascha Wildner!:ext wpi 180614728caSSascha Wildner# creator program name like: "reserved" or "WIC x.y.z" 181614728caSSascha Wildner>0x106 string x \b, created by %s 182614728caSSascha Wildner# name like: "reserved" or "OS/2 Netlabs" 183614728caSSascha Wildner>0x146 string x \b, '%s' 184614728caSSascha Wildner# name like: "N/A" "http://warpin.netlabs.org" 185614728caSSascha Wildner>0x186 string x \b, URL %s 186614728caSSascha Wildner 187