KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q43090: BC.EXE Command-Line Options for QuickBASIC and BASIC Compiler

Article: Q43090
Product(s): See article
Version(s): 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | SR# S890329-57 B_BasicCom | mspl13_basic
Last Modified: 20-DEC-1989

This article documents the BC.EXE command-line options available in
QuickBASIC Versions 4.00, 4.00b, and 4.50 and in Microsoft BASIC
Compiler Versions 6.00 and 6.00b (with the exception of the /t option
which is not available in QuickBASIC 4.00).

These BC.EXE command-line options can also be found in the following
manuals:

1. Pages 210 and 211 of the "Microsoft QuickBASIC 4.0: Learning and
   Using" manual for QuickBASIC 4.00 and 4.00b

2. Pages 210 and 211 of the "Microsoft BASIC Compiler 6.0: Learning
   and Using Microsoft QuickBASIC" manual, and additional options on
   Pages 6, 7, 8 of the "Microsoft BASIC Compiler 6.0: User's Guide"
   for 6.00 and 6.00b

3. Pages 353 to 355 of the "Microsoft QuickBASIC 4.5: Programming in
   BASIC" manual for QuickBASIC Version 4.50.

Option  Definition
------  ----------

/a      Creates a listing of the disassembled object code for each
        source line and shows the assembly-language code generated by
        the compiler.

/ah     Allows dynamic arrays of records, fixed-length strings, and
        numeric data to occupy all of available memory. If this option
        is not specified, the maximum size is 64K per array. Note that
        this option has no effect on the way data items are passed to
        procedures. (See also the REM $DYNAMIC metacommand.)

/c:<n>  Sets the size (<n> = bytes) of the buffer receiving remote
        data using an asynchronous communications adapter for each
        communications port. (The transmission buffer is allocated 128
        bytes for each communications port and cannot be changed on
        the BC command line.)  This option has no effect if the
        asynchronous communications card is not present. The default
        buffer size is 256 bytes total for BOTH ports; the maximum
        size is 32,767 bytes. The default, /c:512, is automatically
        added when invoking the Make EXE File command from the Run
        menu in QuickBASIC 4.00b and 4.50 (not in QuickBASIC 4.00).

/d      Generates debugging code for run-time error checking and
        enables CTRL+BREAK. This option is the same as the Produce
        Debug Code option from the Run menu's Make EXE File command
        within the environment.

/e      Indicates the presence of ON ERROR with RESUME linenumber
        statements. (See also the discussion of the /x option in this
        list.)

/mbf    Causes the QuickBASIC conversion functions to treat
        IEEE-format numbers as Microsoft Binary format numbers. The
        intrinsic functions MKS$, MKD$, CVS, and CVD are converted to
        MKSMBF$, MKDMBF$, and CVSMBF, and CVDMBF, respectively. See
        the "Microsoft QuickBASIC 4.0: BASIC Language Reference"
        manual or corresponding help for more information about these
        functions.

/o      Substitutes the appropriate BCOMxx.LIB stand-alone program
        library for the BRUNxx.LIB run-time module library.

/r      Stores arrays in row-major order. BASIC normally stores arrays
        in column-major order. This option is useful if you are using
        other language routines that store arrays in row order.

/s      Writes quoted strings to the object file instead of the symbol
        table. Use this option when an "Out of memory" error message
        occurs in a program that has many string constants.

/t      This option stands for terse. It suppresses warning messages
        during compilation. However, severe error messages still are
        displayed. This option is not available in QuickBASIC 4.00.
        Also, /t is automatically added to the BC command line in
        QuickBASIC 4.00b and 4.50 whenever you choose Make EXE
        File from within QB.EXE.

/v      Enables event trapping for communications (COM), light pen
        (PEN), joystick (STRIG), timer (TIMER), music buffer (PLAY),
        and function keys (KEY). Use this option to check between
        statements for an occurrence of an event.

/w      Enables event trapping for the same statements as /v, but
        checks between lines for occurrence of an event.

/x      Indicates presence of ON ERROR with RESUME, RESUME NEXT, or
        RESUME 0.

/zd     Produces an object file containing line-number records
        corresponding to the line numbers of the source file. This
        option is useful when you want to perform source-level
        debugging using the Microsoft Symbolic Debug Utility (SYMDEB)
        available with Microsoft Macro Assembler Version 4.00.

/zi     Produces an object file containing debugging information used
        by the Microsoft CodeView debugger, available with Microsoft C
        Version 5.00, Microsoft Macro Assembler Version 5.00, and
        Microsoft BASIC Compiler Version 6.00.

The following BC.EXE options are supported in Microsoft BASIC Compiler
Versions 6.00 and 6.00b, but not in QuickBASIC 4.00, 4.00b, or 4.50:

/LP     Creates a protected-mode object file for use in MS OS/2
        protected mode, no matter which operating system you are in at
        compile time.

/LR     Creates a real-mode object file for use in MS-DOS or MS OS/2
        real mode (DOS 3.x box), no matter which operating system you
        are in at compile time.

/FPi    Generates in-line (i) coprocessor instructions for floating
        point (FP) math. If a coprocessor is not present at run time,
        the BASIC run-time system will emulate a coprocessor.

/FPa    Generates code using alternate (a) math library, which runs
        faster than emulating a coprocessor when none is present.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.