Author Topic: LX binary executable header - OS type  (Read 407 times)

A. Demetrious Sharpe, Sr.

  • Newbie
  • *
  • Thank You
  • -Given: 3
  • -Receive: 1
  • Posts: 21
    • View Profile
LX binary executable header - OS type
« on: August 22, 2019, 05:10:29 am »
In the LX header, there is a field that's used to specify the OS type. Though OS/2 is the default, there are definitions for Windows & Windows 386. While these definitions were probably not used, the one for Windows doesn't go into detail about which version of Windows it's talking about. Does anyone know whether it's talking about Windows 1, Windows 2, or some early version of Windows 3?

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 11
  • -Receive: 149
  • Posts: 2114
    • View Profile
Re: LX binary executable header - OS type
« Reply #1 on: August 22, 2019, 07:10:23 am »
This site, http://fileformats.archiveteam.org/wiki/Linear_Executable says Windows VxD files. Wiki says that VxD were LE, which are mixed 16/32 bit LX and used Win3.x to Win9x.

A. Demetrious Sharpe, Sr.

  • Newbie
  • *
  • Thank You
  • -Given: 3
  • -Receive: 1
  • Posts: 21
    • View Profile
Re: LX binary executable header - OS type
« Reply #2 on: August 22, 2019, 08:10:57 am »
Unfortunately, neither the LX nor then LE specs clarify specifically which versions of Windows are being referred to for that particular part of the executable headers. Both formats have the same field & use the same values in relation to OS type.

André Heldoorn

  • Hero Member
  • *****
  • Thank You
  • -Given: 113
  • -Receive: 19
  • Posts: 770
    • View Profile
Re: LX binary executable header - OS type
« Reply #3 on: August 22, 2019, 07:17:33 pm »
Doesn't 16-bit imply both, and 32-bit only Win 9x?

A. Demetrious Sharpe, Sr.

  • Newbie
  • *
  • Thank You
  • -Given: 3
  • -Receive: 1
  • Posts: 21
    • View Profile
Re: LX binary executable header - OS type
« Reply #4 on: August 22, 2019, 07:32:12 pm »
Doesn't 16-bit imply both, and 32-bit only Win 9x?

No, not necessarily. The LX format predates Win 9x. In fact, it's specifically for OS/2. However, it was designed in a way that would allow you to add definitions for later operating systems. At this point, these are the OSes that were defined for the initial version of the spec:

00H - Unknown (any "new-format" OS)
01H - OS/2 (default)
02H - Windows
03H - DOS 4.x
04H - Windows 386

This implies that "02H - Windows" is in reference to either Windows 1.0 or Windows 2.0, as I've now found out that Windows 386 was actually a version of Windows 2.1x. Also, if the LX format had been implemented on Win 9x, I'm sure that other defined values would have been implemented for this field of the LX header.

A. Demetrious Sharpe, Sr.

  • Newbie
  • *
  • Thank You
  • -Given: 3
  • -Receive: 1
  • Posts: 21
    • View Profile
Re: LX binary executable header - OS type
« Reply #5 on: August 22, 2019, 07:32:49 pm »
So, I think I now have my answer.

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 11
  • -Receive: 149
  • Posts: 2114
    • View Profile
Re: LX binary executable header - OS type
« Reply #6 on: August 23, 2019, 12:59:42 am »
I can't see it being used for anything before Windows 386 as that was the first that supported 32 bit and why use LE or LX for 16 bit? I think VxD's were introduced with Win 3.x and continued to be used for Win9x.
Hmm, according to https://en.wikipedia.org/wiki/VxD, they were introduced with Windows 386 and Win9x could use older VxD's, so Windows 386 through to Win ME makes sense.
Likely that MS and IBM worked on the LX format and MS had an automatic license.

A. Demetrious Sharpe, Sr.

  • Newbie
  • *
  • Thank You
  • -Given: 3
  • -Receive: 1
  • Posts: 21
    • View Profile
Re: LX binary executable header - OS type
« Reply #7 on: August 23, 2019, 01:30:48 pm »
Yeh, I’m sure that they had an automatic license. However, the initial version of the LX spec is from 1993. It included both “Windows” and “Windows 386”. It’s entirely possible that Microsoft wanted the possibility of using LX, without actually using it. It’s also possible that IBM included the only versions of Windows that existed at the time when the spec was written up. I’d love the opportunity to explore the history of it all, but there’s just so little published about the “whys” of these types of decisions for OS/2 technology. Either way, I’ve gotten enough information to accomplish my task.