< COMMAND - TSS command to compile/run a Pascal program.

COMMAND - TSS command to compile/run a Pascal program.

(Single Segment)

Syntax:

     pascal [option]* filename [filename]*
          (+|-)Ansi (-)            (+|-)Batch (-)
          (+|-)Clear (-)           (+|-)Form (-)
          (+|-)Go (+)              (+|-)Iso (-)
          (+|-)Keep (-)            (+|-)Load (+)
          (+|-)LoadBstar (-)       (+|-)Map (-)
          (+|-)Respectcase (+)     (+|-)TEST (-)
          (+|-)Tables (+)          (+|-)Value (+)
          (+|-)Zdebug (-)          Escape=char
          Hstar=filename           Include=catalog
          indeX=file               Library=filename
          Name=element             Stack=nnn
          StandardLibrary=libname  Time_limit=nnn
          USe=name,name,...        Updatelibrary=filename

Examples:

     pascal +value src.p
     pascal u=/mylib /s/types.p /s/funcs.p
     pascal /s/types.p /s/main.p l=/mylib
     pascal -val -tables s=2000 /s/types.p /s/main.p /mylib

Options:

+Ansi
tells the compiler to issue diagnostics for any construct which does not conform to the ANSI Pascal standard.
+Batch
indicates the program should be prepared to run in batch. The command causes the batch library to be searched before the main library but after all other libraries. This option implies "-Go".
+Clear
is used in conjunction with the "Updatelibrary=" option to force the library editor to initialize the library before adding the new object module(s).
+Form
is used for card image files. It causes the compiler to ignore anything after column 72.
-Go
creates the executable file (H*) but does not execute it. The program may then be run by using the GO command. The default is "+Go".
+Iso
tells the compiler to issue diagnostics for every construct that does not conform to the ISO standard (Level 1).
+Keep
tells the compiler not to delete intermediate files that are created during the compilation process. This is only of interest to the people maintaining the compiler.
-Load
compiles only; does not call the loader or the library editor.
+LoadBstar
tells the compiler to load an already existing object file (B*) if no source file is given. This is handy if you leave off a library name by mistake and just want to retry loading without having to recompile everything again. This option may not be used in conjunction with the "Updatelibrary=" option.
+Map
tells the Yloader to generate its rudimentary load map.
-Respectcase
ignores case distinctions in source text. The default is to respect case distinctions and to insist keywords be in lower case.
-Tables
does not produce the line number tables. These tables are used by the traceback mechanism, and may be used by the BOFF debugger. It will be harder to locate a problem if tables are suppressed.
+TEST
uses the test version of the Pascal libraries. The user is cautioned that there is no guarantee about the state of these libraries.
-Value
suppresses compilation of range checking code. It also stops stackframe initialization on function entry. Do not use "-Value" unless you are certain your program is completely debugged.
+Zdebug
enables the printing of compiler debugging information. This is intended for compiler maintenance, not for general use. The action of this option is subject to change without notice.
Escape=c
indicates that the character "c" will be used as the escape character in string and character constants. Specifying "Escape=" with no character turns off the string escape feature. The default escape character is "\". +Ansi and +Iso turn off the string escape extension, so the Escape= option cannot be used with these options. The escape character must be a non-blank printable ASCII special character other than single quote ("'").
Hstar=filename
tells the loader to put the load module (H* file) into the designated file instead of the default file ".h".
Include=catalog
specifies a catalog that the compiler should search when it is trying to find declaration files.
indeX=file
specifies an index file. This is a text file that contains a sequence of file names, one per line. These files should contain Pascal source code. The compiler will take source input from the given files, in the order they are listed. If source files are given on the command line as well as in index files, all the source will be concatenated in the order they appear. For example, if the command line states the files
           f1 x=i1 f2 x=i2

the compiler will take code from "f1", then from the files named in "i1", then from "f2", then from the files named in "i2".

Library=filename
provides a library to be searched by the loader. If more than one is supplied, they are searched in the order they appear. The Pascal run-time libraries are always searched last (unless given in the command line).
Name=name
assigns a name to the load module in the h* file. The name must be six characters or less. The default name is "object".
Stack=nnn
sets the stack size (fixed during execution). The default size is 1000 words.
StandardLibrary=libname
specifies the name of an alternate standard subprogram library. If you specify no StandardLibrary option, you get the conventional (ANSI/ISO) library.
Time_limit=nnn
specifies the number of seconds of execution time for the program, when running in compile and go mode ("+Go" option on). A value of zero means no time limit. The default is 15 seconds.
Updatelibrary=filename
specifies a library into which the compiled routine(s) will be edited by the library editor. Loading is suppressed unless the "Hstar=filename" option is also given, in which case the library is searched by the loader.
USe=name,name,...
forces the loader to load the specified routines. This feature is implemented by having the compiler generate SYMREFs to the named routines.

Notes:

Options may be abbreviated in any unambiguous way, but letters shown in capitals must be present. Thus, "+c" can be used instead of "+Clear", "s=nnn" instead of "stack=nnn", "n=element" instead of "name=element", etc. Almost anything that is enough to identify a given option uniquely is acceptable to the PASCAL command.

Description:

The PASCAL command compiles and loads programs written in Pascal. You should see "expl pascal" before attempting to write or run programs.

One or more file names may appear on the command line. If a file is sequential, it may be a file of object decks, in which case the decks are copied to "r*" to be fed to the loader. All sequential files that do not appear to contain object decks are assumed to be part of the source. They are implicitly concatenated and compiled after all other options have been processed. If a file is random, it is assumed to be a random library.

If the "Hstar=filename" option appears on the command line, the load module is placed in the specified file; otherwise it is placed in a file named ".h". The load module is then executed unless the "-Go" option is specified.

Normally, the compiler generates code to check the ranges of values across assignments and function calls, and on subscripting. It also causes the stack to be initialized upon each function entry. When you are certain your program is debugged, you can save some space and execution time by using the "-Value" option to turn off these checks for illegal values.

The "Stack=nnn" option specifies the stack size to use for the object program ("nnn" is an integer). The default size is 1000 words, but if the program requires a lot of array space you may need to allocate a larger stack.

To put a separately compiled Pascal procedure into a random library, use the "Updatelibrary=library" option, where "library" is the file name of the library file.

If the first line of a source file begins with a digit, the file is assumed to be line-numbered. The line numbers on the file are used in diagnostics, but are otherwise stripped off and ignored.

Files used:

     pascal/pcs1.1/std - run-time library
     pascal/pcs1.1/tss - more run-time library
     pascal/pcs1.1/batch - Batch library
     fc**1 - pass zero intermediate file
     fc**2 - pass one intermediate file
     fc**n - other intermediate files (where "n"
             is a number)
     .h - default load module
     b* - object deck(s)

Copyright © 1997, by Thinkage Ltd. File Formatted on 16 March 1990