By: David Intersimone
Abstract: Turbo C 2.01 provided everything you needed, all of the tools, included in one environment. Turbo C 2.01 provided tight integration between the editor, compiler, linker, and debugger.
Ship date: 11-May-1989
Turbo C 2.01 provided everything you needed, all of the tools, included in one environment. Turbo C 2.01 provided tight integration between the editor, compiler, linker, and debugger. This was the first version of Turbo C to include the integrated debugger. The professional version also included the standalone versions of Turbo Assembler and Turbo Debugger.
Visit the download page for Turbo C 2.01 to download the software (note: download size is 1.1 mb). When you are finished downloading the software, use your favorite zip utility (like PKZIP or WinZip) to decompress the zip file to a folder on your hard drive. Turbo C 2.01 shipped on 3 floppy disks. Make sure you chose the decompression software's option to preserve folder names (-d for pkzip, look for the check box option for winzip). You can make a 3-disk floppy set or you can install Turbo C 2.01 direct from your hard drive.
These historical files are provided to the Borland community free of charge. They may be downloaded and used "as is" for personal use only. No developer support is provided. Each individual product contains copyright notices that are still in force. These files may not be made available via the Internet or any hard copy media (e.g. diskette, CDROM). We make no claims about Year 2000 compatibility for our antique software. If you have technical questions, you should ask the questions on our Internet newsgroups (there may be someone who remembers these old tools).
Turbo Assembler (Professional version only)
Turbo Debugger (Professional version only)
Below is a scanned image of the Turbo C version 2.0 advertisement. Click on the image to display a larger version (282kb) of the ad.
The following is the Readme file that came with Turbo C 2.01. Please notice that any mention of support, references to phone numbers or addresses are here for historical purposes. Since this is antique software, there is no developer support for this product. If you have questions, you should ask them on our Internet newsgroups. You might find an old timer who still remembers using this version of Turbo C.
WELCOME TO TURBO C 2.01
This README file contains important, last minute information
about Turbo C 2.01. The HELPME!.DOC file on the COMPILER/UTILITIES
disk also answers many common Technical Support questions.
TABLE OF CONTENTS
1. How to Get Help
3. Important Notes
4. Additional Notes
5. Notes for Turbo Prolog Users
6. Files on the Disks
1. HOW TO GET HELP
If you have any problems, please read this file, the
HELPME!.DOC file, and the Turbo C manuals first. If you still
have a question and need assistance, help is available from
the following sources:
1. Type GO BOR on the CompuServe bulletin board system for
instant access to the Borland forums with their libraries of
technical information and answers to common questions.
If you are not a member of CompuServe, see the enclosed special
offer, and write for full details on how to receive a free
IntroPak containing a $15 credit toward your first month's on-
2. Check with your local software dealer or users' group.
3. Write to us at the following address:
Turbo C Technical Support
1800 Green Hills Road
P.O. Box 660001
Scotts Valley, CA 95066-0001
Please remember to include your serial number or we will be
unable to process your letter.
4. If you have an urgent problem that cannot wait and you have sent
in the license agreement from the front of your manual, you may
call the Borland Technical Support Department at (408) 438-5300.
Please have the following information ready before calling:
a. Product name and serial number on your original distribution
disk. Please have your serial number ready or we will be
unable to process your call.
b. Product version number. The version number for Turbo C is
displayed when you first load the program and before you
press any keys.
c. Computer brand, model, and the brands and model numbers of
any additional hardware.
d. Operating system and version number. (The version number can
be determined by typing VER at the MSDOS prompt.)
e. Contents of your AUTOEXEC.BAT file.
f. Contents of your CONFIG.SYS file.
The INSTALL/HELP/BGI disk contains a program called
INSTALL.EXE that will assist you with the installation of
Turbo C 2.01. There are three options for installation:
1. Hard Disk - This option allows you to pick the subdirectories
where the files will be loaded. It will create a TURBOC.CFG
file based on those directories.
2. Update from TC 1.5 - This allows for an easy update from version
1.5. After the files are copied, all the installed options
from your current TC.EXE will be transferred to the new one.
This is especially useful if you have modified the colors or
3. Floppy Disk - This option will build either a command line or
Integrated Development Environment version for a two drive
system. Be sure to have three formatted disks ready before
To start the installation, change your current drive to the one
that has the install program on it and type INSTALL. You will
be given instructions in a box at the bottom of the screen for
each prompt. For example, if you will be installing from drive
You should read the rest of this README file to get further
information about this release before you do the installation.
3. IMPORTANT NOTES
o The file HELPME!.DOC contains discussions of common questions
and answers concerning Turbo C 2.01. You should consult it for
answers to problems that aren't covered in this file or in
o If you are running INSTALL or TCINST on a laptop or any other
system that uses an LCD or composite display, you should set
your system to black and white mode before running INSTALL
or TCINST. You can do this from DOS with the following command
or, you can force INSTALL or TCINST to come up in black and
white mode by using the /b switch:
o /P PARAMETER FOR TC.EXE. A new command-line switch controls
palette swapping on EGA video adapters. Using this switch
tc /p hello
is recommended only when the user program modifies the EGA
palette registers. When /P is specified, the EGA palette will be
restored each time the screen is swapped. In general, you don't
need to use this switch unless your program modifies the EGA
palette registers, or unless your program uses BGI to change
o A program that takes over interrupt 9 cannot be debugged
with the integrated debugger. Use the standalone Turbo Debugger
o exec() WITH NOVELL NETWORK. Versions of the Novell network
system software earlier than 2.01-2 do not support a DOS
call used by exec(), spawn(), and system(). If you are using
the Integrated Development Environment to run a program that
uses any of these functions and you have early Novell system
software, run the program from DOS. To do this from the
Integrated Development Environment you can use Alt-F/O.
o If you used the INSTALL program to upgrade from version 1.5,
or if you used CINSTXFR to transfer options from an
installation of version 1.5, check the setting of the
standard stack frame option in the Integrated Development
Environment (Alt-O/C/C/S). If you are going to use the
integrated debugger this option should be turned ON.
o If you are having problems with the call stack or qualified
names, make sure you have compiled with the standard stack
frame option turned on.
o The ANSI draft has changed the syntax of labels. A label now
must always be followed by a statement. This means that code
like this is no longer accepted:
If you have code like this, change it to look like this:
; /* need a statement here! */
o TCC has a switch to specify which assembler to look for. By
default, it will look for TASM.EXE. If you want to use a
different assembler, use -E<filename>, as described in the
o When using THELP on an AT&T 6300, be sure to use the /L25
command-line option, as described in the file THELP.DOC.
o Because of the limited memory available in the Tiny model,
it no longer supports graphics functions.
o The Version 1.5 graphics drivers (*.BGI) are not compatible
with the Version 2.01 graphics library. Use the graphics drivers
distributed with Version 2.01.
o When used with a Zenith Z-449 card, the BGI autodetection code
will always select the 640X480 enhanced EGA mode. If you are
using the Z-449 with a monitor that is not compatible with
this mode, it will be necessary to override the GraphDriver
and GraphMode parameters used in the BGI initgraph() call.
4. ADDITIONAL NOTES
4.1 NOTES FOR VERSION 1.0 & 1.5 USERS
o You must use the Version 2.0 or 2.01 libraries with the 2.01
o The Integrated Development Environment no longer displays the
message "Press any key to return to Turbo C..." when your
program terminates. Instead, at the end of your program the
User screen is replaced by the Integrated Development
Environment. To view the User screen, press Alt-F5 or
select Alt-R/S. When you are viewing the User screen,
pressing any key will return you to the Integrated
o A new pseudo-variable has been added. _FLAGS now contains the
value of the flags register so you can test the flags at any
point in your program.
o The ssignal() and gsignal() functions are no longer
supported. See the section in this README on how to convert
programs that use them.
o The cprintf() function now works as documented. It does not
translate line-feeds into CR/LF combinations.
o Some compatibles had a problem under Version 1.5 because it
used interrupt 18H. Version 2.01 does not use this interrupt,
so you shouldn't encounter this problem anymore.
o The program TCINST.COM in Version 1.0 has been changed to an
.EXE file. You should delete the TCINST.COM program before
trying to run the new TCINST.EXE. Otherwise, MS-DOS will actually
run the old one.
o The FILE structure for streams in Version 1.0 (but not 1.5) has
been changed, so that the function tmpfile() could be implemented.
You should recompile any modules that use stream I/O.
THELP is a memory-resident utility program that gives you
access to the Turbo C context-sensitive help system from any
program. You don't need to use THELP if you're in the
Integrated Development Environment, but it is especially useful
if you use the command line compiler and your own text editor,
or if you are debugging with the standalone Turbo Debugger. To
use THELP, load THELP.COM into memory by typing at the DOS
You activate ("pop-up") THELP by typing its hot key -- by
default numeric keypad <5>. All Turbo C help commands apply
(F1, Ctrl-F1, Alt-F1). For a complete description of THELP,
refer to THELP.DOC in the Documentation Subdirectory.
4.3 USING CINSTXFR.EXE
Your Turbo C 2.01 package contains a program named CINSTXFR.EXE,
which can be used to transfer the configuration of the
Integrated Development Environment from your copy of Turbo C
1.5 (not for 1.0) to your new installation of Turbo C 2.01. This
program is run automatically by INSTALL.EXE if you select the
option to "Update Hard Drive Copy of Turbo C 1.5 to Turbo C 2.0."
If you prefer to do this yourself, you can run CINSTXFR.EXE from
the DOS command line.
CINSTXFR.EXE takes two arguments: the first is the name of your
Turbo C 1.5 Integrated Development Environment file (usually
TC.EXE), and the second is the name of your Turbo C 2.01
Integrated Development Environment file (also usually TC.EXE).
Either one of these names can also include a path name.
For example, if your copy of the Turbo C 1.5 Integrated
Development Environment file is named TC.EXE and is in a
directory named TURBOC and your copy of the Turbo C 2.01
Integrated Development Environment file is also named TC.EXE
but is located in a directory named TC2, the command line to
copy the configuration from 1.5 to 2.01 would look like this:
CINSTXFR TURBOCTC.EXE TC2TC.EXE
This will transfer all the options that you installed in
your copy of Turbo C 1.5 to your copy of Turbo C 2.01.
CINSTXFR.EXE does not work with Turbo C 1.0. If you are
upgrading from Turbo C 1.0, you will have to install the
4.4 CHANGED SWITCHES FOR OBJXREF
OBJXREF is an object module cross reference utility and is
described on page 528 of the Turbo C Reference Guide.
The /O option (object files directory) has been changed to the
/D (directories) option. The switch now allows for multiple
search directories to be specified. The new syntax is:
OBJXREF /Ddir1 [/Ddir2] [/Ddir3]
OBJXREF will search each of the directories in the specified
order for all object and library files. If no /D option is
used, only the current directory will be searched. However,
if a /D option is used, the current directory will NOT be
searched unless it is included in the directory list. For
example, to first search the BORLAND directory for files and
then search the current directory, you would type
If multiple search directories are specified and a file
matching the file specification is found, OBJXREF will include
the file as part of the cross-reference. OBJXREF will only
continue to search the other directories for the same file
specification if the file specification contains wildcards.
A new option has been added to allow you to specify an output
file where OBJXREF will send any reports generated. The new
option is the /O option, and has the following syntax:
OBJXREF myfile.obj /RU /Ofilename.ext
By default, all output is sent to the console.
4.5 CONVERSION INFORMATION FOR ssignal() AND gsignal()
Note: The C library and SIGNAL.H no longer support the ssignal()
and gsignal() functions.
ssignal() and gsignal() were from the old UNIX System III
days. The ANSI standard no longer supports them nor does the
current UNIX System V Interface Definition specification. To
ease portation problems for people moving older code to Turbo
C, we supply the source for the functions that came with TC
1.0 and TC 1.5. Also, the following discussion describes how
code can be converted to do the same sort of things that
ssignal() and gsignal() do without actually using them.
NOTE: The constants defined in SIGNAL.H for SIG_IGN and
SIG_DFL are different from the constants that were in
TC 1.0 and TC 1.5.
By using a globally declared array of function pointers, you
can simulate the actions of ssignal() and gsignal() by using
the following macros. Notice how the global table entry  is
used as a temporary variable in the ssignal macro allowing the
macro to swap the values and still return the original one.
int (*_sigTable) =
SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
#define ssignal(num, action)
(((num) < 1) || ((num) > 15)) ? SIG_DFL :
(_sigTable = _sigTable[(num)]), /* List of actions */
_sigTable[(num)] = (action), /* The last expression */
_sigTable /* is the return value */
(((num) < 1) || ((num) > 15)) ? 0 :
(_sigTable[(num)] == SIG_IGN) ? 1 :
(_sigTable[(num)] == SIG_DFL) ? 0 : (*_sigTable[(num)])()
5. NOTES FOR TURBO PROLOG USERS
o If you are linking C code with programs generated by Turbo
Prolog 2.0, use the file INIT.OBJ provided on the
INSTALL/HELP/BGI disk of the Turbo C 2.01 package instead of
the file provided with Turbo Prolog 2.0. There have been some
changes made in Turbo C 2.01 that require the use of this new file.
o If your C code uses floating point math and you link with the
emulator library, Prolog will not automatically detect a math
coprocessor chip. If you want to force the program to use the
coprocessor, link it with FP87.LIB instead of EMU.LIB.
6. FILES ON THE DISKS
INSTALL EXE - Installation program
README COM - Reads this README
TCHELP TCH - Help file for Turbo C
THELP COM - Pop-up utility to access TCHELP.TCH
THELP DOC - Documentation for THELP.COM
UNPACK COM - Program to unpack the ARC files
OBJXREF COM - Object file cross reference utility
C0H OBJ - Huge model startup code
MATHH LIB - Huge model math library
CH LIB - Huge model run-time library
GETOPT C - Parses options in command line
HELLO C - Example Turbo C program
MATHERR C - Source code for handling math library exceptions
SSIGNAL C - Source code for ssignal and gsignal functions
CINSTXFR EXE - Program to copy TC 1.5 installation to TC 2.01
INIT OBJ - Initialization code for use when linking with Prolog
BGI ARC - BGI drivers and fonts
BGIOBJ EXE - Conversion program for fonts and drivers
ATT BGI - Graphics driver for ATT400 graphics card
CGA BGI - Graphics driver for CGA
EGAVGA BGI - Graphics driver for EGA and VGA
HERC BGI - Graphics driver for Hercules
IBM8514 BGI - Graphics driver for IBM 8514 graphics card
PC3270 BGI - Graphics driver for PC3270
GOTH CHR - Font for gothic character set
LITT CHR - Font for small character set
SANS CHR - Font for sansserif character set
TRIP CHR - Font for triplex character set
BGIDEMO C - Graphics demonstration program
STARTUP ARC - ARC file with startup source code and related files
RULES ASI - Assembler include file for interfacing with Turbo C
C0 ASM - Assembler source for startup code
SETARGV ASM - Assembler source code for parsing the command line
SETENVP ASM - Assembler source code for preparing the environment
BUILD-C0 BAT - Batch file for building the startup code modules
MAIN C - Alternative, stripped-down C main file
EMUVARS ASI - Assembler variable declarations for emulator
WILDARGS OBJ - Object code for module to expand wildcard arguments
EXAMPLES ARC - Various C examples code
CPASDEMO PAS - Pascal program that demonstrates Turbo Pascal 4.0 -
Turbo C interface
CPASDEMO C - C example module for the Turbo Pascal 4.0 - Turbo C
CTOPAS TC - Configuration file for use with TC.EXE that
creates Turbo C modules in the correct format
for linking with Turbo Pascal 4.0 programs
CBAR C - Example function to be used with PBAR.PRO
PBAR PRO - Example Turbo Prolog program demonstrating interface
with Turbo C
WORDCNT C - Example program demonstrating source level debugging.
NOTE: DO NOT RUN THIS PROGRAM WITHOUT READING
THE DISCUSSION IN THE MANUAL. IT CONTAINS
WORDCNT DAT - Data file for use by WORDCNT.C
MCALC ARC - Mcalc sources and doc
MCALC DOC - MicroCalc documentation
MCALC C - MicroCalc main program source code
MCINPUT C - MicroCalc input routines source code
MCOMMAND C - MicroCalc commands source code
MCPARSER C - MicroCalc input parser source code
MCUTIL C - MicroCalc utilities source code
MCDISPLY C - MicroCalc screen display source code
MCALC H - The header file for MicroCalc
MCALC PRJ - The MicroCalc project file
README - This file
TC EXE - Turbo C Compiler
TCCONFIG EXE - Program to convert configuration files
MAKE EXE - Program for managing projects
GREP COM - Turbo GREP program
TOUCH COM - Program that updates a file's date and time
TCC EXE - Command line version of Turbo C Compiler
CPP EXE - Turbo C preprocessor
TCINST EXE - Installation program for TC.EXE
TLINK EXE - Borland Turbo Linker
HELPME! DOC - Common questions and answers
C0S OBJ - Small model startup code
C0T OBJ - Tiny model startup code
C0L OBJ - Large model startup code
MATHS LIB - Small model math library
MATHL LIB - Large model math library
CS LIB - Small model run-time library
CL LIB - Large model run-time library
EMU LIB - 8087 emulator library
GRAPHICS LIB - Graphics library
FP87 LIB - 8087 library
TLIB EXE - Borland Turbo Librarian
???????? H - Turbo C header files
<SYS> - Subdirectory with SYS*.H header files
C0C OBJ - Compact model startup code
C0M OBJ - Medium model startup code
MATHC LIB - Compact model math library
MATHM LIB - Medium model math library
CC LIB - Compact model run-time library
CM LIB - Medium model run-time library
Could not retrieve comments. Please try again later.
Free 30-day trial! Develop for Windows, Mac, Android, iOS, devices and gadgets!
More social media choices:
C++Builder on Google+
@RADtools on Twitter
Server Response from: ETNASC01