[comp.os.os2] BINDing programs

tholen@uhccux.uhcc.hawaii.edu (David Tholen) (01/08/90)

The BIND utility allows a programmer to create an executable file that will
run under OS/2 protected mode, OS/2 real mode (a.k.a. DOS mode, DOS
compatibility box), and DOS itself.  Having done that, my question is
whether a bound program will run on a DOS machine equipped with only an
8086/8088 processor.  The source code has been compiled such that it should
only make use of the 8086/8088 instruction set, but the program was then
linked to API.LIB and DOSCALLS.LIB, and I have no idea whether these libraries
use 80286 instructions or not.  The reason I ask is because for the first time
since I started programming under OS/2, I tried to run a program on a laptop
machine equipped with only an 8086 and DOS, and the program hung the machine.
The same program runs fine on my OS/2 machine at home and on my DOS machine
at work (but it has an 80286).  I should mention that the program uses only
family API routines.

Incidentally, just how old a version of DOS will bound programs run on?  I
recall running across something in the documentation mentioning that bound
programs will run under DOS version 3.  Might bound programs successfully
run under version 2 by restricting the program to those calls that don't
require version 3?  Anyway to find out which calls require the additional
features of version 3?  I'm also curious as to just how large the user base
is that might still be running DOS version 2 (market demographics).

tholen@uhccux.uhcc.hawaii.edu

richgi@microsoft.UUCP (Richard GILLMANN) (01/12/90)

In article <6064@uhccux.uhcc.hawaii.edu> tholen@uhccux.uhcc.hawaii.edu (David Tholen) writes:
>whether a bound program will run on a DOS machine equipped with only an
>8086/8088 processor.  The source code has been compiled such that it should

A bound program will run on an 8088 or 8086.  The FAPI emulation code
does not contain 286 instructions.

>Incidentally, just how old a version of DOS will bound programs run on?  I

A bound program will run under DOS 2.0 or later, but if you rename the .exe
file, it will only work on DOS 3.0 or later.