VMS Help  —  BASIC
   Invokes the VSI BASIC for OpenVMS I64 compiler.

   Format:

      BASIC [/command-qualifier]... {source-file [/file-qualifier]... }...

   When you supply one or more file specifications, the compiler  compiles  the
   source file(s).

   If you  separate  source  file  specifications  with  commas,  the  compiler
   compiles  each module separately and produces multiple object files.  If you
   separate source file  specifications  with  plus  signs  (+),  the  compiler
   appends the files and produces a single object file.

1  –  Release notes

   The release notes for the current version of VSI BASIC for OpenVMS I64 are
   in the file BASIC018.RELEASE_NOTES which resides in SYS$HELP.

   You can also access the release notes from the BASIC help file at the  DCL
   command level with the following command:

      $ HELP/LIBRARY=BASICHELP RELEASE_NOTES

2    /ANALYSIS_DATA

   The /ANALYSIS_DATA qualifier controls the creation of  a  file  containing
   data  analysis  information for use by the DECset Source Code Analyzer for
   OpenVMS systems (SCA).

   The format of the /ANALYSIS_DATA qualifier is as follows:

      /[NO]ANALYSIS_DATA[=file-spec]

   The file created by the /ANALYSIS_DATA qualifier has a default  file  type
   of  .ANA.   SCA  uses the .ANA file to display cross-reference information
   and analyze source code.

   The default is /NOANALYSIS_DATA.

3    /ARCHITECTURE

   The /ARCHITECTURE qualifier specifies which version of the architecture to
   generate instructions for.

   The format of the /ARCHITECTURE qualifier is as follows:

      /ARCHITECTURE={GENERIC }
                    {HOST    }
                    {MERCED  }
                    {ITANIUM2}

   where:

      GENERIC        generate  instructions  that  are  appropriate  for  all
                     processors.  This option is the default.

      HOST           generate  instructions  for  the  processor   that   the
                     compiler is running on.

   The default is /ARCHITECTURE=GENERIC.

4    /AUDIT

   The /AUDIT qualifier causes the compiler to include  a  history  entry  in
   CDD/Repository when extracting a CDD/Repository definition.

   The format of the /AUDIT qualifier is as follows:

      /[NO]AUDIT[={str-lit  }]
                  {file-spec}

   where:

      str-lit        is a quoted string.

      file-spec      is a file specification.

   If you specify a quoted string, the compiler includes it as  part  of  the
   history entry.  If you specify a file specification, the compiler includes
   up to the first 64 lines of the specified file.

   When  you  specify  /AUDIT,  the  compiler  also  includes  the  following
   information about a CDD/Repository record extraction in the history entry:

    o  The name of the program module making the extraction
    o  The time and date of the extraction
    o  A note that access was made by way of a  VSI  BASIC  for  OpenVMS  I64
       program
    o  A note that the access was an extraction
    o  The username and UIC of the process accessing CDD/Repository

   The default is /NOAUDIT.

5    /CHECK

   The /CHECK qualifier causes the compiler to  generate  code  to  test  for
   arithmetic overflow and for array references outside array boundaries when
   the program executes.

   The format of the /CHECK qualifier is as follows:

      /[NO]CHECK[=({[NO]BOUNDS                              },...)]
                   {[NO]OVERFLOW[=([NO]INTEGER,[NO]DECIMAL)]}
                   {ALL                                     }
                   {NONE                                    }

   where:

      BOUNDS         checks array subscripts to ensure that they  are  within
                     array boundaries specified by the program.

      OVERFLOW       enables the detection of arithmetic overflow for integer
                     and packed decimal operations.

   The /CHECK qualifier specifies that both OVERFLOW and BOUNDS checking  are
   performed.    The   /NOCHECK  qualifier  specifies  that  no  checking  is
   performed.  If you specify /CHECK=OVERFLOW, overflow checking  is  enabled
   for  both  integers  and  packed  decimal  numbers.  Similarly, specifying
   /CHECK=NOOVERFLOW disables overflow checking for both types of numbers.

   Specifying /CHECK=NOBOUNDS means that your program  is  smaller  and  runs
   faster.   However, no error is signaled for an array reference outside the
   bounds of an array.   This  means  that  the  program  may  get  a  memory
   management  or access violation error at run time.  Therefore, this option
   should be used only for programs that have been  thoroughly  debugged  and
   whose execution time is critical.

   The default is /CHECK = (BOUNDS, OVERFLOW).

6    /CROSS_REFERENCE

   The  /CROSS_REFERENCE  qualifier  causes  the  compiler  to   generate   a
   cross-reference listing.

   The format of the /CROSS_REFERENCE qualifier is as follows:

      /[NO]CROSS_REFERENCE[=[NO]KEYWORDS]

   The cross-reference listing shows program symbols, their  class,  and  the
   program lines in which they are referenced.  The /CROSS_REFERENCE=KEYWORDS
   qualifier  specifies  that  the  cross-reference  listing   includes   all
   references  to  VSI  BASIC  keywords.   /CROSS_REFERENCE  is  the  same as
   /CROSS_REFERENCE = NOKEYWORDS.

   The  /NOCROSS_REFERENCE   qualifier   suppresses   the   creation   of   a
   cross-reference  listing.   See  the  HP  BASIC  for OpenVMS Alpha and VAX
   Systems User Manual for more information on cross reference listings.

   The default is /NOCROSS_REFERENCE.

7    /DEBUG

   The /DEBUG qualifier causes the compiler to provide  information  for  the
   OpenVMS  Debugger  and  the  system  run-time  error  traceback mechanism.
   Neither TRACEBACK nor SYMBOLS affects a program's executable code.

   The format of the /DEBUG qualifier is as follows:

      /[NO]DEBUG[=({[NO]SYMBOLS  },...)]
                   {[NO]TRACEBACK}
                   {ALL          }
                   {NONE         }

   where:

      SYMBOLS        causes the compiler to provide the debugger  with  local
                     symbol definitions for user-defined variables (including
                     dimension information for arrays).

      TRACEBACK      causes the compiler to provide  an  address  correlation
                     table  so  the debugger and the run-time error traceback
                     mechanism can translate absolute addresses  into  source
                     program routine names and line numbers.

   The /NODEBUG qualifier causes the compiler to suppress information for the
   OpenVMS Debugger and the system run-time error traceback mechanism.

   For more information on debugging, see the HP BASIC for OpenVMS Alpha  and
   VAX Systems User Manual.

   The default is /DEBUG = (TRACEBACK, NOSYMBOLS).

8    /DECIMAL_SIZE

   The /DECIMAL_SIZE qualifier lets you specify the default size  for  packed
   decimal  data.   You  specify the total number of digits in the number and
   the number of digits to the right of the decimal point.

   The format of the /DECIMAL_SIZE qualifier is as follows:

      /DECIMAL_SIZE=(d,s)

   where:

      d              is the total number of digits in the number.

      s              is the number of digits to  the  right  of  the  decimal
                     point.

   The default decimal size applies to all decimal variables  for  which  the
   total  number  of  digits and digits to the right of the decimal point are
   not explicitly declared.  See the HP  BASIC  for  OpenVMS  Alpha  and  VAX
   Systems  Reference  Manual  for  more  information  about  packed  decimal
   numbers.

   The default is /DECIMAL_SIZE = (15, 2).

9    /DEPENDENCY_DATA

   If you have CDD/Repository V5.4 installed  on  your  system  and  if  your
   current   CDD$DEFAULT   is  a  CDO-format  dictionary,  you  can  use  the
   /DEPENDENCY_DATA qualifier to generate a compiled  module  entity  in  the
   CDD$DEFAULT for each compilation unit.

   The format of the /DEPENDENCY_DATA qualifier is as follows:

      /[NO]DEPENDENCY_DATA

   You must specify this qualifier  if  you  want  %INCLUDE  %FROM  %CDD  and
   %REPORT %DEPENDENCY directives to establish dependency relationships.

   If /NODEPENDENCY_DATA is specified,  the  compiler  does  not  generate  a
   compiled module entity.

   The default is /NODEPENDENCY_DATA.

10    /DIAGNOSTICS

   The /DIAGNOSTICS qualifier controls the creation  of  a  diagnostics  file
   containing  messages  and  diagnostic  information  for  use by the Compaq
   Language-Sensitive Editor (LSE).

   The format of the /DIAGNOSTICS qualifier is as follows:

      /[NO]DIAGNOSTICS[=file-spec]

   LSE uses the diagnostics file to display diagnostic error messages and  to
   position the cursor on the line and column where a source error exists.

   If you do not supply a file specification with the /DIAGNOSTICS qualifier,
   the  diagnostics  file  has the same name as its corresponding source file
   and a default file type of .DIA.  All other file specification  attributes
   depend on the placement of the qualifier in the command.

   The default is /NODIAGNOSTICS.

11    /DOUBLE

   The /DOUBLE qualifier specifies that floating-point variables  are  double
   precision.   This qualifier is present for compatibility with HP BASIC for
   OpenVMS VAX.  You should use  the  /REAL_SIZE  qualifier  to  specify  the
   precision of floating-point variables.

12    /FLAG

   The /FLAG qualifier lets you specify  whether  the  compiler  informs  you
   about declining features.

   The format of the /FLAG qualifier is as follows:

      /[NO]FLAG[=[NO]DECLINING]

   The /NOFLAG qualifier suppresses  any  warning  messages  about  declining
   features.

   /FLAG is the same as /FLAG = NODECLINING.

   The default is /NOFLAG.

13    /INTEGER_SIZE

   The /INTEGER_SIZE qualifier lets you specify the default size for  integer
   data.

   The format of the /INTEGER_SIZE qualifier is as follows:

      /INTEGER_SIZE={BYTE}
                    {WORD}
                    {LONG}
                    {QUAD}

   The default integer size applies to all integer variables whose data  type
   is  not  explicitly  declared.  See the HP BASIC for OpenVMS Alpha and VAX
   Systems User Manual for more information about integer data types.

   The default is /INTEGER_SIZE = LONG.

14    /LINES

   The /LINES qualifier makes line number information available for  the  ERL
   function, and the BASIC error reporter.

   The format of the /LINES qualifier is as follows:

      /[NO]LINES

   Note that if ERL (or RESUME) is  found  in  a  program  that  is  compiled
   /NOLINES,  HP  BASIC  for  OpenVMS Alpha will not produce the message, but
   will silently turn on /LINES.

   If you specify /NOLINES, your program runs faster.

   The default is /NOLINES.

15    /LISTING

   The /LISTING qualifier causes the compiler  to  create  a  source  listing
   file.

   The format of the /LISTING qualifier is as follows:

      /[NO]LISTING[=file-spec]

   To create a listing file with an explicit file specification, you must use
   the  /LISTING  qualifier in the form /LISTING = file-spec.  Otherwise, the
   listing file has the same name as its corresponding source file and a file
   type  of  .LIS.   All  other  file  specification attributes depend on the
   placement of the qualifier in the command.

   Note that the /LISTING qualifier only controls whether or not the compiler
   produces  a listing file.  The /SHOW qualifier controls which parts of the
   listing are produced.

   The default is /NOLISTING from a terminal, and /LISTING in batch mode.

16    /LONG

   The /LONG qualifier specifies  that  integer  variables  are  LONG.   This
   qualifier is present for compatibility with HP BASIC for OpenVMS VAX.  You
   should use the /INTEGER_SIZE qualifier to specify the precision of integer
   variables.

17    /MACHINE_CODE

   The /MACHINE_CODE qualifier controls whether the listing file  contains  a
   list of compiler generated machine code.

   The format of the /MACHINE_CODE qualifier is as follows:

      /[NO]MACHINE_CODE

   The /MACHINE_CODE qualifier has no effect  unless  you  also  specify  the
   /LISTING  qualifier.   If you specify the /MACHINE_CODE qualifier with the
   /OPTIMIZE qualifier, the machine code listing may not reflect  the  actual
   code executed for a given statement nor the order of execution.

   The /NOMACHINE_CODE qualifier suppresses compiler generated  machine  code
   in the listing file.

   The default is /NOMACHINE_CODE.

18    /OBJECT

   The /OBJECT qualifier causes the compiler to produce an object module, and
   optionally specifies its file name.

   The format of the /OBJECT qualifier is as follows:

      /[NO]OBJECT[=file-spec]

   By default, the compiler generates object files as follows:

    o  If you specify one source file,  the  compiler  generates  one  object
       file.
    o  If you specify multiple source files  separated  by  plus  signs,  the
       compiler appends the files and generates one object file.
    o  If you specify multiple source files separated by commas, the compiler
       compiles and generates a separate object file for each source file.
    o  You can use both plus signs and commas in the  same  command  line  to
       produce different combinations of appended and separated object files.

   To produce an object file with an explicit file  specification,  you  must
   use  the /OBJECT qualifier, in the form /OBJECT=file-spec.  Otherwise, the
   object file has the same name as its corresponding source file, and a file
   type  of  .OBJ.   All  other  file  specification attributes depend on the
   placement of the qualifier in the command.

   The /NOOBJECT qualifier suppresses the creation of an object file.  During
   the  early  stages  of  program  development,  you  may find it helpful to
   suppress the production of object files until your source program compiles
   without errors.

   The default is /OBJECT.

19    /OLD_VERSION

   The /OLD_VERSION  qualifier  is  provided  for  compatibility  with  early
   versions of HP BASIC for OpenVMS VAX.

   The format of the /OLD_VERSION qualifier is as follows:

      /[NO]OLD_VERSION[=CDD_ARRAYS]

   When you use the /OLD_VERSION qualifier, the compiler  changes  the  lower
   bound  to  zero  and  adjusts  the upper bound of the array.  For example,
   Array 2:5 in CDD/Repository is translated by the compiler to be  an  array
   with  a  lower bound of 0 and an upper bound of 3.  The compiler issues an
   informational message to confirm the array bounds.

   The /NOOLD_VERSION qualifier causes the compiler to extract an array  from
   CDD/Repository  with  the bounds as specified in the data definition.  For
   example, Array 2:5 in CDD/Repository is translated by the compiler  to  be
   an array with a lower bound of 2 and an upper bound of 5.

   CDD/Repository assumes a default lower bound of 1, if none  is  specified.
   Therefore,  if  no  lower  bound is specified, the compiler translates the
   CDD/Repository array to have a lower bound of 1.  For example, Array 5  in
   CDD/Repository  is  translated by the compiler to be an array with a lower
   bound of 1 and an upper bound of 5.

   The default is /NOOLD_VERSION.

20    /OPTIMIZE

   The /OPTIMIZE  qualifier  controls  whether  the  compiler  optimizes  the
   program to generate more efficient code for optimum run-time performance.

   The format of the /OPTIMIZE qualifier is as follows:

      /[NO]OPTIMIZE[=({LEVEL=n       },...)]
                      {TUNE={GENERIC}}
                            {HOST   }

   where:

      LEVEL=n        controls   the   amount   of   optimization   performed.
                     /OPTIMIZE=LEVEL=4 is the equivalent of /OPTIMIZE.