Technical Notes Database TN1299D.txt TP6 IDE Memory Documentation Category :Pascal Platform :All Product :Turbo Pascal 6.0 Description: Subject: TP6 IDE memory doc Both the IDE and Turbo Pascal's itself are very configurable and there are several steps you can take to make more workspace available for compiling and debugging your programs. Some solutions are easy to implement, while others involve altering your code or turning off debug information selectively. Always start with the options that are painless and safe and then, if necessary, take progressively more radical steps in order to increase the IDE's capacity. Once you find a system configuration that provides you with enough capacity, you might want to permanently modify the your AUTOEXEC.BAT, CONFIG.SYS, and TURBO.TP, and TURBO.EXE files. SCAN ITEM: Changes you make in the Options|Environment|Startup dialog box are saved directly into TURBO.EXE and are permanent. Changes you make in other dialog settings inside the IDE can be saved in a TURBO.TP configuration file. For more information, refer to the IDE Reference Chapter xxxx. Outside the IDE --------------- x. Remove TSRs from memory. If you have Sidekick or Superkey loaded in memory or EMS, exit the IDE, remove them, and then reload TURBO.EXE. x. Modify CONFIG.SYS to remove unnecessary drivers (ANSI.SYS, disk caches, etc.). You can also reduce the number of files and buffers to: FILES = 20, BUFFERS = 20. Make sure these changes are safe for other software you are using. Re-configuring Turbo Pascal --------------------------- x. Set Compile|Destination to Disk. x. On the Options|Linker dialog box, set Link Buffer to Disk. x. Using the Options|Environment|Startup menu, try one or more of the following: SCAN ITEM: There are command-line parameters that you can pass to TURBO.EXE at startup that correspond to all of the settings on the Options|Environment|Startup menu. Refer to P-xxx. x. If you have expanded memory on your system (EMS), make sure the Use e(x)panded memory option is enabled and make plenty of EMS available to Turbo Pascal (by reducing the amount of EMS being used by resident programs or drivers like RAM disks, Sidekick, etc.). The IDE can use at least 400K of EMS for overlays, extra buffers, and other system resources. All these will increase the workspace for your programs. (Making more than 400K EMS available will increase the IDE's performance, although it will not make more memory available to compile and debug your programs.) SCAN ITEM: If you have EMS available, disabling this option will have no effect on IDE capacity. x. If you're not trying to debug a graphics program, make sure the (G)raphics screen save option is disabled. Like all startup options, you can enable this option on the command-line when you do need to debug a graphics program. x. Reduce the default (O)verlay and (W)indow heap sizes. Every Kbyte you subtract here yields another KByte for your program. If you have EMS available, reducing these heap sizes somewhat won't have much negative impact on the IDE's performance. x. Disable the Load (T)URBO.TPL option. TURBO.TPL contains the commonly used standard units and is loaded into memory at startup to optimize linker performance. By disabling this option, you'll still be able to compile and debug programs, but you'll have to extract all the units from TURBO.TPL first (using the TPUMOVER utility. Refer to TPUMOVER.DOC on your distribution disk). SCAN NOTE: If you don't have the IDE load TURBO.TPL, you won't be able to evaluate expressions using the Evaluate/Modify box unless a debugging session is active. As an alternative, you can leave the Load (T)URBO.TPL option enabled and still reduce the size of TURBO.TPL by about 15K. Just extract all units from TURBO.TPL with the exception of SYSTEM.TPU. Then delete all units from TURBO.TPL with the exception of SYSTEM.TPU. SCAN ITEM: Make sure to leave the extracted units on disk and in your unit path (Options|Directories|Unit directory) so your programs can still make use of the Dos, Crt, Overlay and the Printer units. x. On a unit-by-unit basis, turn off debug information in those units that are already debugged. A common technique is to build a "test harness" around your code as you develop it. Once that code is implemented, tested and debugged, turn off symbol information in that unit by disabling the (D)ebug information switch on the Options|Compiler box and recompiling. You can also embed a {$D-} in the unit itself. If you do so, it's a good idea to use conditional directives and defines to control enabling and disabling debug information in various units (refer to chap xxxx). If you proceed as described here and end up with debug information disabled everywhere in your program--and are still having capacity problems--consider modifying your code as described below. SCAN ITEM: Of course, if you're not debugging, you can greatly increase IDE capacity by disabling the Integrated debugging switch in the Options|Debugger box. Modifying your source code ------------------------- Some of the following measures are easy to do and yield big capacity gains. Others are more radical and you might want to use conditional directives (see P-xxxx) to turn them on or off. x. Overlay units in your program. This is very safe, flexible, and can dramatically increase the IDE workspace. Refer to chapter xxx in the Programmer's Guide for more information. x. Using the Options|Memory sizes menu, reduce the (S)tack size and (L)ow heap limit. Make sure there's enough stack for your program, especially if you've turned off stack checking as recommended below. x. Using the Options|Compiler box, try one or more of the following: x. Disable (R)ange checking and (S)tack checking. (S)tack checking is on by default. Turn it off once your program is stable and you've determined its stack requirements. x. Disable (E)mulation during debugging. Of course, only enable emulation and (8)087/80287 code generation if you are doing IEEE floating point. If you have a numeric coprocessor on your debugging machine, disable emulation while you're debugging non-floating point code. x. Reduce the number of symbols in the interface sections of units. Don't declare something in the interface section of a unit unless it's used by code outside the unit. Doing this is good, safe programming practice and will make more symbol space available during the compilation of large programs. Turbo Debugger and the IDE -------------------------- Turbo Pascal itself and the IDE both offer many ways for you to gain capacity by making adjustments to default settings. If you run out memory compiling or debugging your programs and have tried most of the painless ideas offered above, consider using the IDE to edit and compile your programs, and then using Turbo Debugger to debug them. If you have Turbo Debugger and want to use it to debug programs developed in the IDE, configure the IDE as follows: o Set Compile|Destination to disk. o In the Options|Debugger box, disable Integrated and enable Standalone debugging. You can also use the command-line compiler, TPC.EXE, or the extended memory command-line compiler, TPCX.EXE to build massive programs (several megabytes in size). Then you can use TD, TD286 or TD386 to debug them. 11/27/90clb Reference: 7/16/98 4:35:44 PM
Last Modified: 01-SEP-99