Turbo C 16 Bit Compiler Download
If you have a preference for Borland, you can try their latest C compiler but do NOT download the antique Turbo-C 16 bit version. Use the latest gcc compiler - search for mingw gcc package on SourceForge. MinGW-w64 - for 32 and 64 bit Windows. After installing it, download and setup the code::blocks IDE. Download Turbo C for Windows PC from FileHorse. 100% Safe and Secure Free Download (32-bit/64-bit) Latest Version 2019. A fully-featured compiler for creation.
I am working on porting uc/OS-II from DOS to x86 (real mode). I need:
A compiler to generate real mode 16-bit x86 assembly
An assembler to assemble the generated assembly into an object file
A linker to link the object files together and output an executable (raw binary, COFF, PE, or ELF formats are fine)
A standard library without invoking any DOS services (
int 21h), only depend on BIOS service.
I am wondering whether there is any tool-chain could do it.
JL2210closed as off-topic by cHao, dandan78, Blastfurnace, Am_I_Helpful, usr2564301Jan 6 '15 at 13:32
This question appears to be off-topic. The users who voted to close gave this specific reason:
- 'Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.' – cHao, dandan78, Blastfurnace, Am_I_Helpful, usr2564301
4 Answers
Check out the FreeDOS project. They have developer tools that include compilers, assemblers, and linkers. You'll probably have to modify the standard library, though, so that it uses BIOS calls rather than int 21h.
Jim MischelJim Mischel16-bit compilers? Several of them are mentioned here:

Generally they are used for academic exercises, so if u target at educational institution you can find lots of examples too:
At a former job we had a project that was based on uc/OS running on a real-mode x86 platform. We used TopSpeed C rather than the more well-known Borland or Microsoft compilers, because TopSpeed C was the only one of the set available and viable at the time that got volatile right. Which you dearly need when building uc/OS. Both Turbo C and Microsoft C (and I think its QuickC too) miscompiled accesses to volatile variables - typically caching values in registers and similar breakage.
You'd have a hard time getting hold of TopSpeed C, though. And its assembler syntax is... unique. (I think it's based on Modula-2 or something; it ends up being very unlike MASM/TASM/nasm with which you may be 100 times more familiar.)
Check out any bootloader project, such as GRUB. It should be readily apparent that they also need everything you mentioned.
Ben VoigtBen Voigt