P. 1


|Views: 0|Likes:
Published by Ammar Naveed Bajwa

More info:

Published by: Ammar Naveed Bajwa on Jul 09, 2013
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as TXT, PDF, TXT or read online from Scribd
See more
See less





CONTENTS ___________________________________________________________________________

HOW TO USE THIS FILE . . . . . . . 1 BGIOBJ: Converting graphics drivers and fonts . . . . . . . . . . . . 2 Adding the new .OBJ files to GRAPHICS.LIB . . . . . . . . . . 3 Registering the drivers and fonts . . . . . . . . . . . . . 3 An example . . . . . . . . . . 4 The /F option . . . . . . . . . 5 Advanced features . . . . . . . 6 CPP: The preprocessor . . . . . 10 CPP as a macro preprocessor . 11 An example . . . . . . . . . . 11 GREP: A text-search utility . . 12 Command-line syntax . . . . . 13 GREP options . . . . . . . . . 13 Order of precedence . . . . 16 The search string . . . . . . 16 Operators in regular expressions . . . . . . . . 17 File specifications . . . . . 18 Some GREP examples . . . . . . 18 Example 1 . . . . . . . . . 18 Example 2 . . . . . . . . . 19 Example 3 . . . . . . . . . 19 Example 4 . . . . . . . . . 20 Example 5 . . . . . . . . . 20 Example 6 . . . . . . . . . 21 Example 7 . . . . . . . . . 21 Example 8 . . . . . . . . . 22 OBJXREF: The object module crossreference utility . . . . . . . 22 The OBJXREF command line . . . 23 The OBJXREF command-line options . . . . . . . . . . 24 Control options . . . . . 24 Report options . . . . . . 25 Response files . . . . . . . . 27 Free-form response files . . 27 Project files . . . . . . . 27

Linker response files . . . . 28 Sample OBJXREF reports . . . . 28 Report by public names (/RP) . . . . . . . . . . . . 29 Report by module (/RM) . . . 29 Report by reference (/RR) . . 30 Report by external references (/RX) . . . . . . . . . . . . 30 Report of module sizes (/RS) . . . . . . . . . . . . 31 Report by class type (/RC) . 31 Report of unreferenced symbol names (/RU) . . . . . . . . . 32 Verbose reporting (/RV) . . . 32 Examples of how to use OBJXREF . . . . . . . . . . . . 32 Example 1 . . . . . . . . . . 32 Example 2 . . . . . . . . . . 33 Example 3 . . . . . . . . . . 33 Example 4 . . . . . . . . . . 33 OBJXREF error messages and warnings . . . . . . . . . . . 34 Error messages . . . . . . . 34 Warnings . . . . . . . . . . 34 PRJCFG: Configuration file utility . . . . . . . . . . . . . 35 PRJCNVT: Old projects for new . . 35 PRJ2MAK: From project file to MAKE file . . . . . . . . . . . . . . 36 THELP: The Turbo Help utility . . 37 Loading and invoking THELP . . 37 Navigating THELP . . . . . . . 38 THELP options . . . . . . . . . 39 /C#xx (select color) . . . . 40 /Fname (full path and name for help file) . . . . . . . . . 41 /H, /?, and ? (display help screen) . . . . . . . . . . . 42 /Kxxyy (reassign hot key) . . 42 /U (remove THELP from memory) . . . . . . . . . . . 43


/Wx,y,w,h (set the window size and location) . . . . . . . 43 TLIB . . . . . . . . . . . . . . 43 Why use object module libraries? . . . . . . . . . . 44 The TLIB command line . . . . 44 The operation list . . . . . 46 File and module names . . 46 TLIB operations . . . . . 46 Using response files . . . . . 48 Creating an extended dictionary: The /E option . . . . . . . . 49 Setting the page size: The /P option . . . . . . . . . . . . 49 Advanced operation: The /C option . . . . . . . . . . . . 50 Examples . . . . . . . . . . . 51 TOUCH . . . . . . . . . . . . . 51

TRANCOPY: A project transfer item utility . . . . . . . . . . . . . TRIGRAPH: A character-conversion utility . . . . . . . . . . . . . Transfer macros . . . . . . . . . State macros . . . . . . . File name macros . . . . . Instruction macros . . . . Running DOS commands . . . . . Transfer memory settings . . . Turbo Editor macros . . . . . . . TEMC command line . . . . . . . . Syntax . . . . . . . . . . . . . Key codes . . . . . . . . . . . . Named keys . . . . . . . . . . Predefined editor commands . . . Index

52 53 54 54 54 55 59 59 60 60 61 62 63 64 77


TABLES ___________________________________________________________________________

1.1: Summary of THELP command-line options . . . . . . . . . . .39 1.2: TLIB options . . . . . . . .45

1.3: TLIB action symbols . . . . 47 1.4: TEMC editor commands . . . . 64


Online document ___________________________________________________________________________

Other utilities

=========================================================================== HOW TO USE THIS FILE =========================================================================== This file has a table of contents and an index that refer to "pages" in this file. If your editor has a search facility, you can use it to search for the page numbers listed in either the table of contents or in the index. The text "- n -" (where n represents the actual page number) appears at the bottom left of the "page" it refers to. Thus, at the bottom of page 1, you'll find "- 1 -" as the last item on that "page." Turbo C++ comes with a host of standalone utilities that you can use with your Turbo C++ files or other modules. Several are documented in the User's Guide; others are documented here. ------------------------------------------------------Name Description ------------------------------------------------------Documented in the User's Guide MAKE TLINK Standalone program manager Turbo Linker

Documented in this file BGIOBJ Conversion utility for graphics drivers and fonts

- 1 -

OBJ) files.CPP GREP OBJXREF PRJCFG Preprocessor File-search utility Object module cross-referencer Updates options in a project file from a configuration file.2 - . and doesn't need to access the driver and font files on disk when running. . you can link them into your program. Once they're converted. However. or converts a project file to a configuration file PRJCNVT Converts Turbo C project files to the Turbo C++ format PRJ2MAK Converts Turbo C++ project files to MAKE files THELP Turbo Help utility TLIB Turbo Librarian TOUCH Updates file date and time TRANCOPY Copies transfer items from one project to another TRIGRAPH Character-conversion utility TEML/TEMC Turbo Editor Macro Language and Compiler ------------------------------------------------------This file explains what each utility is and illustrates. This is in addition to the graphics package's dynamic loading scheme. Linking drivers and fonts directly into your program is advantageous because the executable file contains all (or most) of the drivers and/or fonts it might need. making them part of the executable file. =========================================================================== BGIOBJ: Converting graphics drivers and fonts =========================================================================== You can use BGIOBJ to convert graphics driver files and character sets (stroked font files) to object (. with code and command-line examples. linking the drivers and fonts into your executable file increases its size. how to use them. in which your program loads graphics drivers and character sets (stroked fonts) from disk at run time.

LIB.OBJ. and so on. so the linker can locate them when it links in the graphics routines.LIB You should add the driver and font object modules to GRAPHICS. This informs the graphics system of the presence of those files.OBJ.. you'll have to add them to the list of files in the project (. or on the TLINK command line.] where object_file_name is the name of the object file created by BGIOBJ. The . EGAVGA.EXE (such as CGA. Adding the new ======================================================= . You can add several files with one command line to save time. use the BGIOBJ. To add these object modules to GRAPHICS.3 - . and ensures that they will be linked in when the executable file is created by the linker. GOTH.PRJ) file. EGAVGA.OBJ extension is implied. see the example in the following section.OBJ files to GRAPHICS. so you don't need to include it.BGI yields EGAVGA.CHR gives SANS. Registering the ======================================================= drivers and fonts After adding driver and font object modules to GRAPHICS.EXE utility. SANS. The registering routines each take one parameter.To convert a driver or font file to a linkable object file. you have to register all the drivers and fonts that you want linked in. for example.LIB.LIB. with the extension . Each registering . a symbolic name defined in graphics.. and so forth). If you don't add these new object modules to GRAPHICS. on the TCC command line. invoke TLIB with the following command line: tlib graphics + object_file_name [+ object_file_name . you do this by calling registerbgidriver and registerbgifont in your program (before calling initgraph).LIB. This is the simplified syntax: BGIOBJ source_file where source_file is the driver or font file to be converted to an object file.h.OBJ. The object file created has the same file name as the source file.

4 - .EXE.LIB.to object modules. Here's what you do: 1. or to .OBJ to your project list (if you are using Turbo C++'s integrated environment). you must add the object file names CGA. --------------------------------------------------------------------------Driver file registerbgidriver Font file registerbgifont (*.OBJ. the gothic font. You can add these object files to GRAPHICS.OBJ. and GOTH.BGI) symbolic name (*. as shown in the following separate command lines: bgiobj cga bgiobj trip bgiobj goth This creates three files: CGA.LIB with this TLIB command line: tlib graphics +cga +trip +goth 3.routine returns a nonnegative value if the driver or font is successfully registered. If you don't add the object files to GRAPHICS. Convert the binary files to object files using BGIOBJ. TRIP. and the triplex font -----------------. then link them into your program.Suppose you want to convert the files for the CGA An example graphics driver. and GOTH. TRIP. The following table shows the names to be used with registerbgidriver and registerbgifont.OBJ.OBJ.OBJ. 2. It is a complete list of drivers and fonts included with Turbo C++.CHR) symbolic name --------------------------------------------------------------------------CGA EGAVGA HERC ATT PC3270 IBM8514 CGA_driver EGAVGA_driver Herc_driver ATT_driver PC3270_driver IBM8514_driver TRIP LITT SANS GOTH triplex_font small_font sansserif_font gothic_font -------------------------------------------------------------------------------------------.

... if (registerbgifont(triplex_font) < 0) exit(1).the TCC command line. the TCC command line would look like this: TCC niftgraf graphics..lib cga. or when you're using the small or compact memory model.. refer to the following section. triplex_font & gothic_font */ #include <graphics. */ The /F option ======================================================= This section explains what steps to take if you get the linker error Segment exceeds 64K (or a similar error) after linking in several driver and/or font files (especially with small.5 - .. For example.EXE all use the same segment (called _TEXT). /* .. This option directs BGIOBJ to use a segment name of the form filename_TEXT.h> /* Register and check for errors (one never knows. all the program code).obj trip. You register these files in your graphics program like this: If you ever get a linker error Segment exceeds 64K after linking in some drivers and/or fonts. /* . the files created by BGIOBJ.. so that the default segment is not overburdened by all the linked-in drivers and fonts (and. you can convert one or more of the drivers or fonts with the BGIOBJ /F option. if (registerbgifont(gothic_font) < 0) exit(1). */ initgraph(..). the following two BGIOBJ com/* initgraph should be called after registering */ . To solve this problem.) */ if (registerbgidriver(CGA_driver) < 0) exit(1). in small and compact model programs.obj goth. /* Header file declares CGA_driver. By default. For example. This can cause problems if your program links in many drivers and/or fonts.and compact-model programs).obj 4.

Only experienced users should use these features. and the routines registerfarbgidriver and registerfarbgifont. BGIOBJ also appends F to the target object file name (EGAVGAF.EXE command line: BGIOBJ [/F] source destination public-name seg-name seg-class This table describes each component of the BGIOBJ command line. and appends _far to the name that will be used with registerfarbgidriver and registerfarbgifont. you must use these far registering routines instead of the regular registerbgidriver and registerbgifont. (See page . For example.OBJ.mand lines direct BGIOBJ to use segment names of the form EGAVGA_TEXT and SANS_TEXT.OBJ. SANSF. (For example. and to change the public name and destination file name. EGAVGA_driver becomes EGAVGA_driver_far.6 - .) For files created with /F. ------------------------------------------------------Component Description ------------------------------------------------------/F or -F This option instructs BGIOBJ. if (registerfarbgifont(sansserif_font_far) < 0) exit(1). This is the full syntax of the BGIOBJ. bgiobj /F egavga bgiobj /F sans When you select /F. if (registerfarbgidriver(EGAVGA_driver_far) < 0) exit(1). Advanced features ======================================================= This section explains some of BGIOBJ's advanced features. and so forth).EXE to use a segment name other than _TEXT (the default).

OBJ if you use the /F option. If your program uses Pascal calling conventions.) source This is the driver or font file to be converted. or sourceF. so it should be the name used in the program.OBJ. The public name is the external name used by the linker. This is the name that will be used in the program in a call to registerbgidriver or registerbgifont (or their respective far versions) to link in the object module. the default is _TEXT (or filename_TEXT if /F is specified) This is an optional segment class.5 for a detailed discussion of /F. all the parameters preceding it must also be specified. If the file is not one of the driver/font files shipped with Turbo C++. However. seg-name This is an optional segment name. use only uppercase letters. and do not add an underscore. The default destination file name is source. prefixed with an underscore. the default is CODE. if you need to specify an optional parameter. . This is the name of the object file to be produced. you should specify a full file name (including extension). destination public-name seg-class ------------------------------------------------------All parameters except source are optional.7 - .

otherwise. I/O */ unsigned fsize.If you choose to use your own public name(s).8 - . using one of the following forms: void public_name(void). you have to register all the drivers and fonts in your program. If you don't use the /F option and don't change the default segment name.h> <fcntl. After these declarations.h header file contains declarations of the default driver and font public names. public_name matches the publicname you used when converting with BGIOBJ. you have to add declaration(s) to your program. you should register drivers and fonts through registerbgidriver and registerbgifont.h> <conio. The graphics.h> <stdlib. /* if /F used. or */ /* segment name not _TEXT */ In these declarations.h> <alloc. use registerfarbgidriver and registerfarbgifont. Here is an example of a program that loads a font file into memory: /* Example of loading a font file into memory */ #include #include #include #include #include #include #include #include <graphics. used */ extern int far public_name[]. in memory */ int handle. */ /* default segment name main() { void *gothic_fontp.h> <io.h> <process. if you use those default public names you don't have to declare them as just described.h> /* if /F not used.h> <stdio. buffer) */ /* points to font buffer /* file handle used for /* size of file (and .

gothic_fontp. .CHR'\n"). exit(1). CENTER_TEXT). exit(1). } settextjustify(CENTER_TEXT.CHR'\n").").. /* open font file */ handle = open("GOTH. int graphdriver. O_RDONLY|O_BINARY). errorcode = graphresult(). ".int errorcode. exit(1). if (handle == -1) { printf("unable to open font file 'GOTH.CHR'\n"). /* register font */ if (registerfarbgifont(gothic_fontp) != GOTHIC_FONT) { printf("unable to register font file 'GOTH. if (errorcode != grOk) { printf("graphics error: %s\n". fsize) != fsize) { printf("unable to read font file 'GOTH. } /* detect and initialize graphix */ graphdriver = DETECT. } /* find out size of the file */ fsize = filelength(handle). &graphmode.CHR'\n"). } /* read font into memory */ if (read(handle.9 - .grapherrormsg(errorcode)).CHR". int graphmode. exit(1). /* allocate buffer */ gothic_fontp = malloc(fsize). exit(1). if (gothic_fontp == NULL) { printf("unable to allocate memory for font file 'GOTH. initgraph(&graphdriver. } /* close font file */ close(handle).

the file names listed on the CPP command line are treated like they are in TCC.LIB. . the output is written to a file in the current directory (or the output directory named by the -n option) with the same name as the source name but with an extension of . when the compiler reports an error inside a macro or an include file.ASM files. /* press a key to terminate */ getch(). /* shut down graphics system */ closegraph(). return(0). .I.10 - .CFG file for default options. a separate pass performs this work. In many multi-pass compilers. The exception to this is that all files are treated as C source files. } =========================================================================== CPP: The preprocessor =========================================================================== CPP produces a list (in a file) of a C source program in which include files and #define macros have been expanded. The TCC options that don't pertain to CPP are simply ignored by CPP. the standalone compiler. HORIZ_DIR. Often. with wildcards allowed. 4). you can get more information about what the error is if you can see the include files or the results of the macro expansions. and accepts the same command-line options as TCC.settextstyle(GOTHIC_FONT. It is not needed for normal compilations of C programs.getmaxy()/2. and the results of the pass can be examined. outtextxy(getmaxx()/2. Since Turbo C++ uses an integrated single-pass compiler. "Borland Graphics Interface (BGI)"). You use CPP just as you would use TCC. For each file processed by CPP.OBJ. To see the list of arguments handled by CPP. CPP reads the same TURBOC. There is no special treatment for . To see how those arguments work. type cpp at the DOS prompt. or . we provided CPP to supply the first-pass functionality found in other compilers. see Chapter 5 in the Programmer's Guide. With one exception.

along with any conditional text lines excluded from the compile. the resulting . Floyd" #define BEGIN { #define END } main() BEGIN printf("%s\n".R. NAME). With this option turned off.c 2: HELLOAJ. then with -P-. CPP omits this line number information. CPP can be used as a macro preprocessor. Unless you use a command-line option to specify otherwise.c 1: HELLOAJ. Source file: HELLOAJ. An example ======================================================= The following simple program illustrates how CPP preprocesses a file. first with -P selected. text lines are prefixed with the file name and line number of the source or include file the line came from. Important! The resulting output of CPP cannot be compiled because of the file name and line number prefix attached to each source line.C Output: HELLOAJ. any macros are replaced with their expansion text. Any preprocessing directive lines have been removed.C #define NAME "H. Within a text line.11 - .c 3: . CPP as a macro ======================================================= preprocessor The -P option to CPP tells it to prefix each line with the source file name and line number. END Command line used to invoke CPP as a preprocessor: CPP HELLOAJ.(turning this option off).This output file is a text file containing each line of the source file and any include files.I file can then be compiled with TC or TCC. If you give it P.

c HELLOAJ.c HELLOAJ. GREP can do a lot more than match a single. Suppose you wanted to find out which text files in your current directory contained the string "Bob".12 - .c HELLOAJ.c HELLOAJ.c 4: 5: main() 6: { 7: printf("%s\n".HELLOAJ. you'll see how to make GREP search for any string that matches a particular pattern. Because the default for GREP is to ignore case."H. Floyd"). 8: } Command line used to invoke CPP as a macro preprocessor: CPP -P. . You can use options to make your search case sensitive. the strings "bob" and "BoB" would also be considered matches. Floyd").txt and GREP would respond with a list of the lines in each file (if any) that contained the string "Bob".R.C Output: main() { printf("%s\n". In the section that follows. GREP searches for a text pattern in one or more files or in its standard input stream. You would issue the command grep Bob *. fixed string. Here's a quick example of a situation where you might want to use GREP."H. } =========================================================================== GREP: A text-search utility =========================================================================== GREP (Global Regular Expression Print) is a powerful text-search program derived from the UNIX utility of the same name.R.HELLOAJ.

) GREP options ======================================================= In the command line.txt >gfile which searches all files in the current directory that end with . file(s) tells GREP which files to search. and defaults.Command-line ======================================================= syntax The general command-line syntax for GREP is grep [options] searchstring [file(s) . -r means the same thing as -r+.TXT. preceded by a hyphen (-).) If you find that the results of your GREP are longer than one screen. you could use this command GREP "Bob" *. The command GREP ? prints a brief help screen showing GREP's command-line options.) Then. GREP searches its standard input. (See the description of the -u command-line option for information on how to change GREP's defaults. (If you don't specify a file. Each individual character is a switch that you can turn on or off: A plus symbol (+) after a character turns the option on.13 - . use your word processor (or Turbo C++'s editor) to access GFILE to read the results of the search. (You can name this file anything you like. You can list multiple options . this lets you use GREP with pipes and redirection. For example. The + sign is optional... a hyphen (-) after the character turns the option off. special characters. ] options consist of one or more letters. options are one or more single characters preceded by a hyphen (-). you can redirect the output to a file. that let you change various aspects of GREP's behavior. then places the results in a file called GFILE. for example. searchstring gives the pattern to search for.

The following symbols are treated specially: ^ start of line $ end of line -d -i -l -n -o -r . This option is off by default.14 - . and so on).individually (like this: -i -d -l). Here are the GREP option characters and their meanings: -----------------------------------------------------------------------------Option Meaning ------------------------------------------------------------------------------c Match Count only: Prints only a count of matching lines. Matching lines are not printed. Regular expression search: The text defined by searchstring is treated as a regular expression instead of as a literal string. both in the directory specified and in all subdirectories below the specified directory. This option is on by default. This option is on by default. After GREP finds a match. Line Numbers: Each matching line that GREP prints is preceded by its line number. All lines of output are preceded by the name of the file that contained the matching line. When this option is on. UNIX output format: Changes the output format of matching lines to support more easily the UNIX style of command-line piping. This option is off by default. This option is off by default. it prints the file name and processing immediately moves on to the next file. This option is on by default. This option is off by default. A regular expression is one or more occurrences of one or more characters optionally enclosed in quotes. GREP assumes the files are in the current directory. GREP prints the file name and a count of the number of matching lines. -d. GREP treats all letters a to z as identical to the corresponding letters A to Z in all situations. List file names only: Prints only the name of each file containing a match. For each file that contains at least one matching line. This option is off by default. If you give a file without a path. or you can combine them (like this: -ild or -il. Search subdirectories: For each file specified on the command line. it's all the same to GREP. Ignore case: GREP ignores upper/lowercase differences (case folding). GREP searches for all files that match the file specification.

If you define the set with alphabetic characters. where set is any valid regular expression set definition. Each matching line is preceded by its line number. ------------------------------------------------------------------------------ . type GREP ? at the DOS prompt. and 0 thru 9 match anything but a. 0 to 9.depending on its default setting. Word search: Text found that matches the regular expression is considered a match only if the character immediately preceding and following cannot be part of a word.COM file as the new defaults. If you use the -w option in combination with the -u option. (In other words. Each option on the help screen will be followed by a + or a . This option is off by default.) This option allows you to tailor the default option settings to your own taste. e. any character \ quote next character * match zero or more + match one or more [aeiou0-9] [^aeiou0-9] -u match a. Only lines that do not contain the search string are considered to be nonmatching lines. This option is off by default. the new set of legal characters is saved as the default set. even if the count is zero. even if the search is case-sensitive. u. -v Nonmatch: Prints only nonmatching lines. An alternate form of this option lets you specify the set of legal word characters. Its form is -w[set]. u. it is automatically defined to contain both the uppercase and lowercase values for each letter in the set (regardless of how it is typed). A count of matching lines in each file is given. i. i. -w -z Verbose: GREP prints the file name of every file searched. o. This option is off by default. The default word character set includes A to Z. e.. and 0 thru 9 Update options: GREP will combine the options given on the command line with its default options and write these to the GREP. If you want to see what the defaults are in a particular copy of GREP.15 - . o. and the underscore ( _ ). This option is off by default.COM. GREP is self-configuring.

all the text necessary to match the pattern must be on a single line. The text matched by the search string cannot cross line boundaries.-d -i -r .c GREP runs with the -d option on.16 - . each option can only be on or off.COM with the -u option. o In a regular expression. You can enclose the search string in quotation marks to prevent spaces and tabs from being treated as delimiters. A search string can be either a regular expression or a literal string. you'll need to become proficient at writing search strings. if you want GREP to always do a verbose search (-z on). Given this command line. The value of searchstring defines the pattern GREP searches for. certain characters have special meanings: They are operators that govern the search. you can install it with the following command: grep -u -z The search string ========================================================== To use GREP well. For example. grep -r -i . You can install your preferred default setting for each option in GREP. A concatenation of regular expressions is a regular expression. . there are no operators: Each character is treated literally.main( my*. the -i option on. that is.-----------------Order of precedence ------------------ Remember that each of GREP's options is a switch: Its state reflects the way you last set it. Each occurrence of a given option on the command line overrides its previous definition. A regular expression is either a single character or a set of characters enclosed in brackets. o In a literal string. and the -r option off. At any given time.

but not x. but not t. matches a period instead of "any character. For example. or z. the search string is treated as a regular expression (not a literal expression). These can be combined to form expressions (like [a-bd-z?]. too. but doesn't match ta. \. + [ ] A string enclosed in brackets matches any character in that string.17 - . For example. You can specify a range of characters with two characters separated by a hyphen (-). etc. that is. which matches the ? character and any lowercase letter except c). \ The backslash escape character tells GREP to search for the literal character that follows it. --------------------------------------------------------------------------- . while [^xyz] matches a and b. y. to. A period matches any character. in to*.-----------------Operators in regular expressions ------------------ When you use the -r option (on by default). An expression followed by a plus sign matches one or more occurrences of that expression: to+ matches to. (t followed by zero or more os). too. the expression matches any character except the characters in the string. you can use \\ to indicate a literal backslash character in a GREP expression. [xyz] matches x. or z. A dollar sign at the end of the expression matches the end of a line. If the first character in the string is a circumflex (^). but no others. y. * A circumflex at the start of the expression matches the start of a line. An expression followed by an asterisk wildcard matches zero or more occurrences of that expression. etc.. For example. it matches t. The following characters take on special meanings: --------------------------------------------------------------------------Option Meaning --------------------------------------------------------------------------^ $ ." The backslash can be used to quote itself. the * operates on the expression o.

GREP searches the current directory. the character ^ is only treated specially if it immediately follows the beginning of the set definition (immediately after the [ delimiter). If you give file(s) without a path. -----------------. and so on. Since spaces and tabs are normally considered to be command-line delimiters. *.Note Four of the "special" characters ($. the space after main is quoted with the backslash escape character. input to GREP must come from redirection (<) or a vertical bar (|). and +) don't have any special meaning when used within a bracketed set. For example. Command line: grep -r [^a-z]main\ *( *. You could also accomplish this by placing the space in double quotes. They assume GREP's default settings are unchanged. In this case. the greater than sign. # matches #. you must quote them if you want to include them as part of a regular expression. file(s) can be an explicit file name. File ======================================================= specifications file(s) tells GREP which files (or groups of files) to search. then a left parenthesis. Some GREP examples ======================================================= The following examples show how to combine GREP's features to do different kinds of searches. you can enter a path (drive and directory information) as part of file(s). . -----------------.followed by zero or more occurrences of blank spaces (\ *).18 - .The search string here tells GREP to search for the Example 1 word main with no preceding lowercase letters ([^a-z]). In addition. or a "generic" file name incorporating the DOS ? and * wildcards. If you don't specify any files.c . >. matches the greater than sign (>). In addition. Any ordinary character not mentioned in the preceding list matches that character..

inc Matches: A:\data. so the search is not case sensitive.This format defines how to search for a given word.Matches: main(i:integer) main(i. if (MAIN ()) halt.INC in current directory. He misspells toward as toword.doc Matches: every new word must be on a new line.Because the backslash (\) and period (. In the beginning there was the WORD.C in current directory. . and the WORD Does not match: Each file has at least 2000 words.fil c:\Data. The -i option is used here. -----------------.Command line: grep -ri [^a-z]word[^a-z] *.C and *. MY WORD! word--smallest unit of speech.FIL Does not match: d:\data.) characters Example 2 usually have special meaning in path and file names.fil a:data.c *.j:integer) if (main ()) halt.fil *.you must place the backslash escape character immediately in front of them if you want to search for them.Fil B:\DATA. Command line: grep -ri [a-c]:\\data\. Does not match: mymain() Files searched: *.fil Files searched: *. -----------------. -----------------.19 - . Example 3 -----------------.

-----------------." Files searched: *. Files searched: *.This is an example of how to search for a string with Example 5 embedded spaces.* in a directory called \WORK on drive A.DOC and *. -----------------Command line: grep "search string with spaces" *. and MYFILE.C in the current directory. and Does not match: each document contains at least 2000 words! He seems to continually misspell "toward" as "toword. .doc *. -----------------.DOC in the current directory.This format defines another.20 - . even more basic singleExample 4 word search.c a:\work\myfile.DOC in the current directory. -----------------Command line: grep -iw word *.doc Matches: every new word must be on a new line However. MY WORD! word: smallest unit of speech which conveys In the beginning there was the WORD. Does not match: This search string has spaces in it.Files searched: *.* Matches: This is a search string with spaces in it.

but fu man chu.This example searches for any one of the characters Example 6 " . Also. This demonstrates how regular expressions can be concatenated to form a longer expression." Does not match: He said "Hi" to me Where are you going? I'm headed to the Files searched: *. -----------------The double quote within the range is preceded by an escape character so it is treated as a normal character instead of as the ending quote for the string. the $ character appears outside of the quoted string.doc Matches: He said hi to me..This example ignores case and just prints the names of Example 7 any files that contain at least one match. Examples include the following: "Many men smoke. The three -----------------. -----------------. Command line: grep -rd "[ .:?'\"]"$ \*. this is the time we have do you think? The main reason we are Does not match: He said "Hi" to me just when I Where are you going? I'll bet you're headed .doc or grep -il -d " the " \*.-----------------. Command line: grep -ild " the " \*.21 - . Where are you going? In anticipation of a unique situation. at the end of a line. : ? ' and .DOC in the root directory and all its subdirectories on the current drive.command-line examples show different ways of specifying multiple options.doc Matches: Anyway.doc or grep -i -l -d " the " \*.

TCC or TASM.C files in the section "Sample OBJXREF reports" (page 28) illustrate definitions of public names and external references to them. An object module generated by TC is given the same name as the . unless a . Command line: grep -w[=] = *. There are two categories of public names: global variables and function names. Object modules are object (. which use a double equal sign (==). The other type lists the segment sizes defined by object modules.C in the current directory. This is also true for TCC.only.22 - .Files searched: *.LIB) file contains multiple object modules. j=5. Does not match: if (i == t) j++. A library (.OBJ) files produced by TC.This example redefines the current set of legal Example 8 characters for a word as the assignment operator (=) -----------------. The TEST1. =========================================================================== OBJXREF: The object module cross-reference utility =========================================================================== OBJXREF examines a list of object files and library files and produces reports on their contents. which use a single equal sign (=). but not equality tests. then does a word search. -----------------.C and TEST2.C source file it was compiled from. i += j. It matches C assignment statements. /* ======================= */ Files searched: *.c Matches: i = 5.DOC in the root directory and all its subdirectories on the current drive. One type of report lists definitions of public names and references to them.

The OBJXREF com.OBJ files are included in reports.OBJ object files or to . The default is the screen.) Options and file names may occur in any order in the command line. As a general rule. They are discussed in more detail in the next section.different output file name is specifically indicated with the -o TCC command-line option. The syntax is as follows: OBJXREF options filename filename . however. File names may refer to . separated by a space or tab character.. (If you don't give a file extension.LIB file. including the startup .. . file names are separated by a space or a tab.======================================================= mand line The OBJXREF command line consists of the word OBJXREF followed by a series of command-line options and a list of object and library file names.LIB files that are needed if the program is to link correctly. OBJXREF includes only those modules from .23 - . All object modules specified as . File names may include a drive and directory path. Object files and library files may be specified either on the command line or in a response file.LIB files which contain a public name referenced by an . you should list all the . The command-line options determine the kind of reports that OBJXREF will generate and the amount of detail that OBJXREF will provide.OBJ extension is assumed.LIB library files. Each option begins with a forward slash (/) followed by a one. The reports can be sent to a printer (as with >LPT1:) or to a file (as with >lstfile) with the DOS redirection character (>). The DOS ? and * wildcard characters may be used to identify more than one file.OBJ and . Like TLINK.OBJ file and one or more C libraries.or two-character option name. OBJXREF reports are written to the DOS standard output. the .OBJ file or by a previously included module from a . On the command line.

the current directory will not be searched unless it is included in the directory list. command-line options -----------------. prefixed with /D: OBJXREF /Ddir1 [. include the directory name on the command line.OBJ files in a directory other than the current one.24 - . -----------------. if you wanted OBJXREF to search first the BORLAND directory /D .Entering OBJXREF with no file names or options produces a summary of available options. Important! If you don't use a /D option. dir3]] or OBJXREF /Ddir1 [/Ddir2] [/Ddir3] OBJXREF will search each of the directories in the specified order for all object and library files. For example.Control options ======================================================= Control options modify the default behavior of OBJXREF (the default is that none of these options are enabled).OBJXREF command-line options fall into two categories: The OBJXREF control options and report options.OBJ files in another directory. If you do use a /D option. If you want OBJXREF to look for . OBJXREF will search only the current directory. ------------------------------------------------------Option Meaning ------------------------------------------------------/I Ignore case differences in public names. Use this option if you use TLINK without the /C option (which makes case differences significant). however. Look for . dir2 [.

This provides information on the entire contents of a library file. All object modules in specified . Object modules may define a segment without allocating any space in it.") Allows you to specify an output file where OBJXREF will send any reports generated. and classes..25 - . /V Verbose output. Its syntax is as follows: OBJXREF filename.ext By default all output is sent to the screen. Include zero-length segment definitions. Lists names of files read and displays totals of public names. /O /Z ------------------------------------------------------Report options ======================================================= Report options govern what sort of report is generated. modules. /F Include full library. and the amount of detail that OBJXREF provides.obj /report option /Ooutputfilename. you would enter OBJXREF /Dborland. segments. .and then the current directory for files. Listing these zero length segment definitions normally makes the module size reports harder to use but it can be valuable if you are trying to remove all definitions of a segment. The period denotes the current directory. (See example 4 in the section "OBJXREF examples.LIB files are included even if they do not contain public names that are referenced by an object module being processed by OBJXREF.

/RM Report by module: Public names ordered by defining module.26 - .C files appear in reports with a leading underscore in the reports unless the -Uoption was specified when the file was compiled (main appears as _main). For example. OBJXREF filelist /RM /NC0 tells OBJXREF to generate a report listing information only for the module named C0. /RU Report of unreferenced symbol names: Unreferenced public names ordered by defining module. . /RR Report by reference: Public name definitions and references ordered by name. You can limit the modules. classes. /RX Report by external reference: External references ordered by referencing module name. /RV Verbose reporting: OBJXREF produces a report of every type. This is the default.------------------------------------------------------Option Report generated -------------------------------------------------/RC Report by class type: Module sizes ordered by class type of segment. /RS Report of module sizes: Module sizes ordered by segment name. -------------------------------------------------Public names defined in . /RP Report by public names: Public names in order with defining module name. or public names that OBJXREF reports on by entering the appropriate name on the command line prefixed with the /N option. segments.

OBJ and . -----------------. If your list of options and file names will exceed this limit. you must place your file names in a response file. A response file is a text file that you make with a text editor.PRJ extension is assumed.. for example.LIB files needed to make your . precede the project file name with /P. To use free-form files with OBJXREF. and separate it from other command-line entries with a space or tab: @filename @filename .27 - . not /L resp).OBJ and . The response file name must follow the option without an intervening space (so.In the command line. Response files are called from the command line using one of the following options. You can specify more than one response file on the command line. you would type /Lresp.OBJ file. OBJXREF recognizes several response file types. -----------------.. type in each response file name on the command line. like this: /Pfilename If the file name does not include an explicit extension. preceded by an @. a . -----------------Free-form response files -----------------Any file name listed in the response file without an extension is assumed to be an .You can also use project files of the type generated by Project files Turbo C++'s integrated environment as response files.EXE file.LIB file names can precede or follow them. You can create a free-form response file with a text editor.Response files ======================================================= The command line is limited by DOS to a maximum of 128 characters. . additional . Since you may already have prepared a list of the files that make up your program for other Turbo C++ programs. Just list the names of all .

void main(void) { int i4. In addition.c */ int i1. -----------------.OBJ file.h> extern int i1.Files in TLINK response-file format can also be used by Linker response OBJXREF.LIB. for example).28 - .C extension or no extension are interpreted as specifying the corresponding . extern void look(void). the list of files in a . The source files are called TEST1.PRJ file does not specify a complete program--you must also specify a startup file (C0x. EMU.LIB. } /* test2.OBJ) and one or more Turbo C++ library files (MATHX." Sample OBJXREF ======================================================= reports Suppose you have two source files in your Turbo C++ directory. look(). like so: -----------------/Lfilename To see how to use one of these files.c */ #include <process.File names in the project file with a . You need not remove file dependencies specified inside parentheses. and CX. refer to Example 2 in the section "Examples of how to use OBJXREF. you may need to use the /D option to specify the directory where OBJXREF should look for your . they are ignored by OBJXREF. /* /* /* /* defines i1 */ refers to i2 */ not a public name */ refers to look */ /* defines main */ /* not a public name */ /* refers to look */ /* refers to i1 */ . Note By itself. extern int i2.LIB.OBJ files. A linker response file called from the command files line is preceded by /L. and they look like this: /* test1. static int i3.C.C and TEST2. and want to generate OBJXREF reports on the object files compiled from them.

A report by module lists each object module being Report by module reported on. -----------------Report by public names (/RP) -----------------A report by public names lists each of the public names defined in the object modules being reported on. followed by a /R and a second letter denoting report type.int i2.OBJ. } /* defines i2 */ /* defines look */ /* refers to exit. followed by a list of the public names (/RM) defined in it. Note The following examples show only useful parts of the output. You can tell OBJXREF what kind of report to generate about these . If you enter this on the command line: OBJXREF /RP test1 test2 OBJXREF generates a report that looks like this: SYMBOL _i1 _i2 _look _main DEFINED IN TEST1 TEST2 TEST2 TEST1 -----------------. followed by the name of the module in which it is defined. -----------------If you enter this on the command line: OBJXREF /RM test1 test2 OBJXREF generates a report that looks like this: MODULE: TEST1 defines the following symbols: public: _i1 public: _main . */ /* and to i1 */ The object modules compiled from these source files are TEST1.29 - .OBJ and TEST2. void look(void) { exit(i1)...OBJ files by entering the file names on the command line.

This is the If you enter this on the command line: default if no report option is OBJXREF /RR C0 test1 test2 CS.MODULE: TEST2 defines the following symbols: public: _i2 public: _look -----------------Report by reference (/RR) -----------------A report by reference lists each public name with the defining module in parentheses on the same line.30 - .LIB OBJXREF generates a report that looks like this: MODULE: C0 references the following symbols: _main MODULE: TEST1 references the following symbols: _i2 _look MODULE: TEST2 references the following symbols: _exit _i1 .If you enter this on the command line: OBJXREF /RX C0 test1 test2 CS.LIB specified. OBJXREF generates a report that looks like this: _exit (EXIT) C0 TEST2 _i1 (TEST1) TEST2 _i2 (TEST2) _look (TEST2) TEST1 _main (TEST1) C0 -----------------. references (/RX) -----------------. Modules that refer to this public name are listed on following lines indented from the left margin.A report by external references lists each module Report by external followed by a list of external references it contains.

132 (00084h) CODE 6 (00006h) TEST1 TEST1 TEST2 total . TEST1_TEXT 6 (00006h) 6 (00006h) TEST2_TEXT 10 (0000Ah) 10 (0000Ah) _BSS 4 (00004h) 2 (00002h) 6 (00006h) TEST1 total TEST2 total TEST1.ASM file are flagged Abs to the left of the segment size. Segments which do not have a class type will be listed under the notation No class type. DATA class contains initialized data and BSS class contains uninitialized data. uninitialized total -----------------Report by class type (/RC) ------------------ A report by class type lists segment size definitions by segment class. Sizes in bytes are given in decimal and hexadecimal notation. The word uninitialized appears where no initial values are assigned to any of the symbols defined in the segment. The CODE class contains instructions.LIB OBJXREF generates a report that looks like this: BSS 4 (00004h) 2 (00002h) .-----------------Report of module sizes (/RS) ------------------ A report by sizes lists segment names followed by a list of modules that define the segment. uninitialized TEST2.31 - .. If you enter this on the command line: OBJXREF /RC C0 test1 test2 CS. If you enter this on the command line: OBJXREF /RS test1 test2 OBJXREF generates a report that looks like this: These files were compiled using the large memory model.. Segments defined at absolute addresses in a .

OBJ and TEST2. it can be deleted to save code or data space). just remove the public definition). Such a symbol is either: o referenced only from within the defining module and does not need to be defined as a public symbol (in that case. If you enter this on the command line: OBJXREF /RU test1 test2 OBJXREF generates a report that looks like this: MODULE: TEST2 defines the unreferenced symbol _i2. (/RV) -----------------Examples of how to ======================================================= use OBJXREF These examples assume that the application files are in the current directory of the default drive and that the Turbo C++ startup files (C0x. OBJXREF generates Verbose reporting one report of each type. if the module is in TASM. -----------------.32 - .OBJ and the library file \TC\LIB\CL.OBJ files and the Turbo C++ startup file \TC\LIB\C0L.If you enter /RV on the command line.10 (0000Ah) 16 (00010h) DATA 143 (0008Fh) 143 (0008Fh) -----------------Report of unreferenced symbol names (/RU) ------------------ TEST2 total C0 total A report of unreferenced symbol names lists modules that define public names not referenced in other modules. -----------------.lib Example 1 -----------------.C>OBJXREF \TC\lib\c0l test1 test2 \TC\lib\cl. the resulting report is the . if the module is in C. Since no report type is specified. the keyword static should be added to the definition.LIB are specified.OBJ) and the library files are in the \TC\LIB directory.In this example. o never used (therefore. the TEST1.

TEST1.OBJ.The Turbo C++ project file TEST1.lib b:emu.map \TC\lib\cl -----------------.C>OBJXREF /RV /Ltest1.This example reports on all the modules in the Turbo C++ library file CS.OBJ and TEST2.PRJ contains test1 test2.The TLINK response file TEST1.C>OBJXREF /F /RV \TC\lib\cs.arf Example 2 -----------------. TEST1. OBJXREF can produce useful reports even when the files specified do not make a complete program. The /RV option is specified. The /F causes all modules in CS.C>OBJXREF /RC B:c0s /Ptest1 @libs Example 3 -----------------.exe test1.ARF contains \TC\lib\c0l test1 test2 test1.LIB.33 - . listing public names and the modules that reference them. .LIB file to be included in the report.ARF contains the same list of files as the command line in Example 1.PRJ specifies TEST1.lib Example 4 -----------------. so a report of every type will be generated.c The file LIBS contains b:maths.lib The startup and library files specified depend on the memory model and floating point options used in compilation. -----------------.lib b:cs. -----------------. The /RC causes a report of class type to be output.default report by reference. The response file @libs specifies libraries on a disk in the B drive.

OBJXREF error ======================================================= messages and warnings OBJXREF generates two sorts of diagnostic messages: error messages and warnings. ------------------ Out of memory Error messages OBJXREF performs its cross referencing in RAM memory ------------------ and may run out of memory even if TLINK is able to link the same list of files successfully. When this happens, OBJXREF aborts. Remove memory resident programs to get more space, or add more RAM. ------------------ WARNING: Unable to open input file <filename> Warnings The input file filename could not be located or opened. ------------------ OBJXREF proceeds to the next file. WARNING: Unknown option - <option> The option name option is not recognized by OBJXREF. OBJXREF ignores the option. WARNING: Unresolved symbol <symbol> in module <module> The public name symbol referenced in module module is not defined in any of the .OBJ or .LIB files specified. OBJXREF flags the symbol in any reports it generates as being referenced but not defined. WARNING: Invalid file specification <filename> Some part of the file name filename is invalid. OBJXREF proceeds to the next file. WARNING: No files matching <filename> The file named filename listed on the command line or in a response file could not be located or opened. OBJXREF skips to the next file. WARNING: Symbol <symbol> defined in <module1> duplicated in <module2> Public name symbol is defined in modules module1 and module2. OBJXREF ignores the second definition.

- 34 -

=========================================================================== PRJCFG: Configuration file utility =========================================================================== Creates the command-line configuration file from a project file. You can also use it to create or update a project file from a configuration file. The command-line compiler looks for a default configuration file named TURBOC.CFG, but you can specify a different file with +pathname option. To use PRJCFG to create a TCC configuration file from a project file, you would type the following: PRJCFG ProjFile.PRJ ConfigFile.CFG To make a project file from a configuration file, type PRJCFG ConfigFile.CFG ProjFile.PRJ

=========================================================================== PRJCNVT: Old projects for new =========================================================================== This utility converts Turbo C 1.0, 1.5, and 2.0 project files to Turbo C++ project files. The syntax for it is PRJCNVT infile[.PRJ] [outfile[.PRJ]] or PRJCNVT infile[.TC] [outfile[.PRJ]] If you specify a configuration file as input, it must have a project file defined. The compiler options in the .CFG file and the dependencies in the Turbo C 2.0 .PRJ file will be placed into the corresponding Turbo C++ .PRJ file. If you specify a project file as input, only dependencies information will be placed into the Turbo C++ .PRJ file. All compiler options will remain default.

- 35 -

If you don't provide an extension, .TC is assumed. If PRJCVNT can't find a .TC file, it looks for a .PRJ file. The default name of the output file is the base name of the input file with the extension .PRJ. For example, STARS.TC will turn into STARS.PRJ. If the input and the output name are the same, the old file will be renamed to a .BAK file.

=========================================================================== PRJ2MAK: From project file to MAKE file =========================================================================== This utility converts a .PRJ file to a .MAK file (containing all relevant switches and settings) for use with the MAKE utility. These files can be re-used without accessing the IDE. The syntax for PRJ2MAK is PRJ2MAK projectfile[.PRJ] [makefile[.MAK] [config[.CFG]]] The extension for the project file name is assumed to be .PRJ unless you specify otherwise. The default name name of the .PRJ default name for name of the .MAK for the new MAKE file is the base file file with the extension .MAK. The the new .CFG file is the base file file with the extension .CFG.

To change the names of the makefile and configuration files, just specify different names on the command line. Examples of valid execution: PRJ2MAK MYPROJ.PRJ MAKEFILE.MAK TURBOC.CFG This execution creates a makefile called MAKEFILE.MAK with a configuration file called TURBOC.CFG. PRJ2MAK MYPROJ.PRJ MAKEFILE.MAK This execution creates a makefile called MAKEFILE.MAK with a configuration file called MYPROJ.CFG. PRJ2MAK MYPROJ

- 36 -

This execution creates a makefile called MYPROJ.MAK and a configuration file called MYPROJ.CFG. The makefile that PRJ2MAK creates will set up a redirection file for the linker response file and for the .CFG file. They will be created when you run the makefile that was generated. The linker response file is a temporary file and will be deleted. The .CFG file will be left as a file on disk. PRJ2MAK places options that meet the following requirements into the .CFG file: Those that are not default to the Turbo C++ command-line compiler and have been selected in the project file. PRJ2MAK will use the library search path as a command link option to TLINK, so that TLINK can search that path for the startup module and for libraries.

=========================================================================== THELP: The Turbo Help utility =========================================================================== THELP.COM is a RAM-resident (TSR) utility that accesses Turbo C++'s online Help information for you when you aren't using the IDE (that is, if you are using an editor other than the one in the IDE, or you are using the command-line version of Turbo C++, or if you are using another product, such as Turbo Debugger). THELP requires about 21K bytes of memory. Loading and ======================================================= invoking THELP

- 37 -

. Shift-Arrow Moves the cursor while marking a block.TCH. shift state 00h). is in the current directory.) Once you are in the other application.38 - . at the DOS command line before you go into your application. This needs to be done only once. just type Plus.Warning! If you are going to have THELP resident in memory at the same time as SideKick 1. Tab and Shift-Tab Moves to the next or previous keyword. Just position the cursor under the item you want information on. THELP has a special /F command-line option that will enable THELP to find it. (If you want to keep TCHELP. then press the THELP hot key. Home and End Move to the beginning and end of a line. You need to first load THELP in order to use it from within another program (or from the command line). you can activate THELP at any time. make sure you load THELP THELP [options] before you load SideKick.TCH in another directory. Navigating THELP ======================================================= Use the following keys to navigate through the Help screens that THELP displays on your monitor: ---------------------------------------------------------------------Key What it does ---------------------------------------------------------------------Up Down Left Right Move the highlight from keyword to keyword within the current Help screen. the text file containing the Turbo C++ online help information.x or SideKick To load THELP. respectively. the INSTALL program inserts the correct path information into THELP. The default hot key is 5 on the numeric keypad (scan code 4ch. when you first boot up. Make sure that TCHELP.

------------------------------------------------------Option Specifies ------------------------------------------------------- Summary of THELP command-line options . If you use more than one option.COM and each option in the configuration file must be placed on its own line and begin in the leftmost column. Alt-F1 Alt-F Pressing Alt-F1 repeatedly takes you in reverse order through the last 20 screens you have reviewed.CFG must be located in the same directory as THELP. Enter Esc F1 Selects a Help entry for the item highlighted in the current Help screen.PgUp/PgDn Moves from screen to screen if additional screens are available. The command-line options can be placed in a configuration file (called THELP.CFG) for convenience. With each letter you type.39 - . you must separate them with spaces. Ends Help session. then to pr. Displays the Help Table of Contents screen. For example. you can find printf by typing p r i. You can search for a specific keyword incrementally. Ctrl-P ---------------------------------------------------------------------THELP options ======================================================= Here is a summary of the THELP command-line options. then to pri. THELP. Shift-F1 Displays the Help Index.CFG file or on the command-line). Selects a new Help file (if you have specified more than one help file in the THELP. and so on. Pastes the marked block or example text into your current application. the list jumps to the keyword that starts with p.

h -----------------------------------------------------------------------/C#xx (select color) -----------------This option lets you customize the background and foreground colors of various elements in a help screen. respectively. ? /Kxxyy /U /Wx.w.Table 1. numbered as follows: ------------------------------------------------------Number Element ------------------------------------------------------0 1 2 3 4 5 6 7 8 9 A B Color border attribute Monochrome border attribute Color text attribute Monochrome text attribute Color keyword attribute Monochrome keyword attribute Color selected keyword word attribute Monochrome selected keyword word attribute Color example text attribute Monochrome example text attribute Color marked block attribute Monochrome marked block attribute .1: Summary of THELP command-line options (continued)____________________________________________ /C#xx Select color: # = color number xx = hex color values Full path and file name of Help file Display help screen Change hot key: xx = shift state (hex) yy = scan code (hex) Remove THELP from memory Sets the window size and location. /?.y. /Fname /H. There are twelve possible colors.40 - . The /C option is followed by the number of the color you want and the hex color values for background and foreground.

------------------------------------------------------The color values for a standard IBM-compatible color display are as follows: ------------------------------------------------------First digit (background) Second digit (foreground) ------------------------------------------------------0 1 2 3 4 5 6 7 Black Blue Green Cyan Red Magenta Brown Gray 0 1 2 3 4 5 6 7 8 9 A B C D E F Black Blue Green Cyan Red Magenta Brown Gray Intense Intense Intense Intense Intense Intense Intense Intense ORing the color value with 0x80 produces a blinking color unless blinking has been disabled.41 - . file) -----------------.The name that follows the /F option should be the full /Fname (full path drive/directory path name of the help file to use. .TCH You can specify multiple help files on the command-line or in the THELP. black blue green cyan red magenta brown (yellow) gray (white) ------------------------------------------------------On monochrome monitors. for and name for help example. the attribute values can differ widely.CFG file. THELP supports up to eight help files.THELP /FC:\TC\OWLHELP. so you may need to experiment.TCH THELP /FC:\TC\TCHELP. -----------------.

Virtually any shift state/scan code combination may be selected.42 - .-----------------/H. This option allows you to reassign a function to a new hot key. /?. Here's a quick summary of some common shift states and scan codes: ------------------------------------------------------Shift states (can be OR'ed together): Right Shift Left Shift Ctrl Alt Scan codes: A B C D E F G H I J K L M 1eh 30h 2eh 20h 12h 21h 22h 23h 17h 24h 25h 26h 32h N O P Q R S T U V W X Y Z 31h 18h 19h 10h 13h 1fh 14h 16h 2fh 11h 2dh 15h 2ch 0 1 2 3 4 5 6 7 8 9 0bh 02h 03h 04h 05h 06h 07h 08h 09h 0ah F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 3bh 3ch 3dh 3eh 3fh 40h 41h 42h 43h 44h 01h 02h 04h 08h Enhanced keyboards only (may not work with all computers or keyboards): F11 57h F12 58h ------------------------------------------------------- . and ? (display help screen) -----------------/Kxxyy (reassign hot key) ------------------ Any of these options displays a summary of THELP's command-line options. The option must be followed by the shift state (xx) and the scan code (yy) of the new key.

to create a full-screen help window use: /W0.80. or commercial libraries you've purchased.-----------------. or to modify the Turbo C++ libraries.OBJ (object module) files. make sure to remove them from memory) before removing THELP. ----------------------------------. You can use TLIB to o create a new library from a group of object modules o add object modules or other libraries to an existing library o remove object modules from an existing library o replace object modules from an existing library o extract object modules from an existing library o list the contents of a new or existing library .This option removes THELP from memory. libraries furnished by other programmers. TLIB always creates a copy of the original library with a . When it modifies an existing library. If other TSRs /U (remove THELP have been loaded after THELP. You can use TLIB to build your own libraries. your own libraries.43 - .0.BAK extension.y.25 =========================================================================== TLIB =========================================================================== TLIB is a utility that manages libraries of individual .w. Better safe than sorry! The libraries included with Turbo C++ were built with TLIB. A library is a convenient tool for dealing with a collection of object modules as a single unit.h (set the x = window column location (zero based) window size and y = window row location location) w = window width -----------------h = window height For example.Where: /Wx.

See the section on TLIB can also create (and include in the library file) the /E option an Extended Dictionary. You will find TLIB indispensable for large development projects. When you link your program with a library. Why use object ======================================================= module libraries? When you program in C and C++. you are likely to split those functions into many separately compiled source files. it is a useful programming productivity tool. where items listed in square brackets ([like this]) are optional: tlib [/C] [/E] [/Psize] libname [operations] [. Although TLIB is not essential for creating executable programs with Turbo C++. If you work with object module libraries developed by others. just type TLIB and press Enter. to figure out exactly which files you are using. which may be used to speed up (page 49) for linking. you often create a collection of useful functions and classes. the linker scans the library and automatically selects only those modules needed for the current program. your program becomes extremely large and unwieldy. details. however. listfile] . An object module library solves the problem of managing a collection of functions and classes. Because of C and C++'s modularity. It can become quite tedious. On the other hand. you can use TLIB to maintain those libraries when necessary.44 - . The TLIB command line To get a summary of TLIB's usage. You use only a subset of functions from the entire collection in any particular program. ======================================================= The TLIB command line takes the following general form. if you always include all the source files.

We recommend that you do not use an extension other than . . since both TCC and TC's project-make facility require the . The name of the file listing library contents. or to the printer by using the name PRN.Table 1. You can direct the listing to the screen by using the listfile name CON. The listfile name (if given) must be preceded by a comma. If you only want to examine the contents of the library. The listing is an alphabetical list of each module.45 - . TLIB creates the library. The list of operations TLIB performs. Every TLIB command must be given a libname. TLIB assumes an extension of .LIB extension in order to recognize library files. see page 49 for a detailed explanation.LIB. see page 50 for a detailed explanation. the following sections provide details about using TLIB. For TLIB examples. Creates Extended Dictionary. Operations may appear in any order. don't give any operations. No listing is produced if you don't give a file name. The entry for each module contains an alphabetical list of each public symbol defined in that module. /C /E /Psize operations listfile --------------------------------------------------------------------------This section summarizes each of these command-line components.LST. Wildcards are not allowed. The case-sensitive flag.2: TLIB options --------------------------------------------------------------------------Option Description --------------------------------------------------------------------------libname The DOS path name of the library you want to create or manage. Note: If the named library does not exist and there are add operations. see page 49 for a detailed explanation. The default extension for the listfile is . This option is not normally used.LIB if none is given. Sets the library page size to size. refer to the "Examples" section on page 51.

TLIB always applies the operations in a specific order: 1.OBJ extension from the current directory. The order of the characters . 3.OBJ extension.) Note that TLIB always assumes reasonable defaults. path.COM-imposed line-length limit of 127 characters. *).-----------------. You can put whitespace around either the action symbol or the file or module name. you only need to supply the module name. which you can use singly or combined in pairs for a total of five distinct operations. (Typically. then adding the replacement module. You can put as many operations as you like on the command line. to add a module that has an . All add operations are done last. All extract operations are done first. drive. and extension are not given. You can replace a module by first removing it.46 - . TLIB operations ======================================================= TLIB recognizes three action symbols (*. Wildcards are never allowed in file or module names. and extension information from it. +. Each operation consists of a oneor two-character action symbol followed by a file or module name. 2. File and module names ======================================================= TLIB finds the name of a module by taking the given file name and stripping any drive.one after the other. but not in the middle of a two-character action or in a name. up to DOS's COMMAND. For example. The order of the operations is not important. It consists of a sequence of operations given -----------------. All remove operations are done next. path. not the path and .The operation list describes what actions you want TLIB The operation list to do.

TLIB assumes an extension of .is not important for operations that use a pair of characters. If a module being added already exists. If the module does not exist. add modules to a library that does not yet exist. TLIB action symbols To create a library. A remove operation only needs a module name. but ignores everything except the module name.47 - . TLIB allows you to enter a full path name with drive and extension included. * Extract TLIB creates the named file by copying the corresponding module from the library to the file.OBJ. If the file has no extension given. then the operation adds all of the modules in the named library to the target library. If the file is itself a library (with a . If the module does not exist in the library. TLIB displays a message and does not create a file. TLIB displays a message. . The action symbols and what they do are listed here: ------------------------------------------------------Action symbol Name Description ------------------------------------------------------+ Add TLIB adds the named file to the library.LIB extension). TLIB displays a message and does not add the new module. Remove TLIB removes the named module from the library. If the named file already exists. it is overwritten.

extract and remove it. This is just shorthand for an extract followed by a remove operation. file and a TLIB command line o More than one line of text can make up a response incorporating it. you use the "and" character (&) at the end of a line to indicate that another line follows. you can build TLIB commands larger than would fit on one DOS command line.3: TLIB action symbols (continued)_____________ You can't directly rename modules in a library. See "Examples" for To use a response file pathname. rename the file just created.48 - . specify @pathname at a sample response any position on the TLIB command line. or if you find yourself repeating certain sets of operations over and over. To rename a module. -* *Extract & Remove TLIB copies the named module to the corresponding file name and then removes it from the library. and you can type in the rest. -+ +- Replace ------------------------------------------------------Using response ======================================================= files When you are dealing with a large number of operations. o You can use more than one response file in a single TLIB command line. This is just shorthand for a remove followed by an add operation. then add it back into the library. the file can provide a portion of the TLIB command line. o You don't need to put the entire TLIB command in the response file. . Using response files. TLIB replaces the named module with the corresponding file.Table 1. file. A response file is simply an ASCII text file (which can be created with the Turbo C++ editor) that contains all or part of a TLIB command. you will probably want to start using response files.

LIB file. Setting the page ======================================================= size: The /P option Every DOS library file contains a dictionary (which appears at the end of the . To create an extended dictionary for a library that is being modified. TLIB will display a warning that the specified module was not found in the library. you can direct TLIB to create an extended dictionary and append it to the library file. the page size must be a . if you enter tlib /E mylib -bogus TLINK will ignore the debugging information in a library that has an extended dictionary. in a very compact form. this address is given in terms of the library page size (it defaults to 16 bytes). following all of the object modules). The default (and minimum) page size of 16 bytes allows a library of about 1 MB in size. use the /E option and ask TLIB to remove a nonexistent module from the library. the page size must be increased using the /P option. This dictionary contains.49 - . The library page size determines the maximum combined size of all object modules in the library--it cannot exceed 65. For each module in the library.LIB file. or replace modules in the library. unless the /e option is used on the TLINK command line. use the /E option when you invoke TLIB to add.LIB library). remove. information that is not included in the standard library dictionary. this dictionary contains a 16-bit address of that particular module within the . For example. but it will also create an extended dictionary for the specified library. This information enables TLINK to process library files faster. To create an extended dictionary for an existing library that you don't want to modify. To create a larger library.Creating an ======================================================= extended dictionary: The /E To speed up linking with large library files (such as option the standard Cx.536 pages.

Stars. TLINK. Advanced ======================================================= operation: The /C option When you add a module to a library. All symbols in the library must be distinct. on the average 16 bytes will be lost per object module in padding. TLIB maintains a dictionary of all public symbols defined in the modules of the library. uppercase and lowercase letters are not considered as distinct. For example. for your own protection you should not use the /C option. In this example. Normally. The reason is that some linkers fail to distinguish between symbols in a library that differ only in case. The /C option tells TLIB to accept a module with symbols in it that differ only in case from symbols already in the library. As long as you use the library only with TLINK. for example. TLIB displays a message and won't add the module. Since C and C++ do treat uppercase and lowercase letters as distinct. Stars. use the /C option to add a module to a library that includes a symbol differing only in case from one already in the library. in a library with a page size of 32 (the lowest possible page size higher than the default 16). will treat stars. then. and it may not be smaller than 16 or larger than 32. For example. It may seem odd that. especially since C and C++ are case-sensitive languages. Such linkers. the symbols lookup and LOOKUP are treated as duplicates. If you want to use the library with other linkers (or allow other people to use the library with other linkers). has no problem distinguishing uppercase and lowercase symbols. and STARS as three separate identifiers. and STARS as the same identifier. when TLIB checks for duplicate symbols in the library. Turbo C++ would treat stars.power of 2. All modules in the library must start on a page boundary. on the other hand. you can use the TLIB /C option without any problems. If you attempt to create a library that is too large for the given page size.50 - . TLIB rejects symbols that differ only in case. and it will properly accept a library containing symbols that differ only in case. TLIB will issue an error message and suggest that you use /P with the next available higher page size. If you try to add a module to the library that would cause a duplicate symbol. without the /C option. .768.

lst =========================================================================== TOUCH =========================================================================== There are times when you want to force a particular target file to be recompiled or rebuilt.OBJ and delete Z. type tlib mylib *y.obj +c. ALPHA. type tlib mylib +x +y +z 2. To create a library named MYLIB.OBJ.obj +b. . type tlib cs. cs. type tlib mylib +x +y +z.obj & +d. and Z.obj & +g.obj +e.lst 6.LST too. 1.OBJ using a response file: First create a text file.OBJ from MYLIB.obj Then use the TLIB command.OBJ.RSP. To create a new library named ALPHA. To replace module X. G.OBJ.LIB.LST: tlib alpha @alpha. To extract module Y. alpha. Y.. B. with +a.LIB.LIB with modules X.lst 4.LST of an existing library CS.. with modules A.OBJ.OBJ.lst 3.OBJ from MYLIB.Examples ======================================================= Here are some simple examples demonstrating the different things you can do with TLIB.LIB and get a listing in MYLIB. To create a library as in #1 and get a listing in MYLIB. which produces a listing file named ALPHA. add A.rsp. mylib. One way to do . type tlib mylib -+x +a -z 5..51 - . mylib.LST. To get a listing in CS.obj +f.OBJ with a new copy. even though no changes have been made to its sources.

the set of the transfer items in Dest is replaced by the set of transfer items in Source. making it "newer" than the files that depend on it. you can invoke MAKE to rebuild the touched target file(s). at the DOS prompt. If the -r option is used. To touch a file (or files). TOUCH changes the date and time of one or more files to the current date and time. Failing to do this will keep both TOUCH and MAKE from working properly. TOUCH will then update the file's creation date(s).. If you're using an IBM PC. XT. You can force MAKE to rebuild a target file by touching one of the files that target depends on. Important! Before you use the TOUCH utility. it's vitally important to set your system's internal clock to the proper date and time. Once you do this.. or compatible that doesn't have a battery-powered clock. Dest gets the new transfer items. .this is to use the TOUCH utility. =========================================================================== TRANCOPY: A project transfer item utility =========================================================================== TRANCOPY copies transfer items from one project to another. The syntax is TRANCOPY [-r] Source[. don't forget to set the time and date using the DOS TIME and DATE commands.] DOS wildcards * and ? with TOUCH.52 - . type You can use the touch filename [filename .PRJ] TRANCOPY merges the transfer items in Source with the transfer in Dest.PRJ] Dest[.

You can specify the inverse conversion with the -u (UNDO) command-line option. including wildcards. Ordinarily. and it can convert single characters to their trigraph representation. so Turbo C++ provides a filter named TRIGRAPH. TRIGRAPH.53 - . The syntax for invoking this program is as follows: TRIGRAPH [-u] file(s) [file(s) . and . Translating trigraphs in the compiler would slow compilation down considerably.BAK.=========================================================================== TRIGRAPH: A character-conversion utility =========================================================================== Trigraphs are three-character sequences that replace certain characters used in the C language that are not available on some keyboards.. For each file specified. which must come before any file names on the command line. TRIGRAPH.EXE to handle trigraph sequences when you need to..EXE works in two directions: It can convert all trigraphs to their single-character representation.] The following table shows the trigraph sequences that TRIGRAPH. it creates a backup copy of the file with the original file name and an extension of . on the command line.EXE converts trigraphs to single characters.EXE takes any number of file specifiers.EXE recognizes: ------------------------------------------------------Trigraph Character ------------------------------------------------------??= ??( ??/ ??) ??' ??< ??! ??> ??# [ \ ] ^ { | } ~ ------------------------------------------------------TRIGRAPH.

BAK and TEST1.c removes all trigraphs from the two files TEST. For example.C. State macros ======================================================= State macros are expanded according to the state of the IDE.c test1.creates a new file with the original file name and the appropriate conversions performed. They allow you to build up new file name specifications from existing file names.54 - . the following command inserts trigraphs into all the files with the extension . and makes backup copies of all those files. As another example.C and TEST1. The state macros are $COL $CONFIG $DEF $ERRCOL $ERRLINE $ERRNAME $INC $LIB $LINE $PRJNAME File name macros ======================================================= File name macros are actually functions that take file names as arguments and return various parts of the file name.BAK.c =========================================================================== Transfer macros =========================================================================== The IDE recognizes certain strings of characters called transfer macros in the parameter string of the Modify/New Transfer Item dialog box. trigraph test. trigraph -u *. file name. The transfer macros are listed alphabetically and described in more detail starting on page 55. giving them the extension . you can pass TDUMP a macro like this: . There are three kinds of macros: state. For example.BAK.C. creating backup files TEST. and instruction.

OBJ The file name macros are $DIR $DRIVE() $EDNAME $EXENAME $EXT() $NAME() $OUTNAME Instruction macros ======================================================= Instruction macros tell the IDE to perform some action or make some setting. If your current directory is C:\WORK. the transfer program must write to DOS standard output. and an explicit extension. your output directory is TEST. a new editor window is created. The captured output resides in a special Edit window titled Transfer Output. and the active editor contains MYPROG. The instruction macros are $CAP EDIT $CAP MSG(filter) $DEP() $MEM(kb to reserve) $NOSWAP $PROMPT $SAVE ALL $SAVE CUR $SAVE PROMPT $TASM $CAP EDIT: This macro tells the IDE to redirect program output into a standard file. After the transfer program is completed.$DIR($EXENAME)$NAME($EDNAME).OBJ This macro gives you the output directory path. then TDUMP receives the parameter C:\WORK\TEST\MYPROG.C. . the file name only in the active Edit window.55 - . For $CAP EDIT to work correctly. and the captured output is displayed.

make if one of the resource components has been modified.EXE for GREP and TASM2MSG. This is a null string if no configuration file is defined. When the configuration file is reloaded. We've included the source code for these filters so you can write your own filters for other transfer programs you install. then the string is set to 0. you can edit the TEML script file in an editor and then invoke the Turbo Editor Macro Compiler (TEMC) to process the script. in the form D:. Its use is documented in this file.56 - . using filter as a DOS filter for converting program output into Message window format. This macro is only $DEP(): This macro provides the ability to used by the automatically rebuild resources as part of a project project manager. We've provided several filters for this macro: GREP2MSG. this macro causes the current configuration to be saved (if modified) and reloaded when control returns to the IDE. TEML is a Pascallike language that has many built-in primitive editor commands. $COL: Column number of current editor. This macro is intended for use by programs that access or modify the configuration file.You can use any program that has line-oriented messages output (file and line number) with this macro. Besides providing the name of the file. If the active window is not an editor. $DRIVE(): Drive of the file argument. full path. Use this macro to specify define directives to an external translator. $DEF: Pulls in the contents of the Options|Compiler| Code Generation "Defines" type-in box. When installing TEMC as a transfer item. With it. your new or modified editor commands will be in effect. use the following command line: $EDNAME $CONFIG This assumes the current Edit window contains the TEML script file to be processed. $CONFIG: Complete file name of the current configuration file.EXE for Turbo Assembler (TASM). $CAP MSG(filter): Captures program output into the Message window. Use this macro with the Turbo Editor Macro Language (TEML) compiler. . $DIR(): Directory of the file argument.

$EDNAME: Complete file name of file in active editor.CPP). based on the project name or. If the active window is not an editor. $ERRCOL: Column number of current error in file $ERRNAME. $NOSWAP: This macro tells the IDE not to swap to the User Screen when running the program. $MEM(Kb to reserve): This macro tells the IDE how much memory to try to give the transfer program. then the name of the . $EXT(): Extension of the file argument. If there are no messages. then string is expanded to null string. It pops up a box that indicates which transfer program is running. does not include the dot. Use this macro in conjunction with $CAP. $EXENAME: Program's file name (including output path). whichever is smaller. This is a null string if the active window is not an editor. The IDE gives up as much memory as possible. $LINE: Line number of current editor. this includes the dot (for example. This is a null string if there are no messages or the currently selected message does not refer to a file. $NAME(): Name part of the file argument. You'll get an error if no memory is specified. $ERRLINE: Line number of current error in file $ERRNAME. $INC: Pulls in the contents of the Options|Directories| Include Directories type-in box. then string is expanded to null string. $ERRNAME: Complete file name of file referred to by the selected messages in the Message window. $LIB: Pulls in the contents of the Options|Directories| Library Directories type-in box. to either the amount specified or the maximum available.EXE that would be produced from the active editor window. if there is no project defined. . then the string is set to 0.57 - . If there are no messages. .

if the project contains STARS.C is in the active edit window. without prompting. the default Output Path type-in is STARS. So if STARS.XYZ.58 - .OBJ. $PROMPT: This macro tells the IDE to display the expanded parameter string before calling the transfer program. $PRJNAME: The current project file. You will be asked if you want to save any unsaved files. If you've edited the type-in box so it says .The position of $PROMPT command in the command line determines what is shown in the dialog prompt box.$OUTNAME: This macro expands to the path and file name that appear in the Project|Local Options Output Path type-in box (in the active edit window). For example. This macro is useful when you are specifying modules for your userdefined translators. For example.C. you could define a TLIB translator and set the command line to TLIB MYLIB +$OUTNAME which adds the object module of the file in the active edit window to the library MYLIB. This allows you to change or add to the string before it is passed.. Null string if no project is defined. This ensures that the invoked program will use the latest version of the source file.\MOON. $OUTNAME expands to STARS.\MOON. but dir can be edited before the command is run.. $SAVE ALL: This macro tells the IDE to save all modified files in all Edit windows that have been modified. For example. $SAVE CUR: This macro tells the IDE to save the file in the current editor if it has been modified. $SAVE PROMPT: This macro tells the IDE to prompt when there are unsaved files in editor windows. . the /c in /c $PROMPT dir is constant and doesn't show in the dialog box. The command line that will be passed is displayed in a dialog box. $OUTNAME will expand to . You can place constant parameters in the command line by placing them before $PROMPT.OBJ.XYZ.

There may be some cases where the IDE cannot give up as much memory as you requested.$TASM: This macro is predefined for use with Turbo Assembler. the IDE gives up as much as it can.$OUTNAME $WRITEMSG(filename): This macro copies the contents of the Message window to the specified ASCII file. for example. del *.59 - . $WRITEMSG(C:\MESSAGES. while debugging a program. Since the $PROMPT command appears later in the string.TXT on your root directory. For example. where many popular editors require 200-300K to work well. This lets you just type dir. The translator can parse the file and act on the messages so desired.*. the IDE will . you can set up a simple transfer macro that will let you do so. Transfer memory ======================================================= settings Different programs have different memory needs. The less memory you devote to a transfer program. There are certain states in the IDE that require more memory than others. For example. Running DOS ======================================================= commands If you want to run DOS commands from within the integrated environment. the text command /c won't show up in the dialog's input box. you can specify (on a program-by-program basis) how much memory the IDE should give to the transfer programs. $TASM is essentially shorthand for this: $NOSWAP $SAVE CUR $CAP MSG(TASM2MSG) $EDNAME. chkdsk. the quicker the transfer to and from the program occurs. GREP can run in very little memory. It uses the TASM2MSG filter to trap TASM messages. When this happens. a dialog box appears and prompts you for DOS input. Just add this transfer item: command /c $MEM(128) $PROMPT When you invoke this transfer item. or whatever DOS command you want to run. If you use the $MEM() macro.TXT) writes to the file MESSAGES.

=========================================================================== TEMC command line =========================================================================== TEMC is invoked from the DOS command line. How much memory is actually given up is dependent on how much you have when you start Turbo C++. Type temc [-c] [-u] <script file> <config file> The script file extension is . It serves as an example script. The configuration file need not exist.TEM contains the default macro definitions and key bindings built into the IDE editor.tie up more resources than when not debugging. The optional -c switch can also be specified as /c. it is created. like 640K. . and can appear in any argument position on the command line. When -c is not used. In those cases where you want the IDE to give up all its memory. as well as a base from which to customize the editor. the key bindings in the script file are merged with those already defined in the configuration file. If you use this option.EXE is an editor macro compiler for the IDE. Use Program Reset (Ctrl-F2) to free up debugging memory. give it a large number. and produces a configuration file that is read by the IDE to define the effects of keyboard commands in the editor.60 - .TEM if not specified otherwise. any existing command table in your configuration file is thrown away before TEMC processes the script file.TC. =========================================================================== Turbo Editor macros =========================================================================== TEMC. It processes a script file that defines editor macros and key bindings. If it does not exist. The file DEFAULTS. The configuration file extensions is assumed to be .

TEMC's language is case insensitive. Unlike C. and <command> can be either the name of another predefined macro or a predefined TEMC editor command. . the following points are valid: 1... */ pairs. . Spaces and new lines are optional. This file is included as both a sample script file and as the default command table. For example. 5. which can also be specified as /u.. A file named CMACROS. Comments are in C-style /* . [ <command2>. 3. 2.TEM to re-create exactly the default settings of the Alternate command set. =========================================================================== Syntax =========================================================================== The syntax to define a macro is MACRO <macroname> <command1>.TEM is provided with Turbo C++. When you define your macro. You can use DEFAULTS. You can copy it and modify it for your own use. A statement defines either a named macro or a key binding. <macroname> can consist of anything that is a legal C symbol..TEMC by default modifies the commands used by the IDE when the Alternate command set is specified in Options| Environment|Preferences. this file contains many useful enhancements to the IDE for C and C++ programming that you may wish to install. ] END.61 - . The optional -u switch. A list of editor commands and what they do follows. 4. causes TEMC to modify the CUA command set instead. Some of the predefined editor commands have a syntax that looks like a C function call with one argument.

TEM: MACRO MacScrollUp ScrollScreenUp. Here's an example of a macro definition from DEFAULTS.. The syntax to define a key binding is <key-sequence>: <command>. END. a character constant. or <key-sequence>: BEGIN <command1>. All are specified using C syntax. Key codes can be specified in a script through any combination of the symbols "Ctrl-". The <key-sequence> is either a key (a character optionally preceded by Ctrl or Alt). Depending on the command. even though the latter is the same as CTRLK+b.SetMark(5). .62 - . "Shift-" "Alt-" and a character. and each <command> can be either the name of a previously defined macro. =========================================================================== Key codes =========================================================================== The IDE editor makes use of an extended character set that includes key combinations not normally available to DOS programs.1. Ctrl-k+B is different than Ctrl-k+b. For example. or a string literal. . or one of the predefined editor commands listed in Table 1. ] END. Note that the specification of the key characters themselves is case sensitive. the argumment is either a decimal integer constant. or a series of keys separated by a plus sign (+). [ <command2>.. Whitespace is allowed between the key-sequence and the colon. FixCursorPos.

The following names specify keys that cannot be typed as themselves in the TEMC syntax. or Ctrl-B.63 - . numbers. Any key in a sequence--except the first key--can be preceded by one of the characters ^ or @. o Ctrl-k+@B specifies Ctrl-K followed by either b or B. For example. o Ctrl-k+^b specifies a Ctrl-K followed by any of b.or Shift-. B. Alt. or characters. uppercase. The caret (^) indicates that any combination of case and "Ctrl" can be used to type the key. or control characters. lowercase. use Shift-Tab .Some keys cannot be entered directly into a TEMC script. although "Ctrl" is not accepted. o Ctrl-k+b specifies a Ctrl-K followed by a lowercase b. that is. optionally preceded by one or more of Ctrl-. Named keys ======================================================= Key are specified as letters. Those keys can be referred to by their names. as described in the following table. ------------------------------------------------------Key name Notes ------------------------------------------------------Home End PgUp PgDn LfAr RgAr UpAr DnAr Ins Del Enter Return BkSp Tab BkTab Left arrow Right arrow Up arrow Down arrow Same as Enter Backspace No longer available. The @ sign is used to indicate that case is insignificant for the following character.

Your macro will "pause" until control returns to the editor. as long as you don't create any loops by having two macros calling each other.64 - . even via intermediate macros. Note that some commands cause an escape from the editor to the surrounding IDE. leaving column unchanged. If any adjustment is necessary. for example. by bringing up a dialog box. adjust the display so the cursor is CenterFixScreenPos . TEMC editor commands ------------------------------------------------------Command name What the editor does ------------------------------------------------------BackspaceDelete BottomOfScreen Deletes character before the cursor. Moves cursor to the bottom line of the current window.Esc Star Minus Plus Space PrtSc F1 to F10 * key on the numeric keypad . Adjusts the screen display to ensure the cursor is visible. Commands that cause an escape from the editor follow. A list of all predefined TEMC editor commands is shown next.key on the numeric keypad + key on the numeric keypad Spacebar Function keys ------------------------------------------------------- =========================================================================== Predefined editor commands =========================================================================== TEMC lets you use built-in editor commands and userdefined macros as commands within macros interchangeably.

but pays attention to cursor through tab option setting (see SetCursorThroughTabMode). This command will skip over tab characters and advance to the beginning of the next line. Moves cursor right over one character. but pays attention to cursor through tab option setting (see SetCursorThroughTabMode).65 - . Moves cursor right one screen column. CopyBlock If there is a valid and highlighted (selected) text block. Moves cursor left one screen column. Like CursorRight. CursorCharLeft CursorCharRight CursorDown CursorLeft CursorRight CursorSwitchedLeft CursorSwitchedRight CursorUp . then at the cursor location. Like CursorLeft.4: TEMC editor commands (continued)____________ close to being centered in the window. Moves cursor left over one character. Moves cursor down one row. inserts a copy of the characters that are selected and makes that the new selected text location. Moves cursor up one row.Table 1. This command will skip over tab characters and move to the end of the previous line.

deletes the characters that are in it. Deletes all characters in the current line. leaving a zero-length line. Ensures that the cursor value specifies a row between 1 and the number of lines in the buffer. Deletes from cursor to beginning of next word. the cursor is not placed in the middle of a tab character (see SetCursorThroughTabMode).Table 1.4: TEMC editor commands (continued)____________ DeleteBlock If there is a valid and highlighted (selected) text block.66 - . Deletes the character at the current cursor location. a column greater than 0. Adjusts the screen display to ensure the cursor is visible. Ends a series of commands begun by ExtendBlockBeg. If the cursor through tab option is not set. Moves cursor to end of file buffer. Deletes the current line. Initiates a series of commands that will select a block of text between the initial and ending positions of the cursor. DeleteChar DeleteLine DeleteToEOL DeleteWord EndCursor ExtendBlockBeg ExtendBlockEnd FixCursorPos FixScreenPos .

Inserts the literal "string" in the buffer at the current cursor location. the selected text should be highlighted. Inserts a space at the beginning of each line in the highlighted (selected) text. Sets a flag indicating that the selected text should not be highlighted. Inserts the character at the current cursor location. Use the syntax LiteralChar(c). Moves cursor to beginning of the file buffer. etc. tab characters.Table 1. without doing any special processing for newline. Moves cursor to beginning of the current line. Sets a flag indicating that the contents of the buffer are different than what is HideBlock HighlightBlock HomeCursor IndentBlock InsertText LeftOfLine LiteralChar MarkBufModified . Use the syntax InsertText(string) to call this command. Sets a flag indicating that if the beginning and end selected text markers are valid.67 - .4: TEMC editor commands (continued)____________ FullPaintScreen Redraws the entire window. making no assumptions about what is onscreen. where c is a character or integer value.

If a match is found. Moves the cursor to the location saved with SetMark(n) command. Same as MatchPairForward except if the cursor is on a ' or ". ). Moves cursor to the location marked as the end of the selected text. {. MarkBufUnModified Clears a flag. }. searches backward for the matching character.Table 1. places the cursor there. [.4: TEMC editor commands (continued)____________ in the corresponding disk file. ]. Like CopyBlock. thus indicating that the contents of the buffer can be assumed to be identical to what is in the disk file. If the cursor is on one of the characters (. Moves cursor to the location marked as the beginning of the selected text. or on the first character of one of the pairs /* or */. but also deletes the original selected text. Use the MatchPairBackward MatchPairForward MoveBlock MoveToBlockBeg MoveToBlockEnd MoveToMark . searches in the appropriate direction for the closest instance of the matching delimiter.68 - . If the cursor is on the character ' or ". searches forward for the matching character.

from the beginning of each line in the highlighted (selected) text. assuming that the screen still correctly displays what the editor last drew on it. MoveToTempPos NullCmd OutdentBlock PageDown PageScreenDown PageScreenUp PageUp PaintScreen . if any. but performs no function. Scrolls screen up by numer of lines in the window. MoveToPrevPos Moves the cursor to the location specified by the "previous position marker. 0-9. Moves cursor up by number of lines in the window." Moves the cursor to the saved temporary marker. Deletes a leading space.Table 1.4: TEMC editor commands (continued)____________ syntax MoveToMark(n). where n is a one-digit number. Calls the editor. leaving cursor position unchanged. No operation. leaving cursor position unchanged. Scrolls screen down by numer of lines in the window. Moves cursor down by number of lines in the window. Redraws the entire window. Can be used to cause a keystroke to have no effect.69 - .

Sets the end of the selected text to be the character at the current cursor location. leaving cursor position unchanged. so a later MoveToMark(n) RightOfLine RightOfWord ScrollScreenDown ScrollScreenUp SetAutoIndent SetAutoOutdent SetBlockBeg SetBlockEnd SetCursorThroughTabMode SetInsertMode SetMark . Sets a marker to point to the character at the current cursor location. Exactly what happens depends on the option settings. Sets the Cursor Through Tabs option On.Table 1. Scrolls screen down one line. leaving cursor position unchanged. Sets Insert/Overwrite option to Insert.4: TEMC editor commands (continued)____________ ReDo Performs an Redo operation. Sets the Backspace Unindents option On. Sets the beginning of the selected text to be the character at the current cursor location. Moves cursor to the next column that follows the end of a word. Sets the Auto Indent option On.70 - . Scrolls screen up one line. Moves cursor to end of current line.

where n is a one digit number. Saves the cursor location in a temporary marker that can be used by some internal editor commands. skipping any portions that the editor is sure are unmodified since the last redraw. This marker location changes only by a call to SetPrevPos or SwapPrevPos. Sets Use Tab Char option On. Tab Width.Table 1. Inserts space or tab characters in accordance with the current settings of the Use Tab Char option. SetOptimalFillMode SetPrevPos Sets Optimal Fill option On. This is not a practical application in user-defined macros. Redraws the window. SetTabbingMode SetTempPos SmartRefreshScreen SmartTab SwapPrevPos ToggleAutoIndent ." Toggles the state of the Auto Indent option. 0-9. Exchanges the values of the cursor and the "previous position marker. Use the syntax SetMark(n). Sets a marker (the previous position marker) to point to the character at the current cursor location.4: TEMC editor commands (continued)____________ comand can restore the cursor. Use SetMark instead.71 - .

4: TEMC editor commands (continued)____________ ToggleAutoOutdent Toggles the state of the Backspace Unindents option. Exactly what happens depends on the option settings. leaving column unchanged. ToggleHideBlock Toggles the state of the highlight (selected) text flag (see HighlightBlock). for example. ToggleInsert ToggleOptimalFillMode ToggleTabbingMode TopOfScreen UnDo WordLeft WordRight ------------------------------------------------------The following commands cause an exit from the editor. . Toggles state of Use Tab Char option. The macro resumes when the editor window regains the focus.72 - . ToggleCursorThroughTabMode Toggles the state of the Cursor Through Tabs option. whichever is first. Moves cursor to beginning of previous word. or to end of previous line.Table 1. whichever is first. Toggles state of Optimal Fill option. Moves cursor to the top line currently displayed in the window. Toggles state of Insert/Overwrite option. by bringing up a dialog box. or to the end of a line. Performs an Undo operation. Moves cursor to beginning of next word.

Opens a dialog box for changing the current directory. Selects window #3 (Alt-3). Selects window #5 (Alt-5). Pastes Clipboard into buffer at cursor (Shift-Ins). Opens the Help window (F1). (Alt-S F) Selects window #1 (Alt-1). Selects window #2 (Alt-2). Compiles current buffer (Alt-F9). AddWatch ChangeDirectory ChangeModeFlags Adds a watch item (Ctrl-F7). ClipCopy ClipCut ClipPaste ClipShow CloseWindow CompileFile CompileMenu CompilerOptions DebugMenu EditMenu FileMenu GetFindString GotoWindow1 GotoWindow2 GotoWindow3 GotoWindow4 GotoWindow5 GotoWindow6 GotoWindow7 GotoWindow8 GotoWindow9 Help HelpMenu HelpIndex Inspect LastHelp MakeProject Menu . Copys selected text to Clipboard (Ctrl-Ins). Selects window #4 (Alt-4). Shows Clipboard (no hot key defined). elects Edit menu (Alt-E). Used after a command such as ToggleInsert which changes the state of an editor option switch. Selects Compile menu (Alt-C). Causes the IDE to update various menu items and/or icons. Selects the Options Compiler menu Selects Debug menu (Alt-D). Opens previous help window (AltF1). Opens a dialog box for the Search operation.73 - . Selects window #8 (Alt-8). Display the Help system't index (Shift-F1) Inspects item (Alt-F4).The keys listed next to some of the commands below are the ones used by default when the Alternate mode of the IDE is selected. Cuts selected text to Clipboard (Shift-Del). Closes editor window (Alt-F3). Selects File menu (Alt-F). Selects window #6 (Alt-6). Makes project (F9). Selects Help menu (Alt-H). Selects window #7 (Alt-7). Selects window #9 (Alt-9). Highlights top menu bar.

Modify NextError NextWindow OpenFile OptionsMenu PrevError PrintBlock ProjectMenu Quit ReadBlock RepeatSearch Replace ResetProgram RunMenu RunProgram RunToHere SaveFile SaveFileAs SearchMenu Step SystemMenu ToggleBreakpoint Trace Transfer0 Transfer1 Transfer2 Transfer3 Transfer4 Transfer5 Transfer6 Transfer7 Transfer8 Transfer9 ViewCallStack Evaluates expression/modify variable (Ctrl-F4). using previous parameters. Selects nth item from transfer menu . Selects next window in IDE (F6). . Searches again. . Saves current editor buffer (F2). Opens dialog box requesting a file name to be read into the buffer at the cursor location and marked as selected text. . . Makes and runs current executable (Ctrl-F9). Opens an dialog box for the Replace operation.74 - . Exits the IDE (Alt-X). Selects Options menu (Alt-O). . . . Moves to next item in message window (Alt-F8). Opens dialog box for File Open (F3). . Selects Search menu (Alt-S). Views Call Stack (Ctrl-F3). Runs program until statement at cursor (F4). Selects Project menu (Alt-P). Opens dialog for File SaveAs. Writes selected text to the printer. . Moves to previous item in message window (Alt-F7). Step over (F8). Resets program being debugged (Ctrl-F2). Selects Sytem menu (Alt-Spacebar). Sets/Clears a breakpoint at the cursor location Trace into (F7). Selects Run menu (Alt-R).

Selects Window menu (Alt-W). Zooms/unzoomd current window (F5). Context sensitive help (Ctrl-F1).75 - . . Opens dialog box requesting a file name to which the selected text will be written.ViewUserScreen WindowList WindowMenu WindowCascade WindowTile WordHelp WriteBlock ZoomWindow Displays User Screen (Alt-F5). Displays window list (Alt-0).

76 - ..

(TLIB action symbol) 47 $ GREP operator 17 * GREP operator 17 + GREP operator 17 .(TLIB action symbols) 48 [ ] GREP operator 17 /? THELP help option 40. 50 $CAP EDIT transfer macro 55 $CAP MSG transfer macro 55 case sensitivity GREP option 14 TLIB option 45. GREP operator 17 \ GREP operator 17 ^ GREP operator 17 ? THELP option 40.h and 8 options destination file 7 /F 6 file name 6 file name (/F) 5 public name 7 segment class 7 segment name 7 source file 7 C -c GREP option (count only) 14 /C THELP option (select color) 39. 42 A add (TLIB action symbol) 47 B BGIOBJ 2-10 advanced features 6 command-line syntax 3.INDEX ___________________________________________________________________________ . 40 /C TLIB option (case sensitivity) 45. 42 -* and ** (TLIB action symbols) 47 * (TLIB action symbol) 47 + (TLIB action symbol) 47 .+ and + . 50 characters trigraph converting 53 $COL transfer macro 56 columns numbers 56 command line syntax CPP 10 compilers Turbo editor macro 56 $CONFIG transfer macro 56 configuration files 56 TCC file 10 CPP and 10 conversion trigraphs 53 CPP 10-12 command-line options and syntax 10 directory 10 example of use 11 files compiling 11 -P option (source file names and line numbers) 11 wildcards and 10 D -d GREP option (directories) 14 /D OBJXREF option (directory) 24 Index 77 . 6 components 6 example 4 graphics.

used by OBJXREF 28.OBJ files 24 transfer macro 56 DLLs creating 57 DOS commands running from the IDE 59 $DRIVE transfer macro 56 E /E TLIB option (extended dictionary) 45. 49 extract and remove (TLIB action) 47 F /F BGIOBJ option 6 /F BGIOBJ option (far routines) 5 /F OBJXREF option (include full library) 25 /F THELP option 41 /F THELP option (Help file path and name) 40 files dates changing 51 destination BGIOBJ 7 extensions 57 linker response.OBJ files 2 included with Turbo C++ 4 linker errors and 5 linking 2-10 registering 3. 33 macros expanded 10 matching GREP option 14 names macros transfer 54 printing (GREP) 15 output. generated by OBJXREF 25 path macros 56 saving all 58 searching 12-22 source BGIOBJ 7 filters 55 GREP 56 Resource Compiler 56 TASM 56 fonts adding to graphics library 3 files. 49 editor macro language (TEML) using 56 $EDNAME transfer macro 56 $ERRCOL transfer macro 57 $ERRLINE transfer macro 57 $ERRNAME transfer macro 57 errors linker graphics drivers and fonts 5 OBJXREF (list) 34 examples OBJXREF 28-33 . 8 .78 - .debugging include files 10 macros 10 $DEF transfer macro 56 Defines option transfer macro 56 $DEP transfer macro 56 dependencies explicit 56 $DIR transfer macro 56 directories CPP 10 GREP option 14 include files transfer macro 57 libraries transfer macro 57 .EXE files file name transfer macro 57 $EXENAME transfer macro 57 $EXT transfer macro 57 extended dictionary TLIB and 45. converting to .

h 8 help GREP (file searcher) 13 OBJXREF 23 THELP 40. nonmatching (-v) 15 list matching files (-l) 14 -n (line numbers) 14 -o (UNIX output format) 14 precedence 16 regular expression search (-r) 14 UNIX format (-o) 14 updating (-u) 15 -v 15 -v (nonmatching lines) 15 verbose 15 word search (-w) 15 search strings 16 white space in 18 using 13 wildcards and 18 GREP. 2-10 included with Turbo C++ 4 linker errors and 5 linking 2 registering 3. 42 hot keys scan codes 42 I -i GREP option (case sensitivity) 14 /I OBJXREF option (case sensitivity) 24 $INC transfer macro 57 include files debugging 10 directories transfer macro 57 integrated environment DOS commands and 59 memory needs 59 K /K THELP option (change hot key) 40.h (header file) BGIOBJ and 8 GRAPHICS.OBJ files 2.COM 16 GREP2MSG. 42 header files graphics. 8 graphics. 42 keyboard trigraph program 53 L -l GREP option (list matching files) 14 /L OBJXREF command (linker response file) 28 $LIB transfer macro 57 libname (TLIB option) 45 Index 79 .stroked 2-10 linking 2 G graphics drivers adding to graphics library 3 converting to . 16 discussion 13 file names (printing) 15 -i (case sensitivity) 14 line numbers (-n) 14 lines.LIB adding to 3 GREP (file searcher) 12-22 capturing messages 56 examples 18 files to search 18 help 13 literal character 17 matches 17 operators 17 optimizing use of 16 options case sensitivity (-i) 14 count only (-c) 14 default 15.EXE 56 H /H THELP option (help) 40.

30.80 - .libraries directories transfer macro 57 files 22 contents of 22 graphics adding driver and font files to 3 object files 43. 59 memory requirements IDE 59 transfer programs 57. 33 linking graphics drivers 2 listfile (TLIB option) 45 M macros CPP and 11 debugging 10 editor 56 expanded list of 10 preprocessing 11 preprocessor 10 MAKE (program manager) modifying 51 project files and 36 $MEM transfer macro 57. 31. 44 creating 47 OBJXREF including all 25 page size 49 $LINE transfer macro 57 lines numbering 57 printing (GREP) 14 linker error: segment exceeds 64K 5 response files used by OBJXREF 28.OBJ files converting font files into 2 converting graphics drivers files into 2 defined 22 directories 24 libraries advantages of using 44 creating 47 TLIB and 43 names 22 response files and 27 object modules defined 22 names 22 OBJXREF 22-34 directories 24 error messages 34 examples of reports 29. TLIB 46 N -n command-line compiler option CPP and 10 -n GREP option (line numbers) 14 /N OBJXREF option (limit reports) 26 $NAME transfer macro 57 $NOSWAP transfer macro 57 numbers column 56 line 57 O -o GREP option (UNIX format output) 14 /O OBJXREF option (output file for reports) 25 . 32 help 23 /L command (linker response files) 28 . 59 Message window capturing output into 55 copying text from 59 messages capturing from programs 55 column number 57 file name 57 line number 57 module names.

30 by module (/RM) 26. 32 /V (verbose output) 25 verbose report (/RV) 32 /Z (include zero-length segment definitions) 25 project files as response files 27 project files (/P) 27 reports 23 modifying 26 output file for (/O) 25 response files 23. 29 by public names (/RP) 26. 29 by reference (/RR) 26. 31 of unreferenced symbol names (/RU) 26. 32 output file (/O) 25 verbose example 33 verbose (/RV) 26.linker files as response files 28 options 23 /N (limit information) 26 /RV 26 /RC 31 control 24 directories (/D) 24 /F (include full library) 25 ignore case (/I) 24 include full library (/F) 25 include zero-length segment definitions (/Z) 25 list file names (/V) 25 modified reports 26 /O (output file) 25 reports 25 by class type example 33 by class type (/RC) 26. 30. 33 default type 33 of all types (/RV) 26 of module sizes (/RS) 26. 27 example 33 linker 28 warnings 34 wildcards and 23 operations (TLIB option) 45 operators GREP 17 $OUTNAME transfer macro 57 output capturing 55 output file generated by OBJXREF 25 P -P CPP option (source file names and line numbers) 11 /P OBJXREF command (project files) 27 /P TLIB option (page size) 49 page size (libraries) 49 path transfer macro 57 precedence GREP options 16 TLIB commands 46 PRJ2MAK (project file converter) 36 PRJCNVT (project file converter) 35 $PRJNAME transfer macro 58 programs capturing output 55 file name 57 memory assignments 59 project files OBJXREF and 27 used by OBJXREF 33 projects files converting from old versions 35 converting to MAKE files 36 file name transfer macro 58 $PROMPT transfer macro 58 public names defined 22 R -r GREP option (regular expression search) 14 /RC OBJXREF option (report) 31 /RC OBJXREF option (reports) 26 Index 81 . 31 by external reference (/RX) 26.

43 /W (window options) 40 window options 43 window options (/W) 40 paging through 38 paste page 39 previous screens 39 quitting 39 removing from memory 40. 8 remove (TLIB action) 47 replace (TLIB action) 48 Resource Compiler capturing messages 56 resources rebuilding automatically 56 response files file-name extensions and 27 formats 27 free-form 27 example 33 linker files and 28 OBJXREF and 23. 42 Help screen colors (/C) 39 help screen colors (/C) 40 hot keys (/K) 40. 40 /U (removing THELP) 40. OBJXREF and 33 /RM OBJXREF option (reports) 26 /RP OBJXREF option (reports) 26 /RR OBJXREF option (reports) 26 /RS OBJXREF option (reports) 26 /RU OBJXREF option (reports) 26 /RV OBJXREF option (reports) 26 /RX OBJXREF option (reports) 26 S $SAVE ALL transfer macro 58 $SAVE CUR transfer macro 58 $SAVE PROMPT transfer macro 58 scan codes 42 searches text files 12-22 source files separately compiled 44 standalone utilities 1 strings searching for as expressions (GREP) 14 in text files 12-22 swapping to User Screen 57 syntax CPP 10 TLIB 44 T TASM2MSG. 27.redirecting program output 55 registerbgidriver (function) BGIOBJ and 3. 42 reassign hot keys (/K) 40. 43 scan codes 42 using 38 . 28 example 33 project files and 27 TLIB 48 TLINK.EXE 56 $TASM transfer macro 58 text Message window 59 text files searching 12-22 THELP (Turbo Help utility) 37-43 additional Help on highlighted word 39 cursor keys 38 index 39 invoking 37 keywords 38 loading 37 options 39-43 colors (/C) 40 colors (/C) 39 Help file path (/F) 40 help file path (/F) 41 help on (/? /H ?) 40. 8 registerbgifont (function) BGIOBJ and 3.82 - . 8 registerfarbgidriver (function) BGIOBJ and 6. 43 screen colors (/C) 39. 42 removing THELP (/U) 40. 8 registerfarbgifont (function) BGIOBJ and 6.

50 /E 45.TLIB (librarian) 43-51 action symbols 46-48 capabilities 43 examples 51 extended dictionary (/e) TLINK and 49 module names 46 operations 46 precedence 46 options case sensitivity (/c) 45. 52 transfer macros $CAP EDIT 55 $CAP MSG 55 $COL 56 $CONFIG 56 $DEF 56 defined 54 $DEP 56 $DIR 56 DOS commands 59 $DRIVE 56 $EDNAME 56 $ERRCOL 57 $ERRLINE 57 $ERRNAME 57 $EXENAME 57 $EXT 57 file names 54 glossary of 55 how expanded 54 $INC 57 instruction 55 $LIB 57 $LINE 57 $MEM 57 $NAME 57 $NOSWAP 57 $OUTNAME 57 $PRJNAME 58 $PROMPT 58 $SAVE ALL 58 $SAVE CUR 58 $SAVE PROMPT 58 $TASM 58 $WRITEMSG 59 trigraphs translating 53 undo option (-u) 53 Turbo Assembler capturing messages 56 $TASM macro 58 TURBOC. 49 extended dictionary (/e) 45.CFG 10 U -u GREP option (updating) 15 /U THELP option 43 /U THELP option (remove THELP) 40 UNIX format (GREP) 14 User Screen 57 utilities standalone 1 TLIB 43-51 TOUCH 51 V -v GREP option (nonmatching lines) 15 /V OBJXREF option (verbose output) 25 W -w GREP option (word search) 15 /W THELP option (ser window size/location) 40 Index 83 . 49 libname 45 listfile 45 operations 45 page size (/P) 49 using 44 response files using 48 syntax 44 TLIB (Turbo librarian) 43-51 options 39-51 TLINK (linker) response files OBJXREF and 28 TLIB extended dictionary and 49 TOUCH 51.

/W THELP option (window options) 43 wildcards CPP and 10 OBJXREF and 23 TOUCH and 52 $WRITEMSG transfer macro 59 Z -z GREP option (verbose) 15 /Z OBJXREF option (include zerolength segment definitions) 25 .84 - .

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->