PDP-11 COBOL V4.0 is an ANS-74 COBOL compiler that is an optional (unbundled) layered product. It is invoked by typing "CBL". The command line has the form of CBL>object-file,listing-file=source-file/switches where object-file is the file specification for the file that is to contain the object module generated by the compiler listing-file is the file specification for the file that is to contain the source program listing source-file is the file specification for the file that contains the COBOL source program to be compiled /switches is one or more of /ACC, /-BOU, /CM6, /CREF, /CSEG, /CVF, /ERR, /HELP, /KER, /MAP, /NL, /OBJ, /-ODL, /OV, /PFM, /-PLT, /RO, /SYM Type "HELP COBOL switch" for information on each switch Complete operating information can be found in the PDP-11 COBOL User's Guide and the complete language specification can be found in the PDP-11 COBOL Language Reference Manual. /ACC /ACC:n Causes the compiler to produce an object file only if the source program generates diagnostics with severity numbers equal to or less than n. Acceptable values for n are 0, 1, and 2: 0 = Informational diagnostics 1 = Warning diagnostics 2 = Fatal diagnostics The default is /ACC:1 /BOU /|-BOU /-BOU Suppresses the generation of code to check that subscripts and indexes are in their legal ranges when they are used. If this switch is not specified, a program's use of an out-of-range subscript or index results in its termination by the OTS. Suppression of bounds checking can incrrease execution speed for a program that executes a large number of subscripted or indexed data references. The default if /BOU. NOTE If /-BOU is specified and a program used out-of- range subscripts or indexes, the results are unpredictable. /CM6 /CM6 Causes the compiler to interpret COMPUTATIONAL usage as it did in releases prior to Version 4.0. The effect is the same as changing all COMPUTATIONAL references to COMPUTATIONAL-6. NOTE Since COMPUTATIONAL-6 is a temporary data format, intended only for program conversion from PDP-11 COBOL releases prior to Version 4.0, its use for conversion purposes should also be considered temporary. /CREF /CREF Produces a cross-reference listing as part of the listing file. Data-names and procedure-names are listed in ascending order with the source program line numbers on which they appear. On the listing, the symbol # indicates the source line on which the name is defined. NOTE The /CREF switch significantly increases the compilation time for large source programs. /CSEG /CSEG:nnnn Specifies the maximum size for procedural PSECTs to be generated by the compiler; nnn is a decimal number greater than 107 that specifies the maximum PSECT size in bytes. /CVF /CVF Specifies that the source program is in conventional format; the compiler than expects 80-character images with optional sequence numbers in character positions 1-6, indicators in position 7, Area A beginning in position 8, Area B beginning in position 12, and the identification area in positions 73-80. /ERR /ERR:n Suppresses the printing of compiler diagnostic messages with severity numbers less than n. Acceptable values for n are 0, 1, and 2: 0 = Informational diagnostics 1 = Warning diagnostics 2 = Fatal diagnostics You cannot suppress fatal diagnostics. The default if /ERR:0. /HELP /HELP Displays information about the compiler command line (including switches) on the default output device. /KER /KER:kk Specifies a two-character kernel for PSECT names in this compilation. Use this switch when two or more object files will be merged into a single task. The Task Builder requires all PSECT names to be unique; specifying different kernels for each object file in the task overrides the compiler's default names and ensures uniqueness. The kernel (kk) is a two-character string that can contain any combination of the letters A-Z and the numbers 0-9. /MAP /MAP Causes the compiler to produce the following maps in the listing file: o Data Division o Procedure Map o External Subprograms Referenced o Data and Control PSECTs o OTS Routines Referenced o Segmentation Map Appendix G contains a description and example of each map. Coloring in the above bullets is left as an exercise for the reader. /NL /NL Suppresses the listing of text copied from library files; only the COPY statement itself appears in the listing file. /OBJ /OBJ Causes the compiler to list the object location for each verb in the Procedure Division. The location appears on the line before the source line in which the verb is used. /ODL /|-ODL /-ODL Suppress ODL file generation. /OV /OV Overlay all procedural PSECTs. /PFM /PFM:nn Specifies the maximum number of nested PERFORM statements in the program being compiled. The default is 10. Using this switch to specify the exact number of nexted PERFORMs causes the compiler to reserve no more memory than necessary for the PERFORM stack. /PLT /|-PLT /-PLT Causes the compiler to suppress literal pooling. As a default (/PLT), the compiler pools liters to minimize the space required to contain them. Depending on PSECT size, literal pooling can also avoid the generation of additional PSECTS that would otherwise result from reaching maximum PSECT size. However, literal pooling increases compile time; you can therefore speed up compilations by using the /-PLT switch. /RO /RO Causes the compiler to generate read-only PSECTs for Procedure Division object modules. The default PSECT access code attribute is read/write. The access code attribute of a PSECT affects its memory allocation by the Task Builder. If your system supports hardware memory protection, specifying read-only PSECTs can help avoid unintentional damage to Procedure Division code, especially if you compile your program with the /-BOU switch. You will find more information about this attribute in your system's Task Builder Reference Manual. NOTE Do not use the /RO switch if you intend to include the COBOL Interactive Debugger (CID) in the task; CID breakpoints require read/write PSECTS. /SYM /SYM:n Causes the compiler to reserve more symbol table spece for the compilation. The acceptable values for n, which represents the space required for the maximum number of data-names and procedure-names, are 1, 2, 3, and 4: Maximum Maximum n Data-Names Procedure-Names 1 761 761 2 1021 1021 3 1531 1531 4 2039 2039 The default if /SYM:1