DH> Using my Filestar/2 file management utility program, I selected the
DH> CMD.EXE file in the C:\OS2 directory.
DH> [...]
DH> This opened a dialog box to execute the file. There is a message on
DH> the top of this box. It read: Executable file - (OS/2 windowable
DH> 32-bit)
DH> [...]
DH> Thus I assumed the CMD.EXE is an 32-bit OS/2 executable file.
FileStar/2 is badly programmed. It sees that a file is a Linear Executable
("LX") format file and as a result labels it "32-bit". That isn't the case,
of course, since the LX executable file format was specifically designed to be
used for *both* 16-bit *and* 32-bit executables (and also mixed 16-bit/32-bit
executables).
IBM's CMD.EXE is a very good case in point. Using any handy LX executable
file dump utility, such as EXEHDR from the OS/2 Developers' Toolkit or TDUMP
from Borland C++ for OS/2, will reveal that CMD.EXE comprises 4 memory
objects, 3 for code and 1 for data, *all* of which have the "16:16 alias" flag
set. This means that -- ironically given what FileStar/2 says -- IBM's
CMD.EXE as supplied with OS/2 Warp 4.0 is *entirely* composed of *16-bit*
code.
FileStar/2 is being too simplistic, and is thus getting things wrong.
¯ JdeBP ®
--- FleetStreet 1.22 NR
633/260
2501/209
* Origin: JdeBP's point, using Squish (2:257/609.3)
|