AFAIK 4.52 is the last compiler borland made which was compatible with
DOS, and to use it to its full extent (e.g. to get full access to DPMI and
DOS functionality) you had to buy an add-on of some sort. I can't
remember what the addon is called and a brief look didn't turn it up on my
disk. BTW I did successfully get BCC5.0 to compile DOS programs, but they
had officially stopped supporting DOS by then and there were some tricks
involved. I never bothered with the latest BCC5.5 they've released as
free software for windows. It probably won't work because they wrote a
new linker...
You could try another compiler (GCC or I've written a C compiler called
CC386) but one problem you are going to face is that Borland's compiler
and DOS runtime system is really a wrapper around a subset of the Win32
API. While there is one DOS/DPMI subsystem that followed suit, I'm not
sure of the compatibility between the borland runtime system and the
mentioned DPMI subsystem.
Assuming the author of your program didn't actually use any WIn32 function
calls, you may still have various problems porting to other compilers; for
example GCC exposes DPMI compatible functions differently than borland
did, and also borland did something which is somewhat incompatible with
other DPMI systems. Microsoft halted at DPMI 0.9 years ago, and most of
the DPMI clone packages for DOS follow microsoft's lead... but borland
went on to create something called DPMI 1.0 which AFAIK is the only such
implementation in existance. I am not entirely sure of compatibility
issues... but DPMI 1.0 seemed to use 32-bit registers for transfers to and
from the DPMI subsystem, whereas DPMI 0.9 sometimes uses pairs of 16-bit
registers for the same transfers.
Of course if your program uses neither WIN32 or DPMI, it may not be too
difficult to replace the Borland compiler altogether. However, I'm not
sure how well GCC handles 32-bit psuedo-calls using interrupts similar to
the 16-bit DOS and BIOS traps, if your program uses that. Another problem
is that the C++ standard has changed and there are differences between
4.52 and later standards-conforming compilers... so choosing a later
compiler could break some aspects of existing C++ code.
David
da****************@googlemail.com wrote:
Hi,
I have just inherited some embedded software that was compiled with
Borland 4.52. I need to either purchase that compiler, which Borland
no longer appear to sell or alternatively source an upgrade/compatible
compiler. Do Borland sell a newer version of the 4.52 compiler that
will still allow me to compile a DOS executable?
Regards, Darren