Microsoft KB Archive/43090

From BetaArchive Wiki
Knowledge Base

BC.EXE Command-Line Options for QuickBasic and Basic Compilers

Article ID: 43090

Article Last Modified on 11/21/2006


  • Microsoft QuickBasic 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBasic 4.5 for MS-DOS

This article was previously published under Q43090


This article documents the BC.EXE command-line options available in QuickBasic versions 4.0, 4.0b, and 4.5 and in Microsoft Basic Compiler versions 6.00 and 6.00b (except note that the BC /t option is not available in QuickBasic 4.0).

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

  • Pages 210 and 211 of the "Microsoft QuickBasic 4.0: Learning and Using" manual for QuickBasic 4.0 and 4.0b
  • Pages 210 and 211 of the "Microsoft Basic Compiler 6.0: Learning and Using Microsoft QuickBasic" manual, and additional options on pages 6, 7, and 8 of the "Microsoft Basic Compiler 6.0: User's Guide" for 6.0 and 6.0b
  • Pages 353 to 355 of the "Microsoft QuickBasic 4.5: Programming in Basic" manual for QuickBasic version 4.5.


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.0b and 4.5 (not in QuickBasic 4.0).

/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

/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$, CVSMBF, and CVDMBF, respectively. See
        the "Microsoft QuickBasic 4.0: Basic Language Reference"
        manual or corresponding help for more information about these

/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.0.
        Also, /t is automatically added to the BC command line in
        QuickBasic 4.0b and 4.5 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 at each line number or label for occurrence of an
        event (thus /w does less-frequent checking than /v).

/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.0.

/zi     Produces an object file containing debugging information used
        by the Microsoft CodeView debugger, available with Microsoft C
        version 5.0, Microsoft Macro Assembler version 5.0, and
        Microsoft Basic Compiler version 6.0.

The following BC.EXE options are supported in Microsoft Basic Compiler
versions 6.0 and 6.0b, but not in QuickBasic 4.0, 4.0b, or 4.5:

/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.

Additional query words: QuickBas BasicCom 4.00 4.00b 4.50 5.00 6.00 6.00b

Keywords: KB43090