Author Topic: 3 defintions msg-os2*.trid.xml for OS/2 help message *.msg  (Read 118 times)

jenderek

  • Full Member
  • ***
  • Posts: 152
3 defintions msg-os2*.trid.xml for OS/2 help message *.msg
« on: July 25, 2020, 04:16:03 PM »
Hello trid users,

some days ago i handled some Novell message files with msg file name
extension.

Just for interest i look on my discs for other files with that file
name extensions.
Some dozens files with msg file name extension are misidentified by
audio-mp3.trid.xml as MP3 audio (see appended output/trid-v.txt)

So i run tridscan on these samples and i get a trid definition file
msg-os2.trid.xml.
A few information about this file format can now be found on file
formats archive team web site. This is now expressed by
reference URL line like:
   <RefURL>
   http://fileformats.archiveteam.org/wiki/MSG_(OS/2)
   </RefURL>

According to header file mkmsgf.h and c-source mkmsgf.c of MKMSGF
clone i look at the produced patterns. Characteristic is a 8 byte magic
at the beginning. This is expressed by XML construct like:
   <Bytes>FF4D4B4D53474600</Bytes>
   <ASCII> . M K M S G F</ASCII>
   <Pos>0</Pos>

In my first attempt i get a pattern like:
   <Bytes>0102001F00</Bytes>
   <Pos>15</Pos>
According to information this is interpreted as Index table use 16-bit
offsets, version is 2 and offset of index table is 1Fh. Of course this
is not always true. So i delete that pattern.

At offset 16 version is stored as 2 byte little endian value. Value 0
is used for "old" version and value 2 is used for "new version". So i
mention this fact in remark line. Also the upper byte is always 0. That
is expressed by XML construct like:
   <Bytes>00</Bytes>
   <Pos>17</Pos>

An offset value 1Fh for index table means that index table directly is
stored after 30 byte sized header. The remaining bytes of the header are
padded with null bytes that is expressed by XML construct like:
   <Bytes>000000000000</Bytes>
   <Pos>25</Pos>

Unfortunately the source files refer to clone of MKMSGF not the
original of IBM. So some fields are declared as reserved and different
pointer sizes seems to be used depending on version. So i run tridscan
on version 2 samples to get variant msg-os2-v2.trid.xml.  Here a
pattern occur like:
   <Bytes>02001F00</Bytes>
   <Pos>16</Pos>

So i run tridscan on version 1 samples to get variant msg-os2-v0.trid.xml.
Here a pattern occur like:
   <Bytes>000000000000000000000000000000</Bytes>
   <Pos>16</Pos>

That means version 0 and offset of index table, countryinfo and
nextcoutryinfo values obviously are not used in that "old" variant.

With the new 3 definitions the misidentified OS/2 help message are now
described ( see appended output/trid-new-v.txt and
v0/output/trid-new.txt). TrID definitions, some examples and output
are stored in archive os2.zip. I hope that my XML files can be used in
future version of triddefs.

With best wishes
Jörg Jenderek


Mark0

  • Administrator
  • Hero Member
  • *****
  • Posts: 2076
    • Mark0's Home Page
Re: 3 defintions msg-os2*.trid.xml for OS/2 help message *.msg
« Reply #1 on: July 25, 2020, 06:50:42 PM »
Thanks! Will probably keep just the header/magic and the version byte.