VMS/Dibol
The contents of the following (sub)pages were copied from a VAX/VMS machine a looonnnggg time ago
For more functions, see also RTL Routines.
DIBOL invokes the VAX DIBOL compiler to compile one or more DIBOL source programs. This command is described in detail in the VAX DIBOL User's Guide. Format DIBOL file-spec{,...} (for separate compilations) DIBOL file-spec{+...} (for concatenated compilations) Alternate functions DIBOL/MENU invokes menu generator DIBOL/PDP11 {=value} invokes cross-compiler Parameters file-spec{,...} file-spec{+...} Specifies one or more DIBOL source program files to be compiled. If you do not specify a file type for an input file, DIBOL uses the default file type of DBL. You can specify more than one input file. If you separate the file specifications with commas (,), each file is compiled separately. If you separate the file specifications with plus signs (+), the files are concatenated and compiled as a single input file, producing single object and listing files. Wild cards are not allowed in the file specification. You cannot specify the source file to be the terminal or the input stream (SYS$INPUT). |,| DIBOL{/qualifier}filespec{/qualifier}{| |filespec{/qualifier}...} |+| Unless otherwise indicated, all qualifiers are valid for both the VAX-code generating compiler, and the PDP11-code generating compiler, invoked with /PDP11 qualifier. Qualifiers /BIND /BIND[=value] /NOBIND Binding Often an application which has been migrated from a PDP11 DIBOL environment will consist of many small programs which are chained to using the STOP statement. This was often necessary for a large application because of memory and disk limitations. On VMS image activation time is considerably more than that on the PDP-11s, but disk space and available memory is also considerably better. Binding presents a means by which many small programs may be combined into one image without having to change the actual code. Compile the first program with the /BIND=PRIMARY switch. Compile all the other programs and subroutines with the /BIND=SECONDARY switch. Link all object files together into one image. Now, any programs which are referenced in a STOP-chain statement and included in the link command, control is transferred within the same image from the first main routine to the second "bound" main routine. Acceptable values are: Value Effect PRIMARY Make this routine "bindable" and generate a transfer address. This routine will be the true main routine within the bound image. There can be only one PRIMARY routine. SECONDARY Make this routine "bindable" and do not generate a transfer address. This routine can only be activated by binding. If COMMON is used, there are several potential problems. If in the unbound application the same COMMON variable is used among several images, then when creating the bound image all but one main program should be compiled /COMMON=EXTERNAL. If each piece of the application uses the same common variable names, but with different meanings, then the /COMMON=SUFFIX="string" switch may be useful. /CHECK /CHECK[=(value,...)] /NOCHECK Checks, at runtime, for array and substring bounds or passed arguments. Acceptable values are: Value Effect BOUNDS Check, at runtime, that array and substringbounds are not exceeded. NOBOUNDS Do not check for array and substring bounds. ARGUMENTS {= argoption} argoption: EQ The number of passed arguments must be equal to the number of declared arguments (default). LE The number of passed arguments can be less than or equal to the number of declared arguments (default). GE The number of passed arguments can be greater than or equal to the number of declared arguments. NE There is no check. NOARGUMENTS The system default is /CHECK=(NOBOUNDS,ARGUMENTS=LE). If no value is specified when /CHECK is used, the default is /CHECK=(BOUNDS,ARGUMENTS=EQ). /COMMON /COMMON[=(value,...)] Changes the properties of a COMMON declaration. See also /BIND. Acceptable values are: Value Effect EXTERNAL Forces all COMMONS to be external. GLOBAL Forces all COMMONS to be global. SUFFIX[=string] Add string as suffix to common name. Default suffix string is '$'. NOSUFFIX Do not add suffix string to common name. If no value is specified when /COMMON is used, the default is /COMMON=SUFFIX='$'. /CROSS_REFERENCE /CROSS_REFERENCE (list) /NOCROSS_REFERENCE Generates a cross-reference listing as part of the listing file. The cross-reference listing identifies by line number the locations where the following program entities are defined and used: variables, statement labels, and external references. The system default is /NOCROSS_REFERENCE. /DEBUG /DEBUG[=value] /NODEBUG Directs the compiler to include debugging information in the object code. /DEBUG overrides /OPTIMIZE. Acceptable values are: Value Effect NATIVE Generate code for use with the VAX Symbolic Debugger (DEBUG). DDT Generate code for use with the Dibol Debugging Tool (DDT). PCA Generate code for use with the VAX Performance and Coverage Analyzer. If no value is specified when /DEBUG is used, the default is /DEBUG=NATIVE. The system default is /NODEBUG. /DIAGNOSTICS /DIAGNOSTICS[=filespec] /NODIAGNOSTICS Creates a diagnostic file containing compiler messages and diagnostic information. The diagnostic file is reserved for use by DIGITAL. The VAX Language-Sensitive Editor (LSE) uses the diagnostic file to display diagnostic messages and to position the cursor on the line and column where a source error exists. The default file type for a diagnostic file is .DIA. The system default is /NODIAGNOSTICS. /ENABLE /ENABLE[=value] /NOENABLE Enables different options. Value DICTIONARY = option option: D83 Include from CDD will generate D83 code. NOD83 Include from CDD will generate non-standard code (default). /LIBRARY /LIBRARY Specifies a default text library which will be used if the .INCLUDE compiler directive does not specify a library name. The default file type is TLB. The text library must be specified as a source file and appended to one of the program source files with a plus (+) sign. Alternatively, the logical name DIBOL$LIBRARY may be used to specify the name of the default text library. If no /LIBRARY qualifier is specified on a source file, and an .INCLUDE from the default library is encountered, the library specified by DIBOL$LIBRARY will be searched. /LIST /LIST[=filespec] /NOLIST Creates a listing file with default file type LIS. If no file is specified, the first file specification in the command line is used. The system default is /NOLIST. /MENU /MENU filespec[/qualifier] /NOMENU Invokes the DIBOL menu generator (DBLMNUGEN) to "compile" a menu source file into a run-time file. The system default is /NOMENU. /OBJECT /OBJECT[=filespec] /NOOBJECT Creates an object file with default file type OBJ. If no file is specified, the first file specification in the command line is used. The system default is /NOOBJECT. /OPTIMIZE /OPTIMIZE (object) /NOOPTIMIZE (object) Suppresses the output of line numbers as part of the object code. The resulting program code is smaller and usually executes more quickly. Line numbers are required for some DEBUG operations, effective use of the ERROR subroutine, and the interpretation of error messages and STOP messages. The system default is /NOOPTIMIZE. /PAGE_SIZE /PAGE_SIZE=value (list) Specifies the number of lines per page in the listing file. The specified value includes 3 lines for the top margin, 3 lines for a header, and 3 lines for the bottom margin (9 in all). If this qualifier is omitted, the system default lines per page is used. The system default is the value defined by SYS$LP_LINES or 66 if SYS$LP_LINES is not defined. /PDP11 /PDP11[=value] /NOPDP Invokes the VAX native mode cross-compiler that generates object code which can be task-built on a PDP-11 system. The value associated with the qualifier specifies the system on which the object code is to be task-built and executed. Acceptable values are: CTS300, RT RSTS RSTS51 RSX11M+ PRO. CTS300 and RT are equivalent. If no value is specified when /PDP11 is used, the default is /PDP=RSX. The system default is /NOPDP. /REFRESH /REFRESH /NOREFRESH Reinitializes the Data Division when a routine or subroutine compiled with this switch is activated. The system default is /NOREFRESH. /SHOW /SHOW[=(value,...)] /NOSHOW Generates a listing file that contains a symbol table, a label table, and a listing of the source program that contains all source files, all conditional program segments (compiled and non-compiled), and all program segments specified with the .INCLUDE compiler directive. The system default is /NOSHOW. The content of the listing file can be modified by user-specified values appended to the SHOW qualifier. One or more values can be specified with the SHOW qualifier. Acceptable values are: Value Effect [NO]CONDITIONALS Conditional program segments that were not compiled appear (CONDITIONAL) in the listing or do not appear (NOCONDITIONAL) in the listing. [NO]INCLUDE Contents of an included file appear (INCLUDE) in the listing or do not appear (NOINCLUDE) in the listing. [NO]SOURCE Contents of the program source files appear (SOURCE) in the listing or do not appear (NOSOURCE) in the listing. SOURCE takes precedence over NOLIST. [NO]TABLES A symbol table and a label table appear (TABLES) in the listing or do not appear (NOTABLES) in the listing. ALL Equivalent to SHOW with no user-specified values. NONE Equivalent to NOSHOW (user-specified values not allowed with NOSHOW). /STANDARD /STANDARD[=value] /NOSTANDARD Directs the compiler to insure that the program conforms to the specified syntax. Acceptable values are: Value Effect D83 Syntax defined in the DIBOL-83 Language Reference Manual. If no value is specified when /STANDARD is used, the default is /STANDARD=D83. The system default is /NOSTANDARD. Controls whether or not VAX-specific language extensions are allowed in the source program. Feature /STANDARD /NOSTANDARD -------------------------------------------------------------------- Maximum channel number 15 255 Maximum record/field size 16383 65535 XCALL extensions none %VAL, %REF, %DESCR, %XTRNL Subroutine names 6 characters 31 characters Variable and label names (P) 6 characters 30 characters COMMON variable names 5 characters 30 characters .INCLUDE directive (P) files files, CDD text libraries Maximum Nested .INCLUDE (P) 3 levels 10 levels (Note that DDT on PDP11's does not support long variable names. If you intend to debug the program on a PDP11, you should insure that the first 6 characters of the variable name are unique.) /VARIANT /VARIANT[=value] /NOVARIANT Defines the value of the compiler variant variable. If no value is specified when /VARIANT is used, the default value is 1. The system default is /NOVARIANT. /NOVARIANT defines the value of the compiler variant variable as 0 (zero). This qualifier is the system default. /WARNINGS /WARNINGS /NOWARNINGS Directs the compiler to report warnings and errors in the listing file or at the terminal (or both). The system default is /NOWARNINGS. Linking Two subroutine libraries have been provided for maintaining source compatibility with PDP-11 DIBOL. Subroutines in the Universal External Subroutine Library (DBLUESL) are available in all PDP-11 DIBOL implementations. Subroutines in the Operating System Specific Library (DBLOSSL) are available in one or more PDP-11 DIBOL implementations. The VAX DIBOL Run-Time Library shareable image is pointed to by the system shareable image library (SYS$LIBRARY:IMAGELIB.OLB) which is searched by default by the linker. A program which does not use either the DBLUESL or DBLOSSL libraries may be linked by entering the following command: $ LINK progname For compatibility with VAX DIBOL Version 1, a linker options file is provided which links in the DBLUESL library and the DIBOL RTL. To link using this options file, enter: $ LINK progname, SYS$LIBRARY:DBLRTL/OPTIONS Or to link the DBLUESL library without using the options file, enter: $ LINK progname, SYS$LIBRARY:DBLUESL/LIBRARY And similarly for the DBLOSSL library: $ LINK progname, SYS$LIBRARY:DBLOSSL/LIBRARY Alternatively, if the DBLUESL and DBLOSSL libraries are defined as linker logicals (LNK$LIBRARY, LNK$LIBRARY_1, ...), the linker will search these libraries by default.