home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPMHELP / PASCAL.HQP / PASCAL.HLP
Text File  |  2000-06-30  |  10KB  |  217 lines

  1. Compiler Operation
  2. Invoking Pascal
  3. Compilation Switches
  4. File Input/Output
  5. Special Functions and Procedures
  6. Pascal/MT Symbolic Debugger
  7. Pascal/MT Reserved Words
  8. Notes
  9. :Compiler Operation
  10.  
  11.      The Pascal/MT compiler exists in two versions,  each consisting of two 
  12. 8080  object  code files:  FLTCOMP.COM (renamed PASCAL.COM on ARIES-1)  and 
  13. P2/FLT.OVL  for  the  version  in which REAL  numbers  are  implemented  as 
  14. floating  point  values internally and BCDCOMP.COM and P2/BCD.OVL  for  the 
  15. version  in  which REAL numbers are implemented as BCD  values  internally.  
  16. These files are Pass 1 and Pass 2 of the Pascal/MT compiler,  respectively.  
  17. Also required by the compiler are the following files --
  18.  
  19.           P1ERRORS.TXT   - Pass 1 Error Messages
  20.           P2ERRORS.TXT   - Pass 2 Error Messages
  21.           PASCAL/F.RTP   - Run-time Package (including debugger) for FLT
  22.           PASCAL/B.RTP   - Run-time Package (including debugger) for BCD
  23.  
  24.      The  input  files to the Pascal/MT compiler must  have  the  extension 
  25. '.SRC'  or '.PAS' indicating that it is a source program file.   There must 
  26. be  a carriage return/line feed sequence at the end of each input line  and 
  27. an input line may not be longer than 80 characters.
  28. :Invoking Pascal
  29.  
  30.      The  Pascal/MT  compiler is invoked on ARIES-1 by using the  following 
  31. command --
  32.  
  33.           PASCAL filename.DL
  34.  
  35. where  'filename'  is  the name of the file with the  extension  '.SRC'  or 
  36. '.PAS' containing the Pascal/MT source statements to be compiled, D is Y or 
  37. N  to indicate whether to include the debugger in the resultant .COM  file, 
  38. and  L  is  Y or N to indicate whether to produce a  .PRN  file  (listing).  
  39. PASCAL defaults to no debugger and no listing.  The four invocation options 
  40. are --
  41.  
  42.           PASCAL filename     - no debugger, no listing
  43.           PASCAL filename.Y   - debugger, no listing
  44.           PASCAL filename.NY  - no debugger, listing
  45.           PASCAL filename.YY  - debugger, listing
  46.  
  47.      For  usage  with the BCD version of the  compiler,  the  commands  are 
  48. similar except that 'PASCAL' is replaced by 'BCDCOMP'.
  49. :Compilation Switches
  50.      Compile-time  options may be specified to the compiler from within the 
  51. source file.   Such options take the form of special comments.  The form of 
  52. these comments is
  53.           (*$o info*) or {$o info}
  54. where  'o'  is  the  letter of the option and  'info'  is  information 
  55. particular to that option.  These options are --
  56.  
  57.           $I<filename>   Include <filename>.SRC into source stream
  58.           $L+ or $L-     Turn listing on (default) or Turn listing off
  59.           $P             Insert form feed into .PRN file
  60.           $D+ or $D-     Turn debug code on (default) or Turn debug code off
  61.           $C+            Use CALL instructions for real operations
  62.           $Cn            Use RST n for real operations (n=0 ... 7)
  63.           $O $aaaa       ORG program (run-time) at $aaaa (default 100H)
  64.           $R $bbbb       ORG RAM data at $bbbb
  65.           $Z $cc00       Set run-time size to $cc 256-byte pages
  66.           $X $dddd       Set run-time stack space to $dddd (default $200)
  67.           $S+ or $S-     Turn recursion or or Turn recursion off (default)
  68.           $Q+ or $Q-     Enable verbose output (default) or Disable verbose
  69. :File Input/Output
  70.      The standard Pascal READ,  READLN,  WRITE, and WRITELN statements 
  71. are  implemented for the CP/M console device.   WRITE or WRITELN to  a 
  72. built-in  file called PRINTER is allowed to directly access  the  CP/M 
  73. list device (like, WRITE(PRINTER,'Hello')).
  74.      The following extensions are implemented to handle files --
  75.           OPEN(fcbname,title,result{,extent_number});
  76.                (extent_number defaults to 0)
  77.           CLOSE(fcbname,result);
  78.           CREATE(fcbname,title,result);
  79.           DELETE(fcbname);
  80.           BLOCKREAD(fcbname,buffer,result{,relativeblock});
  81.           BLOCKWRITE(fcbname,buffer,result{,relativeblock});
  82. where    fcbname : a variable of type TEXT (array 0..32 of CHAR)
  83.          title   : ARRAY [0..11] of CHAR with
  84.                     title[0]=disk   select  byte  (0=logged  in  disk, 
  85.                       1=A,...)
  86.                     title[1..8]=filename and title[9..11]=filetype
  87.          result  : integer to contain returned value
  88.          buffer  : ARRAY [0..127] of CHAR
  89.          relativeblock : optional integer 0..255
  90. :Special Functions and Procedures
  91.  
  92.      Pascal/MT supports the following special routines --
  93.  
  94.           PROC MOVE(source,dest,length-in-bytes);
  95.           PROC EXIT;
  96.           FUNC TSTBIT(16-bit-var,bit#):BOOLEAN;
  97.           PROC SETBIT(VAR 16-bit-var,bit#);
  98.           PROC CLRBIT(VAR 16-bit-var,bit#);
  99.           FUNC SHR(16-bit-var,#bits):16-bit-result; {Shift Right}
  100.           FUNC SHL(16-bit-var,#bits):16-bit-result; {Shift Left}
  101.           FUNC LO(16-bit-var):16-bit-result;
  102.           FUNC HI(16-bit-var):16-bit-result;
  103.           FUNC SWAP(16-bit-var):16-bit-result;
  104.           FUNC ADDR(variable reference):16-bit result;
  105.           PROC WAIT(portnum:constant; mask:constant; polarity:boolean);
  106.           FUNC SIZEOF(variable or type name):integer;
  107.      Please refer to pp 32-33 of "Pascal/MT 3.0 Guide" for further info.
  108. :Pascal/MT Symbolic Debugger
  109.  
  110.      The  debugging  facilities available to the user when  using  the 
  111. debugger fall into two catagories -- program flow control and variable 
  112. display.
  113.  
  114.      If  the user wishes to see the commands during the  execution  of 
  115. the debugger, type a '?' followed by a return.
  116.  
  117.      The program flow commands provided in the symbolic debugger allow 
  118. the user to debug the Pascal/MT program at the Pascal source statement 
  119. level.   Included  are go/continue (with optional breakpoint),  trace, 
  120. set/clear/display  permanent breakpoint and a mode which will  display 
  121. the name of each procedure/function on the console as the procedure or 
  122. function is entered.
  123.  
  124.      These commands are discussed briefly on the following displays --
  125.  
  126. Debugger Command:  G - Go with optional breakpoint
  127.  
  128.      Syntax:   G{,<linenumber>}
  129.                G{,<proc/func name>}
  130.  
  131.      Go resumes execution where the program last stopped.   Breakpoint 
  132. may be optionally set at a specific line or function/procedure.
  133.  
  134. Debugger Command:  T - Trace
  135.  
  136.      Syntax:   T{<integer>}
  137.  
  138.      Execute one or more lines of the program.
  139.  
  140. Debugger Command:  E - Procedure/Function Display Toggle
  141.  
  142.      Syntax:   {-}E
  143.  
  144.      E  engages display of the names of procedures/functions  entered;   
  145. -E disengages it.
  146.  
  147. Debugger Command:  S - Set/Clear Slow Execution Mode
  148.  
  149.      Syntax:  {-}S
  150.  
  151.      S  allows  the user to select Fast,  Medium,  or  Slow  execution 
  152. speed; -S causes the program to run at full speed.
  153.  
  154. Debugger Command:  P - Set/Clear Permanent Breakpoint
  155.  
  156.      Syntax:  -P     (* Clears breakpoint *)
  157.               P<linenumber>
  158.               P<proc/func name>
  159.  
  160.      P sets the permanent breakpoint; -P clears it.
  161.  
  162. Debugger Command:  B - Display Permanent Breakpoint
  163.  
  164.      Syntax:  B
  165.  
  166.      Displays line the permanent breakpoint is set for.
  167.  
  168. Debugger Command:  D - Variable Display
  169.  
  170.      Syntax:   D <global var>
  171.                D <proc/func name>:<local var>
  172.                D <func name>
  173.                D <pointer name>^
  174.  
  175.      The D command is used as indicated.
  176.  
  177. Debugger Commands:  +,-,* - Variable Display
  178.  
  179.      Syntax:  *  -- display last value requested (using D or some other)
  180.               +n -- display variable n bytes forward from last
  181.               -n -- display variable n bytes backward from last
  182. :Pascal/MT Reserved Words
  183.  
  184.      ABS            DO             LO             READ         TSTBIT
  185.      ADDR           DOWNTO         MAXINT         READLN       TYPE
  186.      AND            ELSE           MOD            REAL         UNTIL
  187.      ARRAY          ENABLE         MOVE           RECORD       VAR
  188.      BEGIN          END            NIL            REPEAT       WAIT
  189.      BLOCKREAD      EXIT           NOT            RIM85        WHILE
  190.      BLOCKWRITE     EXTERNAL       ODD            ROUND        WRITE
  191.      BOOLEAN        FALSE          OF             SETBIT       WRITELN
  192.      CASE           FILE           OPEN           SHL
  193.      CHAIN          FOR            OR             SHR
  194.      CHAR           FUNCTION       ORD            SIM85
  195.      CHR            GOTO           OUTPUT         SIZEOF
  196.      CLOSE          HI             PACKED         SQR
  197.      CLRBIT         IF             PRED           SQRT
  198.      CONST          INLINE         PRINTER        SUCC
  199.      CREATE         INPUT          PROCEDURE      SWAP
  200.      DELETE         INTEGER        PROGRAM        THEN
  201.      DISABLE        INTERRUPT      RANDOMREAD     TO
  202.      DIV            LABEL          RANDOMWRITE    TRUE
  203. :Notes
  204.      1. Hexadecimal values may be specified as $hhhh, like $1A = 1AH.
  205.      2.  All  standard Pascal type definitions except ARRAY are  supported.  
  206. The   standard   form   ARRAY...OF   ARRAY...    must   be   specified   as 
  207. ARRAY[...,...,...], and a maximum of three dimensions may be used.
  208.      3. Type TEXT is ARRAY [0..35] OF CHAR.
  209.      4.  Interrupt Procedures,  declared as "PROCEDURE INTERRUPT[i] proc;", 
  210. are supported, where i is the restart vector number (0..7).
  211.      5.  CP/M  V2  random  file  access  is  supported  by  RANDOMREAD  and 
  212. RANDOMWRITE.
  213.      6.  Machine  code,  constant data,  and assembly language code may  be 
  214. inserted using INLINE (see pp 37-39 of "Pascal/MT 3.0 User Guide").
  215.      7. Chaining is supported by CHAIN, whose usage is "CHAIN(filename)".
  216.      8. Redirected I/O is supported (see pp 42-43).
  217.