Compiler Switches It is occasionally necessary for you to pass switches to the assembler or compiler in a COMPILE, LOAD, EXECUTE, or DEBUG command. For each translation (assembly or compilation), the COMPIL program sends a command string to the translator, containing three parts: 1. Binary output file specification. 2. Listing file specification. 3. Source file specification. To include switches with these files, you must do the following: o Group the switches according to each related source file, if you use the + construction. o Group the switches according to the three types of files for each source file. The order of the groups of switches is a. Binary b. Listing c. Source o Separate the groups of switches by commas for each source file. o Enclose all switches for each source file within one set of parentheses. o Place each parenthetical string immediately after the source file to which it refers. The COMPIL program interprets the groups of switches according to these rules: o The switches immediately before a closing right parenthesis are source (SSSS). o The switches before the first comma are binary (BBBB,,). o The switches before the second comma are listing (,LLLL,). o The order of the switches is BBBB, LLLL, SSSS. o The individual switches are separated by spaces. o The switches contain no more than 150 characters in all. o The switches contain only the following non-alphanumeric characters within the parentheses: colon (:), hyphen (-), slash (/), comma (,), and parentheses. Examples (SSSS) Source switch (BBBB,,) Binary switch (BBBB,LLLL,SSSS) Binary, list, and source switches (,,SSSS) Source switch(es) (,LLLL,) Listing switch(es) (BBBB,,SSSS) Binary and source switches (BBBB,LLLL,) Binary and list switches (,LLLL,SSSS) List and source switches The processor switches are listed below, with their meanings and the types of files to which they apply. Processor Switches Processor Binary Listing Source Meaning ALGOL D Set dynamic storage region for your own array (known as the heap). E The source file has line numbers in columns 73 to 80. L List the source program. N Suppress output of error messages on the terminal. Q Delimit the words in quotes. S Suppress the listing of the source program. COBOL A A A Allow the listing of code generated. C Produce a cross-referenced listing of all user-defined items in the source program. E E E Check the program for errors, but do not generate code. I Suppress generation of the starting address of a main program. J Force a starting address to be generated for a subprogram. L Use the preceding file descriptor as a library file whenever the COPY verb is encountered. M M M Print a map showing the parameters of the user-defined items. N Suppress output of source errors on the terminal. P Do not generate trace calls and symbols. R Produce a two-segment object program. The high segment contains the resident sections of the Procedure division; the low segment contains everything else. When the object program is loaded, LIBOL is added to the high segment. S S S The source file has sequence numbers in columns 1 through 6 and comments starting at column 73. W W W Rewind the magnetic tape. Z Z Z Zero the DECtape directory. FORTRAN-10 C Generate a file that is to be input to the CREF program. E Include the octal-formatted version of the object file in the listing. I Translate the letter D in column 1 as a space, and treat the line as a normal FORTRAN statement. M Add the mnemonic translation of the object code to the listing file. NOE NOE Suppress output of error messages on the terminal. NOW NOW Suppress output of warning messages on the terminal. O Perform optimization of global symbols when producing processor code. S Perform compilation, checking for syntax errors only. MACRO A A A Advance the magnetic tape reel by one file. B B B Backspace the magnetic tape reel by one file. C Produce a listing file in a format acceptable as input to CREF. E List the macro expansions. F Byte sizes match the format of the instruction. G Byte sizes are two 18-bit fields. L Reinstate listing (used after list suppression by S switch). M Suppress ASCII test in macro and repeat the expansion (SALL). N Suppress output of error messages on the terminal. O O O Allow literals to occupy only one file. P Increase the size of the pushdown list. Q Q Q Suppress questionable (Q) error indications on the listing. S Suppress the listing. T T T Skip to the logical end of the magnetic tape. X Suppress all macro expansions. Z Z Zero the DECtape directory. The following are examples of the use of switches: Examples .DEBUG TEST(,N,) Suppress error message during assembly. .COMPILE OUTPUT=MTA0:(M,W)/L Rewind the magtape (W), compile the first file, and include the MACRO coding in the output listing file (M). Output files are given the names OUTPUT.REL and OUTPUT.LST. .COMPILE/MACRO A=MTA0:(,Q,W)/L Rewind the magtape (W), compile the first file, and suppress Q (questionable) error indications in the listing. When a binary switch is not present, the delimiting comma must appear. .COMPILE/MACRO A=MTA0:(,Q,)/L Compile the file at the current position of the tape and suppress Q error indications on the listing. When the source and binary switches are not present, the delimiting commas must appear. .COMPILE FOO (NOWARN DEBUG) Compile the file named FOO using the F10 source switches NOWARN and DEBUG.