









          ********************************************************************
          ********************************************************************
          **********************                         *********************
          **********************        PASCAL/MT+       *********************
          **********************                         *********************
          ********************************************************************
          ********************************************************************
          **********                                                **********
          *******                     Release Notes                    *******
          ******                                                        ******
          ********************************************************************
          ********************************************************************
          ********************************************************************
          *****                                                          *****
          *****           Copyright (c) 1983 by Digital Research         *****
          *****                                                          *****
          ***** CP/M-86 is a registered trademark of Digital Research.   *****
          *****                                                          *****
          ********************************************************************




          These  release  notes  pertain  to  both  the   software   and   the
          documentation set for the Digital Research product:

               Pascal/MT+ For the CP/M-86 Family of Operating Systems

          They provide the most current information regarding:

             o Sofware bugs that have been identified since  the  product  was
               released.

             o Errors or omissions in the documentation set that could not  be
               corrected  because  of the lead time needed for typesetting and
               printing.

















                                          1







                                  DOCUMENTATION ERRATA



          The following  are  errors  in  the  Pascal/MT+  Language  Reference
          Manual:


          Page 3-3.   Change WORD(x) to WRD(x)

          Page 6-2.   Change the third paragraph to read:

                      "The data type for a function must be  a  simple  type.
                      Put  the  type  name  after  a  colon at the end of the
                      function heading.

          Page 6-8.   In Table 6-1, change the Returns type for  the  Function
                      ABS from REAL to "same as NUM".

          Page 6-10.  In Table 6-1, the Function @HERR returns a BOOLEAN type,
                      and  the  the  Function  ADDR  returns a POINTER not an
                      INTEGER type.  Also change FUNCTION @RLS  to  PROCEDURE
                      @RLS.

          Page 6-12.  Change the first sentence in  the  second  paragraph  to
                      read:

                      "You can use ADDR to reference external variables."

          Page 6-13.  Change the example to ARCTAN(1) = 0.78539

          Page 6-19.  Change the first sentence in  the  second  paragraph  to
                      read:

                      "CLOSEDEL closes and deletes files after use."  In  the
                      last  paragraph,  change  File Control Blocks (FCBs) to
                      File Information Blocks (FIBs).

          Page 6-68.  Change the fifth paragraph to read:

                      "WRITE  and  WRITELN  treat  strings   as   arrays   of
                      characters.  They  do not write the length byte to TEXT
                      files."

          Page 7-2.  In the second paragraph, change F2 to F3 in:

                          F2^ := 45;

                      puts the integer value 45 in the  buffer  of  the  file
                      variable F2.








                                          2







          The following are errors in the Pascal/MT+  Programmer's  Guide  for
          the CP/M-86 Family of Operating Systems.


          Page 1-5.   Delete the following files from Table 1-2.  They are NOT
                      distributed with the product:

                           o 8087.I86
                           o 87XOP.I86
                           o 87TRS.I86
                           o 87REALS.BLD

          Page 1-6.   The second paragraph states you can use the distribution
                      disks  just  as  they  are.  This is not true; they are
                      write-protected.  You must copy them onto backup disks.

          Page 2-3.  Change the first paragraph to read:

                      "During Phase 0,  When  the  compiler  finds  a  syntax
                      error,  it  displays the line containing the error.  If
                      you are using the MTERRS.TXT file,  the  compiler  also
                      displays an error description.  In all other Phases, if
                      you are not using the MTERRS.TXT file, or  you  have  a
                      nonsyntax  error, the compiler displays the line number
                      and an error identification number."

          Page 2-15.  Table 2-5 is incomplete. Add the following Linker  error
                      messages:

                      Unable to open input file: xxxxxxxx

                      Explanation: The linker cannot find the specified input
                      file.

                      Incompatible relocatable file format

                      Explanation: Either the R86 file is corrupted or it has
                      a  format that is incompatible with the format expected
                      by LINK/MT+86.

                      Initialization of DSEG not allowed

                      Explanation: The linker has  encountered  a  DB  or  DW
                      instruction in the Data segment.

                      Undefined symbol: xxxxxxxxx

                      Explanation: The specified symbol is referenced but not
                      defined in the module.









                                          3







          Page 3-8.   The explanation of the /O option is  incorrect.   Change
                      as follows:

                      "/O:n tells the linker that the previous file is a  SYM
                      file  and that n is the overlay number, in hexadecimal.
                      You must specify the overlay filename and number in the
                      link command line.  This option is for overlays only."

          Page 3-10.  Change the command line for linking an overlay to:

               LINKMT <prog.00n>=<sym file>/O:,<modules|libraries>/P:mmmm/X:ssss


          Page 3-11.  Change section 3.2.5 to 3.2.6.  Insert section 3.2.5  as
                      follows:

                      3.2.5  Overlay Symbol Table

                      LINKMT creates a symbol table at the end  of  the  code
                      segment for each overlay module.  This symbol table can
                      be very large because it includes all  the  symbols  in
                      the overlay and the root.  However, not all the entries
                      in the symbol table are required by the  overlay.   The
                      overlay  requires  only  those  entries called from the
                      root or another overlay.  Therefore, after linking each
                      overlay  module,  you  should  use the STRIP utility to
                      reduce the size of the symbol table.

                      Note: LINKMT provides the  size  of  the  code  segment
                      which  does  not  include  the symbol table for overlay
                      modules.  Thus, the total code  size  required  for  an
                      overlay  module will be much larger than the size given
                      by LINKMT if you do not use STRIP.

                      To use STRIP, enter the command

                      A>strip


                      Once invoked, STRIP asks for the name of  the  file  to
                      strip,  the  location  of  the  symbol  table (the same
                      number used with the P  parameter  when  you  link  the
                      overlay),  and the name of each entry point you want to
                      retain in the symbol table.  You must enter  the  entry
                      points in reverse order of their declaration.

                      STRIP searches the symbol table  for  the  first  entry
                      point  and  deletes  all  others it encounters until it
                      finds the correct one.   STRIP  then  requests  another
                      entry point and continues.  When the last one is found,
                      you enter a dummy entry point  such  as  ZZZ  and  then
                      STRIP  continues  to  delete the other entries until it
                      finds the end to the table.





                                          4







                      After deleting all the unused entry points, STRIP lists
                      the  remaining  entry  points  and  asks  if  it should
                      replace the original version with the stripped version.
                      You must answer with "YESDOIT" to replace the original.
                      Any other response terminates STRIP and does not change
                      the original.


          Page 3-13.  The example command lines for linking overlays 1  and  2
                      are incorrect.  They should be:

                A>LINKMT DEMOPROG.001=DEMOPROG/O.1,MOD1,PASLIB,/S/P:4000/L

                A>LINKMT DEMOPROG.002=DEMOPROG/O.2,MOD2,PASLIB,/S/P:4000/L


          Page 3-14.  Add the  following  to  paragraph  6  concerning  shared
                      variables:

                      "You must also rewrite the  initialization  routine  in
                      PASLIB  because  it  zeros  out  the data area.  Change
                      @INI3.I86 to reflect the size of the common area.   For
                      example,

                          SUB CX, 100H + common area size
                          MOV DI, 100H +    "     "   "


          Page 4-7.  Delete the third paragraph, and insert the following:

                      "Floating-point real numbers are returned  in  the  DX,
                      CX,  BX,  and  AX registers.  BCD reals are returned in
                      DI, DX, CX, BX, and AX.  The high-order byte is  in  DX
                      (or DI), and the low-order is always in AX."

          Page 4-14.  In the paragraph under Listing 4-6 add the sentence:

                      "An extra eight bytes of code is  generated  here,  but
                      the amount can vary depending on the number and type of
                      parameters.   There  is  no   empirical   formula   for
                      determining the extra amount."

















                                          5







          Page 4-18.  Add the following to the explanation of MEMAVAIL:

                      "FULLHEAP.R86 has been extended to make available up to
                      1  megabyte  of heap space.  MEMAVAIL and MAXAVAIL both
                      return INTEGER values, so if you are  using  more  than
                      32K of heap space, you must declare them as follows:

                          EXTERNAL FUNCTION LMEMAVAIL : LONGINT;
                          EXTERNAL FUNCTION LMAXAVAIL : LONGINT;

                      These functions are both in PASLIB.

          Page 5-1.   The first paragraph in Section 5.1 refers to  the  Intel
                      publication   named  "MCS-86  Macro  Assembly  Language
                      Reference Manual."  This manual is no longer in  print,
                      but  has been replaced by the "ASM86 Language Reference
                      Manual".  The Intel order number for this new manual is
                      121703-002.

          Page 5-3.   In Table 5-1, add the following to  the  explanation  of
                      the Pd option:

                      Unlike the similar MT86 compiler  option,  P  does  not
                      send output to the printer.

          Page 5-9.   In Table 5-3, 320 bytes should be 32 bytes.
































                                          6


