The information in this article applies to:
SUMMARYAt the end of a successful compilation, the BC.EXE compiler displays the following message:
This message gives the amount of compiler workspace available before
(Bytes Available) and after (Bytes Free) a program is compiled.
If Bytes Free is approaching 1024 or less, then the compiler is reaching internal workspace limits in generating code for this module. As your program approaches the compiler's limits, you should break your program into smaller, separately compiled modules that contain callable SUBprogram or FUNCTION procedures. The main module can CALL the procedures in the support module(s). The separate support .OBJ modules must be linked with your main module. You can also break your program into smaller .EXE programs that use the CHAIN statement to transfer control from one .EXE program to another. Note that BC.EXE can give you a "Program-memory overflow" or "Out of Memory" error at compile time when there are still plenty of "Bytes Free". This happens when the compiler has enough workspace but the code segment that it generates exceeds 64K. (To monitor how close the code segment size is growing toward 64K, you can check the size of the BC_CODE item in the linker's optional .MAP file, but only after compiling and linking with no errors.) To work around this 64K-per-module code-generation limitation, you need to break the program into separately compiled (.OBJ) modules containing called procedures, or into separately compiled main .EXE programs that can run each other with the CHAIN statement. This information applies to BC.EXE in the Standard and Professional Editions of Microsoft Visual Basic for MS-DOS version 1.0; to BC.EXE in Microsoft QuickBasic for MS-DOS versions 4.0, 4.0b, and 4.5; to BC.EXE in Microsoft Basic Compiler for MS-DOS and MS OS/2 versions 6.0, 6.0b; to BC.EXE in Microsoft Basic Development System (PDS) for MS-DOS and MS OS/2 versions 7.0 and 7.1; to QB.EXE in Microsoft QuickBasic for MS-DOS versions 2.0, 2.01 and 3.0; and to BASCOM.EXE in Microsoft Basic Compiler for MS-DOS versions 5.35 and 5.36. MORE INFORMATION
The 64K memory segmentation architecture of the 8086 chip has
influenced design limitations of the Basic compiler so that it can use
only 64K blocks for internal compiler workspace, and can generate only
64K or less for a program's code segment.
Additional query words: VBmsdos BasicCom
Keywords : |
Last Reviewed: December 10, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |