home *** CD-ROM | disk | FTP | other *** search
- Compiler Operation
- Invoking Pascal
- Compilation Switches
- File Input/Output
- Special Functions and Procedures
- Pascal/MT Symbolic Debugger
- Pascal/MT Reserved Words
- Notes
- :Compiler Operation
-
- The Pascal/MT compiler exists in two versions, each consisting of two
- 8080 object code files: FLTCOMP.COM (renamed PASCAL.COM on ARIES-1) and
- P2/FLT.OVL for the version in which REAL numbers are implemented as
- floating point values internally and BCDCOMP.COM and P2/BCD.OVL for the
- version in which REAL numbers are implemented as BCD values internally.
- These files are Pass 1 and Pass 2 of the Pascal/MT compiler, respectively.
- Also required by the compiler are the following files --
-
- P1ERRORS.TXT - Pass 1 Error Messages
- P2ERRORS.TXT - Pass 2 Error Messages
- PASCAL/F.RTP - Run-time Package (including debugger) for FLT
- PASCAL/B.RTP - Run-time Package (including debugger) for BCD
-
- The input files to the Pascal/MT compiler must have the extension
- '.SRC' or '.PAS' indicating that it is a source program file. There must
- be a carriage return/line feed sequence at the end of each input line and
- an input line may not be longer than 80 characters.
- :Invoking Pascal
-
- The Pascal/MT compiler is invoked on ARIES-1 by using the following
- command --
-
- PASCAL filename.DL
-
- where 'filename' is the name of the file with the extension '.SRC' or
- '.PAS' containing the Pascal/MT source statements to be compiled, D is Y or
- N to indicate whether to include the debugger in the resultant .COM file,
- and L is Y or N to indicate whether to produce a .PRN file (listing).
- PASCAL defaults to no debugger and no listing. The four invocation options
- are --
-
- PASCAL filename - no debugger, no listing
- PASCAL filename.Y - debugger, no listing
- PASCAL filename.NY - no debugger, listing
- PASCAL filename.YY - debugger, listing
-
- For usage with the BCD version of the compiler, the commands are
- similar except that 'PASCAL' is replaced by 'BCDCOMP'.
- :Compilation Switches
- Compile-time options may be specified to the compiler from within the
- source file. Such options take the form of special comments. The form of
- these comments is
- (*$o info*) or {$o info}
- where 'o' is the letter of the option and 'info' is information
- particular to that option. These options are --
-
- $I<filename> Include <filename>.SRC into source stream
- $L+ or $L- Turn listing on (default) or Turn listing off
- $P Insert form feed into .PRN file
- $D+ or $D- Turn debug code on (default) or Turn debug code off
- $C+ Use CALL instructions for real operations
- $Cn Use RST n for real operations (n=0 ... 7)
- $O $aaaa ORG program (run-time) at $aaaa (default 100H)
- $R $bbbb ORG RAM data at $bbbb
- $Z $cc00 Set run-time size to $cc 256-byte pages
- $X $dddd Set run-time stack space to $dddd (default $200)
- $S+ or $S- Turn recursion or or Turn recursion off (default)
- $Q+ or $Q- Enable verbose output (default) or Disable verbose
- :File Input/Output
- The standard Pascal READ, READLN, WRITE, and WRITELN statements
- are implemented for the CP/M console device. WRITE or WRITELN to a
- built-in file called PRINTER is allowed to directly access the CP/M
- list device (like, WRITE(PRINTER,'Hello')).
- The following extensions are implemented to handle files --
- OPEN(fcbname,title,result{,extent_number});
- (extent_number defaults to 0)
- CLOSE(fcbname,result);
- CREATE(fcbname,title,result);
- DELETE(fcbname);
- BLOCKREAD(fcbname,buffer,result{,relativeblock});
- BLOCKWRITE(fcbname,buffer,result{,relativeblock});
- where fcbname : a variable of type TEXT (array 0..32 of CHAR)
- title : ARRAY [0..11] of CHAR with
- title[0]=disk select byte (0=logged in disk,
- 1=A,...)
- title[1..8]=filename and title[9..11]=filetype
- result : integer to contain returned value
- buffer : ARRAY [0..127] of CHAR
- relativeblock : optional integer 0..255
- :Special Functions and Procedures
-
- Pascal/MT supports the following special routines --
-
- PROC MOVE(source,dest,length-in-bytes);
- PROC EXIT;
- FUNC TSTBIT(16-bit-var,bit#):BOOLEAN;
- PROC SETBIT(VAR 16-bit-var,bit#);
- PROC CLRBIT(VAR 16-bit-var,bit#);
- FUNC SHR(16-bit-var,#bits):16-bit-result; {Shift Right}
- FUNC SHL(16-bit-var,#bits):16-bit-result; {Shift Left}
- FUNC LO(16-bit-var):16-bit-result;
- FUNC HI(16-bit-var):16-bit-result;
- FUNC SWAP(16-bit-var):16-bit-result;
- FUNC ADDR(variable reference):16-bit result;
- PROC WAIT(portnum:constant; mask:constant; polarity:boolean);
- FUNC SIZEOF(variable or type name):integer;
- Please refer to pp 32-33 of "Pascal/MT 3.0 Guide" for further info.
- :Pascal/MT Symbolic Debugger
-
- The debugging facilities available to the user when using the
- debugger fall into two catagories -- program flow control and variable
- display.
-
- If the user wishes to see the commands during the execution of
- the debugger, type a '?' followed by a return.
-
- The program flow commands provided in the symbolic debugger allow
- the user to debug the Pascal/MT program at the Pascal source statement
- level. Included are go/continue (with optional breakpoint), trace,
- set/clear/display permanent breakpoint and a mode which will display
- the name of each procedure/function on the console as the procedure or
- function is entered.
-
- These commands are discussed briefly on the following displays --
-
- Debugger Command: G - Go with optional breakpoint
-
- Syntax: G{,<linenumber>}
- G{,<proc/func name>}
-
- Go resumes execution where the program last stopped. Breakpoint
- may be optionally set at a specific line or function/procedure.
-
- Debugger Command: T - Trace
-
- Syntax: T{<integer>}
-
- Execute one or more lines of the program.
-
- Debugger Command: E - Procedure/Function Display Toggle
-
- Syntax: {-}E
-
- E engages display of the names of procedures/functions entered;
- -E disengages it.
-
- Debugger Command: S - Set/Clear Slow Execution Mode
-
- Syntax: {-}S
-
- S allows the user to select Fast, Medium, or Slow execution
- speed; -S causes the program to run at full speed.
-
- Debugger Command: P - Set/Clear Permanent Breakpoint
-
- Syntax: -P (* Clears breakpoint *)
- P<linenumber>
- P<proc/func name>
-
- P sets the permanent breakpoint; -P clears it.
-
- Debugger Command: B - Display Permanent Breakpoint
-
- Syntax: B
-
- Displays line the permanent breakpoint is set for.
-
- Debugger Command: D - Variable Display
-
- Syntax: D <global var>
- D <proc/func name>:<local var>
- D <func name>
- D <pointer name>^
-
- The D command is used as indicated.
-
- Debugger Commands: +,-,* - Variable Display
-
- Syntax: * -- display last value requested (using D or some other)
- +n -- display variable n bytes forward from last
- -n -- display variable n bytes backward from last
- :Pascal/MT Reserved Words
-
- ABS DO LO READ TSTBIT
- ADDR DOWNTO MAXINT READLN TYPE
- AND ELSE MOD REAL UNTIL
- ARRAY ENABLE MOVE RECORD VAR
- BEGIN END NIL REPEAT WAIT
- BLOCKREAD EXIT NOT RIM85 WHILE
- BLOCKWRITE EXTERNAL ODD ROUND WRITE
- BOOLEAN FALSE OF SETBIT WRITELN
- CASE FILE OPEN SHL
- CHAIN FOR OR SHR
- CHAR FUNCTION ORD SIM85
- CHR GOTO OUTPUT SIZEOF
- CLOSE HI PACKED SQR
- CLRBIT IF PRED SQRT
- CONST INLINE PRINTER SUCC
- CREATE INPUT PROCEDURE SWAP
- DELETE INTEGER PROGRAM THEN
- DISABLE INTERRUPT RANDOMREAD TO
- DIV LABEL RANDOMWRITE TRUE
- :Notes
- 1. Hexadecimal values may be specified as $hhhh, like $1A = 1AH.
- 2. All standard Pascal type definitions except ARRAY are supported.
- The standard form ARRAY...OF ARRAY... must be specified as
- ARRAY[...,...,...], and a maximum of three dimensions may be used.
- 3. Type TEXT is ARRAY [0..35] OF CHAR.
- 4. Interrupt Procedures, declared as "PROCEDURE INTERRUPT[i] proc;",
- are supported, where i is the restart vector number (0..7).
- 5. CP/M V2 random file access is supported by RANDOMREAD and
- RANDOMWRITE.
- 6. Machine code, constant data, and assembly language code may be
- inserted using INLINE (see pp 37-39 of "Pascal/MT 3.0 User Guide").
- 7. Chaining is supported by CHAIN, whose usage is "CHAIN(filename)".
- 8. Redirected I/O is supported (see pp 42-43).