RELEASE NOTES FOR
                     =================
 
              DECUS PDP-11 PASCAL VERSION 6.3
              ===============================
 
 
 
The original PDP-11 Pascal (also known as Swedish Pascal) as
distributed by DECUS was prepared by:
 
                Seved Torstendahl
                Telefon AB LM Ericsson
                TN/X/Tdg
                S-126 25  Stockholm
                Sweden                  tel 08-719 4909
 
This  release,  based  on  the  original, has been modified,
corrected and repackaged by:
 
                Gerry Pelletier
                PRIOR Data Sciences, Ltd.
                Bell Mews Plaza, Nepean
                39 Highway 7
                Ottawa, Ontario
                Canada       K2H 8R2

                Telephone  613-820-7235
                Telex      053-3356
 
 
 
 
                          CONTENTS
                          ========
 
    1. Introduction................................ 1
    2. Implementation notes........................ 2
    3. Files and their contents.................... 4
    4. Installing Pascal........................... 9
      4.1 Preparing PASLIB......................... 9
      4.2 Building the Compiler....................10
      4.3 Compiling the Compiler...................12
    5. Crosscompiler on DEC-10.....................13
    6. Bugs........................................14
    7. Modifications...............................16
 
 
 
 



 
 
1.  Introduction
================
 
 
This Pascal compiler for PDP-11 is distributed through DECUS
(Digital Equipment  Computer  Users'  Society)  for  use  on
PDP-11  computers  running  RSX-11,  RSTS,  or IAS operating
systems or for VAX computers running in compatibility mode.
 
The compiler itself has a long history. It is  derived  from
the  original  Pascal  compiler  developed  by Urs Ammann in
Zuerich in the mid 70's. This was then adapted  to  generate
code for the PDP-11 by W. De Vries and C. Bron. It was later
changed  to  run  under  RSX-11M  by Seved Torstendahl at LM
Ericsson in Stockholm. Because it was first introduced  into
the  DECUS  community  at  this  point  it  became  known as
"Swedish Pascal". Further corrections and  refinements  were
introduced by Gerry Pelletier in Ottawa.
 
Version  6.2+ released in October 1981 was the last release.
This release, version 6.3, supersedes that one.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10-AUG-1985                - 1 -        Pascal Release Notes


 
 
2.  Implementation Notes
========================
 
MACHINE -- Compiler runs on any mapped PDP-11 and  generates
code  for  all  PDP-11's.  Crosscompiler on DEC-10 generates
code for all  PDP-11's.  The  compilers  generate  code  for
floating   point   hardware   (FIS   or  FPP)  and  extended
instruction set (EIS) if option switches are set.
 
OPERATING SYSTEM -- Compiler runs under  RSX-11M,  RSX-11M+,
RSX-11D,  IAS  or  RSTS  (DEC-10  crosscompiler  runs  under
TOPS-10). Requires a user partition of at least  28K  words,
preferably 32K words.
 
DOCUMENTATION   --   A   machine  readable  user  manual  to
complement the Jensen & Wirth, Pascal User Manual and Report
is included with the release.
 
MAINTENANCE -- No responsibility, but if  errors  are  found
reports will be accepted gratefully. Improvement suggestions
are  also welcome. All source code and maintenance utilities
are provided with release. All source code  is  provided  in
the  release  but  the main body of the compiler can only be
compiled on RSX-11M or M+ or on a DEC-10.
 
STANDARD --
  Restrictions:
    - Only local goto's are allowed.
    - Procedure DISPOSE is not implemented, instead, a  pair
      of  procedures,  MARK  and  RELEASE,  are available to
      deallocate dynamic storage.
    - Packed  data  structures  are  only  implemented   for
      character  arrays (always packed, two char's/word) and
      for   boolean   arrays    (packing    optional,    one
      boolean/bit).
    - The procedures PACK and UNPACK have no effect.
  Extensions:
    - Procedures  may  be  compiled  separately.  Separately
      compiled  procedures  can  be   accessed   through   a
      declaration  with  the  procedure  block  replaced  by
      "extern".
    - Function results can be of nonscalar type.
    - Arrays  with   unspecified   bounds   (but   specified
      index-structure)  can  be used as formal parameters to
      procedures, allowing differently declared variables or
      constants as actual parameters.
    - A string parameter type has been introduced  in  which
      one-dimensional character arrays or substrings thereof
 
 
10-AUG-1985                - 2 -        Pascal Release Notes


 
 
      may be passed as parameters.
    - Most  compilation  option  selectors ( {$M+} etc.) are
      setable by switches in the command line .
 
MEASUREMENTS -- The compiler requires a 32K  word  partition
(at  least  28K words for small programs). Compilation speed
is about 120  characters  per  second  (PDP-11/40  RK06).  A
memory  resident  overlayed  compiler is also provided which
requires a 65K word partition  and  compiles  at  about  400
characters per second.
 
METHOD  OF  DEVELOPMENT  --  The  crosscompiler  for  PDP-11
running on DEC-10 produced by Bron et al was used as  input.
It  is  written in Pascal and developped from Pascal-P. This
compiler was modified to generate object code linkable under
RSX/IAS and to give access to the file  system  of  RSX/IAS.
When  the  crosscompiler was finished it compiled itself and
was transferred to PDP-11. Almost all  of  the  compiler  is
written  in  Pascal;  the  remainder  and all of the runtime
routines are written in MACRO-11.
 
DEVELOPMENT AIDS -- Separate compilation  allowed.  Possible
to   use   external   procedures   written  in  FORTRAN  (or
assembler). Also available are: automatic copy of text  from
library into source program ("include"); execution frequency
measurements;  execution  trace;  option selectors ($R- etc)
setable by switches in  the  command  line;  an  interactive
source-level  debugging  package  (mainly copied from DEC-10
Hamburg compiler), including a  symbolic  dump  facility  of
stack and/or heap.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10-AUG-1985                - 3 -        Pascal Release Notes


 
 
3.  Files and their contents
============================
 
 
 
The  various  files  of  this release are offered on tape in
DOS-11 format (FLX) under one directory.
 
 
The following is a brief outline  of  the  files  and  their
contents.
 
 
Documentation
=============
 
RELEAS.TXT      This document

USER.FMT        User manual (Software Tools formatter format)

USER.TXT        User manual (Printable text)

DEBUG.MAN       Manual for symbolic debugger

PASERR.HLP      Help text for compilation error codes

PASRUN.HLP      Help text for runtime error codes
 
 
 
Runtime Support Library
=======================
 
PASLIB.OLB    Pascal  runtime routines. As distributed, this
              is for PDP-11 processors with no EIS,  FIS  or
              FPP  running mapped RSX. To upgrade it to your
              system, apply appropriate library  replacement
              (see Section 4).
 
              LBR PASLIB/RP = PASEIS  for EIS
              LBR PASLIB/RP = PASFIS  for FIS
              LBR PASLIB/RP = PASFPP  for FPP
              LBR PASLIB/RP = PASIAS  for IAS
              LBR PASLIB/RP = PASRST  for RSTS
              LBR PASLIB/RP = PASUNM  for unmapped systems
 
 
 
 
 
10-AUG-1985                - 4 -        Pascal Release Notes


 
 
PASEIS.OBJ    Concatenated object modules to do EIS multiply
              and divide. These are:
 
              Module MULI  from  P11EISMPI.MAC
                     DIVI  from  P11EISDVI.MAC
 
PASFIS.OBJ    Contains object module for FIS real arithmetic
              operations.  This is module P11RAR from source
              P11FIS.MAC.
 
PASFPP.OBJ    Concatenated  object  modules  for  FPP   real
              arithmetic operations. These are:
 
              Module P11RAR from source P11FPP.MAC,
                     FORTR  from source P11FORFPP.MAC.
 
PASIAS.OBJ    Contains   object   module  that  has  special
              difference for tasks run under  IAS  operating
              system.  This  is  module  RUNCHK  from source
              P11IASRNC.MAC.
 
PASRST.OBJ    Contains  object  module  that   has   special
              difference for tasks run under RSX emulator of
              RSTS  operating  system. This is module RUNCHK
              from source P11RSTRNC.MAC.
 
PASUNM.OBJ    Concatenated  object   modules   required   by
              programs  that  are  to  be built to run on an
              unmapped system. These are:
 
              P11INI from source P11INIUNM.MAC,
              P11NOF             P11NOFUNM.MAC.
 
PASNOX.OBJ    Concatenated  object  modules  that   can   be
              applied to a PASLIB.OLB that has been upgraded
              from  the distributed PASLIB.OLB to restore it
              to a state that is useable on a processor with
              no  arithmetic  hardware.  It   contains   the
              following modules:
 
              MULI from source P11MPI.MAC
              DIVI             P11DVI.MAC
              P11RAR           P11REAL.MAC
              P11INI           P11INIT.MAC
              P11NOF           P11NOFILE.MAC
              RUNCHK           P11RUNCHK.MAC
              FORTR            P11FORTR.MAC
 
 
 
10-AUG-1985                - 5 -        Pascal Release Notes


 
 
PASLIB.PAC    Packed  source  modules  for  runtime  support
              library.  (Use  P11DEF.MAC   as   prefix   for
              assembling all MAC modules in this package.)
 
DEBUG.PAS     Main  source  for symbolic debugger. Object is
              in PASLIB.OLB as module INIT$$.
 
 
 
Compiler  (PAS)
===============
 
P11PAS.PAS    Pascal source of general part of compiler.
 
P11FIL.PAS    PDP-11-specific part of compiler.
 
P11CRS.PAS    DEC-10-specific part of compiler.
 
SPCIAL.PAC    Packed source  for  special  runtime  routines
              required by the compiler itself.
 
RECUR1.OBJ
RECUR2.OBJ    Object for two different versions of a routine
              used  for overlay control in the compiler. One
              of these must be present in PAS.OLB  based  on
              the  version  of  the operating system you are
              running. See section 4  for  further  details.
              The  distributed  PAS.OLB contains RECUR2. The
              source  for  these  are  in   RECUR1.MAC   and
              RECUR2.MAC in SPCIAL.PAC.
 
PAS.BLD
PAS.ODL       TKB files to build compiler
 
PAS.OLB       Library  of  object modules of compiler. These
              are  the  objects  obtained   from   compiling
              P11PAS.PAS,  P11FIL.PAS and all the modules in
              SPCIAL.PAC.
 
PAS.TSK       Task image of compiler. This version is  built
              to  run  under  RSX-11M  in  32K  words  on  a
              processor with EIS  arithmetic  hardware  (ie.
              makes no use of FPP or FIS hardware).
 
 
 
 
 
 
 
10-AUG-1985                - 6 -        Pascal Release Notes


 
 
Big Compiler  (PAZ)
===================
 
This  version of the compiler is essentially the same as the
PAS task. It is built with considerably  heavier  overlaying
and  as  a  result uses memory resident overlays to maintain
good speed performance. It needs about 65K words to run.  If
you are not using RSX-11 chances are you will not be able to
use this version of the compiler.
 
This  version  of  the compiler was developed to compile the
compiler itself since the PAS compiler does'nt  have  enough
capacity  to  compile P11PAS.PAS. PAZ can compile P11PAS.PAS
(about 8900 lines) in about 10 minutes on a PDP-11/40 - RK06
or 5.5 minutes on a PDP-11/70 - RM03.
 
This is the preferred compiler to use  if  your  system  has
lots of memory.
 
PAZ.BLD
PAZ.ODL       TKB files to build PAZ
 
PAZ.TSK       PAZ  compiler  task built to run under RSX-11M
              on processor with EIS arithmetic hardware.
 
OVTRIK.PAC
OVTRIK.OLB    Packed source and objects  for  routines  that
              are needed for doing extra overlaying.
 
 
 
Maintenance Utilities
=====================
 
UNPACK        Asks  for the name of a packed file and splits
              it into its constituent files.
 
LISTPACK      Lists the names of files in a packed file.
 
PACK          Packs arbitrary source files into a new packed
              file. When it asks for name  of  source  file,
              you can also enter "@file" where "file" itself
              contains the names of files to be packed.
 
SELECT        Can  extract a particular module from a packed
              file.
 
 
 
 
10-AUG-1985                - 7 -        Pascal Release Notes


 
 
Task images (for RSX-11M) for some of  these  utilities  are
provided. (Built to use EIS.)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10-AUG-1985                - 8 -        Pascal Release Notes


 
 
4.  Installing Pascal
=====================
 
 
The  files  are  stored on tape in DOS-11 format. Use FLX to
copy the files from tape to disk (eg. FLX =MT:[76,104]*.*).
 
The runtime support library must first be prepared  so  that
it  matches  your  processor and operating system. Either or
both the PAS or PAZ compiler tasks can then be built.
 
Note that the distributed compiler tasks will only  work  on
RSX-11M or RSX-11M+, therefore RSTS, IAS, and VMS users must
rebuild the compiler.
 
On  RSX,  it is not essential to rebuild the compiler tasks.
The distributed compiler task images, PAS.TSK  and  PAZ.TSK,
only have to be INStalled. They require 32K and 65K words of
memory respectively. Since these compiler tasks are built to
perform  real arithmetic via software routines, you may want
to upgrade them to take advantage  of  your  floating  point
hardware  (FPP  or  FIS) if you have it. This can be done by
rebuilding the compiler tasks. Note that there  will  be  no
noticeable  compilation  speed improvement by doing this but
it will release a bit of memory that  can  be  used  by  the
compiler  for  more  symbol  table  workspace  which permits
compiling larger programs.
 
 
 
4.1  Preparing PASLIB
=====================
 
The runtime  support  object  library  can  be  prepared  by
applying  the appropriate library replacements to PASLIB.OLB
with the LBR utility.
 
    LBR PASLIB/RP = PASEIS   if processor has EIS, FIS or FPP
    LBR PASLIB/RP = PASFIS   if processor has FIS
    LBR PASLIB/RP = PASFPP   if processor has FPP
    LBR PASLIB/RP = PASIAS   if operating system is IAS
    LBR PASLIB/RP = PASRST   if operating system is RSTS
    LBR PASLIB/RP = PASUNM   if this PASLIB is to be used for
                             building tasks to run on an
                             unmapped system.
 
Note that on many  PDP-11  models  (eg.  34,44,55)  the  EIS
(Extended  Instruction  Set) is built into the processor and
 
 
10-AUG-1985                - 9 -        Pascal Release Notes


 
 
is not referred to as an option. Treat these  models  as  if
they have EIS.
 
After these replacements, the Pascal runtime support library
will  be  ready as a separate OLB file. If, for convenience,
you want to merge PASLIB into the  system  library,  SYSLIB,
then do a library extraction and insertion.
 
Eg. >LBR PASLIB = PASLIB/EX    ! Creates PASLIB.OBJ
    >SET /UIC=[1,1]
    >PIP /NV = SYSLIB.OLB      ! Keep copy of old SYSLIB
    >LBR SYSLIB = [g,m]PASLIB  ! Insert PASLIB routines
 
 
 
4.2  Building the Compiler
==========================
 
First  determine which version of the AUTO routine exists in
your  operating  system.  This  routine  controls  automatic
overlaying  and is linked into every task that uses autoload
overlays. The compiler makes use of a specially patched link
into this routine in order to enhance the overlay capability
to  allow  for  automatic  recursive  overlaying  which   is
required  because of the recursive nature of the body of the
compiler. DEC has provided different versions  of  the  AUTO
routine  in  the  the  various operating system releases and
therefore the special linkages into it must be adjusted  for
each version.
 
You  can  examine  the  version ident of the AUTO routine in
your system with the LBR utility:
 
        >LBR LB:[1,1]SYSLIB/FU
 
 
The further steps required are:
 
    - If your system has an AUTO routine with ident "08"  or
      less then replace one of the compiler modules:
 
              >LBR PAS/RP = RECUR1
 
    - Edit the PAS.BLD file to:
 
      1. set   the  new  default  option  switches  for  the
         compiler (see comments in PAS.BLD),
      2. set the /FP switch if FPP is being used,
 
 
10-AUG-1985               - 10 -        Pascal Release Notes


 
 
      3. set the /SG switch if your  task  builder  supports
         that switch, (this is essential),
      4. set  the  second  GBLPAT statement according to the
         version of the AUTO routine you have on your system
         (see comments in PAS.BLD).
 
    - If the CXP  output  facility  has  been  selected  (by
      recompiling  the  compiler  with /X) then edit PAS.ODL
      file to add reference to module WRITER  (see  comments
      in PAS.ODL).
 
    - Invoke the task builder (eg. >TKB @PAS.BLD). Disregard
      the diagnostic messages issued by the task builder.
 
    - Install the compiler task:
 
              >INSTALL PAS
 
      or,  on  RSTS,  setup  a  CCL  command  to  invoke the
      compiler:
 
              >UT
              #CCL PAS=[x,y]PAS.TSK;PRIV
              ^Z
 
If the resulting task  image  is  too  large,  it  will  not
install  or  run.  In  this  case,  the EXTTSK option in the
PAS.BLD file should be adjusted  to  produce  an  acceptable
task  image  (see  comments in PAS.BLD). Try to maximize the
task size. This will give the largest compiler symbol  table
workspace.  The  size  of  programs  that can be compiled is
limited by this workspace.
 
Building the PAZ compiler requires the same procedure except
that files PAZ.BLD and PAZ.ODL are  involved.  However,  for
PAZ,  its workspace is adjusted with the EXTSCT statement in
PAZ.BLD. The workspace is maximum when the root segment (see
the MAP file produced by the task builder) is exactly 160000
octal bytes long. The task will not build correctly  if  the
root exceeds this size.
 
 
 
 
 
 
 
 
 
 
10-AUG-1985               - 11 -        Pascal Release Notes


 
 
4.3  Compiling the Compiler
===========================
 
If  you  are  interested  in  maintaining  or  modifying the
compiler then you will need to recompile the compiler source
(this can only be done on RSX):
 
    - install the PAZ compiler (it requires about 65K  words
      of memory)
    - compile either or both Pascal source modules:
 
          >PAZ P11PAS{switches}
          >PAZ P11FIL{switches}
 
          where switches ::=
                  /E      for processors with EIS
                  /G      for processors with EIS/FIS
                  /F      for processors with EIS/FPP
                  /X      if you want CXP output facility
 
          Note that if /X is used for compiling one module then it must be
          used for the other also.
 
    - replace the object in PAS.OLB:
 
          >LBR  PAS/RP = P11PAS, P11FIL
          >;
          >;      Compress and purge to recover space
          >LBR  PAS/CO = PAS
          >PIP  PAS.OLB/PU
 
 
Specifying  the  /X switch gives the compiler the ability to
output  symbolic  generated  code  to  a  listing  file   as
specified  on  a PAS command line (see section 1.1.1 of user
manual). This facility is not provided  by  default  because
the  extra  code  that the compiler has to carry reduces its
workspace. Specifying /X  will  cost  almost  900  words  of
reduced workspace.
 
 
 
 
 
 
 
 
 
 
 
10-AUG-1985               - 12 -        Pascal Release Notes


 
 
5.  Crosscompiler on DEC-10
===========================
 
To  generate  a  cross  compiler  on  a  DEC-10,  proceed as
follows:
 
  - transfer the files P11PAS.PAS and P11CRS.PAS to DEC-10,
  - compile them with the PASREL compiler from Hamburg,
  - load the produced modules and save the core image:
 
            .LOAD P11PAS,P11CRS
            .SAVE P11PAS 64
       (64 is enough but maybe less will suffice.)
 
When run, the compiler will ask  for  the  filename  of  the
source.  A  full  name including volume and p,pn is allowed.
Filename extension is not necessary if it is .PAS.  Two  new
files  are  produced: a list file with extension .LST and an
object file with extension .OBJ.
 
  Example:
        .RUN P11PAS
        *PROG
 
  will produce the files PROG.LST and PROG.OBJ
  from PROG.PAS .
 
The object file contains one PDP-11 byte per DEC-10 word and
is in PDP-11 DOS format. It can be transferred to  a  PDP-11
on DECtape or other suitable medium.
 
  Example:
        .MOUNT DTA:DT/V:DTNAME/WE
        .R FILEX
        *DT:/V/Q/I=PROG.OBJ
        *^C
 
This  object  module  can then be retrieved on a PDP-11 with
RSX-11M by:
 
        >FLX SY:/RS=DT:*.*/DO/FB
 
 
 
 
 
 
 
 
 
10-AUG-1985               - 13 -        Pascal Release Notes


 
 
6.  Bugs
========
 
- There are a couple of problems with output of real numbers
  to a text file. Rounding is not done and severe inaccuracy
  (up to 6%) shows up for numbers in  the  range  1.0E-3  to
  1.0E-9. Changes are also required so that the selection of
  number  format (scientific vs fixed point) conforms to the
  Pascal Standard.
 
- I/O operations to a file of integer do not work.
 
- Statements such as these do not compile when f is a file:
 
                  write (f^.a.b,...
                  write (f^[i],...
 
  Rewrite them as:
 
                  write (output, f^.a.b, ... {or tty}
                  write (output, f^[i], ...
 
 
- Standard I/O procedures cannot  refer  directly  to  files
  within  arrays  or  records.  Indirect  reference  such as
  through a formal parameter or as a field identifier inside
  a with clause can be made.
 
  For example, if a program contains the declarations:
 
          var
              af:  array [1..10] of text;
              rf:  record
                   a:  integer;
                   b:  text;
                   c:  char;
                   end;
 
  then the following statements will not compile:
 
          rewrite (af[i]);
          writeln (af[i], x);
          reset (ar.b);
          readln (ar.b, x);
 
  These could be rewritten as:
 
 
 
 
10-AUG-1985               - 14 -        Pascal Release Notes


 
 
          user_rewrite (af[i]);
          user_writeln (af[i], x);
          with rf do
              begin
              reset (b);
              readln (b, x);
              end;
 
- There are certain unusual circumstances of bad source code
  syntax that will cause the compiler to hang in an  endless
  loop.  If  you  suspect the compiler is hung, abort it and
  restart the compilation specifying your  terminal  as  the
  listing  device.  The  listing  will stop at the line just
  before the line with the bad syntax.
 
- There is a problem in  calling  Fortran  subroutines  that
  themselves  do  Fortran  I/O. Some F4P users have reported
  success in circumventing  this  problem  by  removing  one
  instruction from PASLIB routine FORTR. The source for this
  routine   is  in  PASLIB.PAC,  module  P11FORFPP.MAC.  The
  instruction to be removed is:

          MOV DAPADDR(GP),$OTSV

  To incorporate the change in PASLIB:

          MAC P11FORFPP = P11DEF, P11FORFPP
          LBR PASLIB/RP = P11FORFPP

  This fix apparently does not work for Fortran IV  (Version
  01C at least).
 
- The symbolic object code that is output to the CXP file is
  not  accurate because some optimization is done after code
  generation. The optimizing routines need to be enhanced to
  output  to  the  CXP  file  information  about  the   code
  revisions they perform.
 
- The standard function for arctan is not available.
 
 
 
 
 
 
 
 
 
 
 
10-AUG-1985               - 15 -        Pascal Release Notes


 
 
7.  Modifications
=================
 
The following lists the modifications made to Swedish Pascal
version 6.2+ to arrive at this release.
 
 
93. Improve the accuracy of real addition and subtraction in
    the software real arithmetic routine P11REAL.MAC.
 
94. When  a  rewrite  on a text file specifies option FDFTN,
    both the FD.FTN and FD.CR  record  attribute  bits  were
    being set. This was acceptable on older operating system
    releases   but   not   for   recent   releases.   Module
    P11RESET.MAC was changed to only set the FD.FTN  bit  in
    this situation.
 
95. Corrected   problem  with  PAZ  compiler  crashing  when
    activated without any command line arguments.  The  name
    of the command prompting routine was changed from RTT to
    RTTY in P11WTT.MAC AND P11FIL.PAS.
 
96. Module  P11RESET.MAC  has been changed to correctly save
    and restore the filename block when a temporary file  is
    reset.  The  wrong  number of words were being saved and
    restored.
 
97. The reset and rewrite statements have  been  changed  so
    that  when  an  open  file  is  being  re-opened  with a
    reset/rewrite statement that has no file spec parameters
    then the existing  open  file  will  be  reopened.  This
    involved  procedure GETPUTRESETREWRITE in P11PAS.PAS and
    runtime module P11RESET.MAC.
 
98. The compiler  was  corrected  to  properly  compile  I/O
    statements  that  refer  to  files that are contained in
    records.
 
99. A special version of P11RUNCHK.MAC has been provided for
    RSTS users. The new module is called P11RSTRNC.MAC.
 
100. The compiler will now accept a simplified command  line
     with as few as one file spec. It will also still accept
     the traditional MCR type command syntax.
 
101. The  underscore  character  (_)  can  now  be  used  in
     identifier names.
 
 
 
10-AUG-1985               - 16 -        Pascal Release Notes


 
 
102. Added a check  to  make  sure  that  a  floating  point
     program  is  built  with  the  /FP task builder switch.
     (Module P11FPPINI.MAC)
 
103. Made corrections to allow update of  sequential  files.
     (Modules P11RESET.MAC and P11GETPUT.MAC)
 
104. Corrected   fault   related  to  compiling  a  constant
     declaration  involving  a  real   constant   identifier
     preceeded  by  a  minus  sign.  Procedure  CONSTANT  in
     P11PAS.PAS.
 
105. Corrected bug in  FOR  loop  code  generation  when  an
     unsigned  compare  is required for the loop termination
     test  (eg.  when  control  variable  is   type   CHAR).
     Procedure FORSTATEMENT in P11PAS.PAS.
 
106. Changed  compiler to reject FOR statements in which the
     control variable is  not  a  local  variable.  This  is
     required  by  the  Pascal Standard in order to minimize
     insecurities. Procedure FORSTATEMENT in P11PAS.PAS.
 
107. Changed  P11RESET.MAC  to  properly  flush   the   last
     incomplete  line  to output text files when the file is
     being reopened.
 
108. Changed action of MOD operator  to  conform  to  Pascal
     Standard  (ie.  result  will give different result from
     old  method  for  negative   operand   only).   Modules
     P11DVI.MAC and P11EISDVI.MAC.
 
109. Changed  P11GETPUT.MAC  to better handle situation when
     end of line is hit in a text file.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10-AUG-1985               - 17 -        Pascal Release Notes