Google
 

Trailing-Edge - PDP-10 Archives - basic17f - bas17f.doc
There are no other files named bas17f.doc in the archive.


BASIC.DOC -- Changes from V17E(143) TO V17F(244)
September 1981






























COPYRIGHT (C) 1972,1981 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
BAS17F.DOC                                                      Page 2


BASIC.DOC -- Changes from V17E(143) TO V17F(244)
September 1981





1.0  SUMMARY

     DECsystem-10 BASIC is a  extended  implementation  of  the  BASIC
programing  language.   This  release  of the product is a maintenance
release which incorporates all known patches to date.

     BASIC-10 runs on all supported TOPS-10  monitors.   This  release
supercedes all previous versions of BASIC-10.

     The   current   documentation   is   the    DECsystem-10    BASIC
Conversational  Language  Manual  (order code DEC-10-LBLMA-A-D).  This
.DOC file together with the current manual will be adequate  for  most
users of the product to make use of all the facilities.





2.0  EXTERNAL CHANGES

     There are no external changes visible to the user (other than bug
fixes which are listed in section 5.0 of the document).





3.0  KNOWN BUGS AND DEFICIENCIES

     The intrinsic functions COS, TAN,  and  COT  are  sometimes  only
accurate to 4 digits for arguments near intergral multiples of PI/2.

     The following is a list of some of the non-standard  features  of
BASIC-10 from the ANSI Standard for Minimal BASIC.

     1.  The value of  a  numeric  variable  cannot  be  greater  than
         1.70141E38  or  less  than  1.5E-39.   If  the  result  of an
         expression is outside this range a default value is  assigned
         (either  machine  infinity  or zero).  If a value outside the
         range is assigned to a variable using an INPUT statement, the
         input will be rejected.  (ANSI x3.60 5.4)

     2.  The multiplier field in the exponential notation form (to the
         right  of the "E") cannot exceed 2 digits.  Leading zeros are
         not ignored and this field will be truncated after the second
         digit.   The  mantissa  always  prints  6 significant digits.
         (ANSI X3.60 5.2)
BAS17F.DOC                                                      Page 3


     3.  In evaluating the power of a negative number the system  will
         take  the absolute value of and raise it to a power and issue
         a non-fatal error message.  Raising a number  to  a  negative
         power does not produce an error.  (ANSI X3.60 7.5)

     4.  The maximum length of a string is 132 characters.
         (ANSI X3.60 5.6)

     5.  A numeric or floating point number in a  subscript  field  is
         truncated to an integer (not rounded).  (ANSI X3.60 6.4)

     6.  No "OPTION BASE n" statement is implemented in this  version.
         "OPTION BASE 0" is always assumed.  (ANSI X3.60 15.3)

     7.  A numeric formula or a floating point variable used in an "ON
         n  GO  TO" statement is truncated to an integer.  (ANSI X3.60
         10.4)

     8.  The same variable name may be used as a simple  variable  and
         as an array.  A two dimensional array may be referenced using
         only the first subscript, the second  subscript  defaults  to
         zero.  (ANSI X3.60 6.4)

     9.  In string  comparisons  using  the  "IF"  statement  trailing
         spaces in the strings are ignored.  (ANSI X3.60 10.4)

    10.  The control variable in a "FOR"  loop  exiting  by  its  NEXT
         statement,  is  equal  to  the  last value used;  the loop is
         exited when the control  variable  is  equal  to  the  limit.
         (ANSI X3.60 11.4)

    11.  A number with a magnitude of less than 1 will always print  a
         leading  zero  to the left of the decimal point.  (ANSI X3.60
         12.4)

    12.  The argument of a "TAB" function is evaluated then  truncated
         to  an integer.  The print columns are numbered begining with
         0 to 71.  A "PRINT TAB(5);"X"" will print a "X" in the  sixth
         column of the output device.  (ANSI X3.60 12.4)

    13.  Terminal input will continue to re-prompt  and  accept  input
         data  untill  the  "INPUT" statement is satisfied or an error
         occurs.  If an error occurs while  inputting  data  an  error
         message   is   issued   and  the  data  must  be  resupplied.
         Extraneous data is ignored.  (ANSI X3.60 13.4)

    14.  Datum  in  a  "DATA"  statement  is  assigned  by  a   "READ"
         statement,  variables  are  assigned  by  the  type  of  data
         requested (string or numeric) then by position  in  the  data
         list.   A read of a string variable will result in the system
         assigning the first available string to the variable (not the
         first available datum from the data list).  (ANSI X3.6014.4)
BAS17F.DOC                                                      Page 4


4.0  INSTALLATION INSTRUCTIONS

4.1  Files Included On This Tape

     This tape contains three save sets which  contain  the  following
files:

     DOCUMENTATION save set

     o  BAS17F.DIR           - Directory of the tape
     o  BAS17F.DOC           - This file
     o  BASIC.HLP            - The help file

     EXECUTABLE save set

     o  BASIC.EXE            - The BASIC-10 program

     SOURCES save set

     o  BASICL.MAC           - The low segment source
     o  BASICH.MAC           - The high segment source
     o  QUEUER.REL           - The QUEUE command interface
     o  BASIC.CTL            - The control file to build BASIC.






4.2  Installation

     The .EXE file should be placed on SYS:.  The .HLP file should  be
placed on HLP:.

     It is recomended that the .DOC file be placed on DOC:   and  make
this file available to users and that they read this file.





5.0  INTERNAL CHANGES



Edit    Description
----    -----------

144-152  RESERVED FOR DIGITAL

153  PROBLEMS ON "RND" FUNCTION WITH KI AND KA PROCESSORS.

154  NESTED FN'S SOMETIMES PICK UP THEIR ARGUMENTS
     INCORRECTLY.
BAS17F.DOC                                                      Page 5


155  RESERVED FOR DIGITAL

156  INPUTTING SUBSCRIPTED VARIABLES FROM TTY: SOMETIMES
     FAILS AFTER THE USER HAS TYPED INCORRECT INPUT.

157  WHEN INPUTTING FROM A SEQUENTIAL ACCESS FILE 
     CHARACTERS XON(17) XOFF(19) ARE IGNORED AND A 
     STRING WHICH BEGINS WITH AN APOSTROPHE(39) CAUSES
     THE REST OF THE STRING TO BE IGNORED.

160  RESERVED FOR DIGITAL

161  RESERVED FOR DIGITAL

162  ERROR MESSAGE "FOR WITHOUT NEXT IN LINE n"
     SOMETIMES CONTAINS EMBEDDED GARBAGE AFTER THE WORD
     NEXT.

163  PROGRAMS WHICH CONTAIN FILE STATMENTS SOMETIMES
     ILL MEM REF OR ILL UUO BECAUSE THE BOUNTARIES OF 
     THE VARIOUS STORAGE AREAS IN CORE ARE NOT ADJUSTED
     CORRECTLY AT THE END OF THE VCHBUF ROUTINE.

164  WRITING A CONCATENATED STRING WHOSE SIZE IS A
     MULTIPLE OF 5 TO A QUOTED FILE CAUSES AN ILL MEM 
     REF AT EXECUTION TIME.

165  STRANGE ERROR MESSAGES ARE RETURNED WHEN LINE 
     NUMBERS CONTAIN MORE THAN 5 DIGITS.

166  SETTING A MATRIX TO THE TRANSPOSE OF ITSELF IS TREATED
     AS A SPECIAL CASE BY THE COMPILER AND A PHANTOM MATRIX 
     IS CREATED TO STORE THE INTERMEDIATE RESULT. HOWEVER,
     THE AREA SET ASIDE FOR MATRICIES DOES NOT INCLUDE SPACE 
     FOR THE PHANTOM MATRIX ALTHOUGH IT IS INTENDED TO. THIS
     CAUSES THE LAST MATRIX DEFINED IN THE PROGRAM TO BE 
     PUSHED OUT OF THE MATRIX AREA INTO THE STRING VECTOR
     AREA, WHICH CAUSES AN ILL MEM REF IF BASIC TRIES TO 
     PRINT THE DISLOCATED MATRIX.

167  RESERVED FOR DIGITAL

170  RESERVED FOR DIGITAL

171  RESERVED FOR DIGITAL

172  RESERVED FOR DIGITAL

173  RANDOM ACCESS SCRATCH DOES NOT SAVE FILE PROTECTIONS.
     PROTECTIONS ARE NOT PRESERVED BECAUSE AN UPDATE ENTER
     DOES NOT MODIFY THE PROTECTION. THE OLD PROTECTION
     SHOULD BE USED ON THE PREVIOUS ENTER.

174  IN PRINT USING ROUTINES ROUNDING UP IS INCORRECT.
BAS17F.DOC                                                      Page 6


175  RESERVED FOR DIGITAL

176  RESERVED FOR DIGITAL

177  INPUTTING AN UNACCEPTABLE CONSTANT TO AN INPUT STATMENT
     FOR A SUBSCRIPTED NUMERIC VARIABLE MESSES UP THE 
     PUSHDOWN LIST AND THEREFORE RESULTS IN VARIOUS FAILURES.

200  HAVE BASIC GIVE A MORE APPROPRIATE ERROR MESSAGE WHEN
     IT CANT TRANSLATE A CHAIN STATIMENT.

201  SEE EDIT 164.

202  BASIC CANNOT QUEUE FILES WHEN SPOOLING IS SET OFF
     IN THE MONITOR.

203  BASIC WITH EDIT 173 INSTALLED PRODUCES A DATE75 BUG.

204  CORRECTIONS TO EDIT 177.

205  RESEQUENCE COMMAND LOOSES TABS AND SPACES APPEARING 
     AFTER REFERENCES TO OTHER LINE NUMBERS IN A BASIC
     PROGRAM COMMAND LINE.

206  IF THE TTY IS ASSIGNED DSK THE TTYIN ROUTINE OPENS
     TTY  NO CHECK IS MADE FOR VALID DEVICE AND WILL 
     REMAIN IN A RUN STATE.

207  ADD CODE TO HANDLE "MAT INPUT" OF A MATRIX.

210  REMOVE TEST THAT FOURCES A NUMBER TO PRINT IN 
     EXPONIENTIAL NOTATION. (THE TEST WAS INACCURATE)

211  ILL MEM REF WHEN EXECUTING COMPLEX STRING CONCATENATIONS

212  EDIT 206 DOES NOT RETURN CORRECTLY TO THE MONITOR
     DOESNT ALLOW FOR A CONTINUE

213  A RANDOM ACCESS FILE CAN GET DAMAGED IF THE USER TYPES
     A ^C WHILE UPDATING THE FILE.

214  CALLING STRING FUNCTIONS WITH ILLEGAL ARGUMENTS 
     PRODUCES AN ILL MEM REF.

215  ATTEMPTING TO WRITE A NUMERIC RANDOM ACCESS RECORD 
     HIGHER THAN 2**18 PRODUCES A SYSTEM ERROR.

216  ONE EXTRA DATA LINE IS WRITTEN TO A LINE NUMBERED FILE.

217  EDIT 207 IMPLEMENTS MAT INPUT STATEMENT FOR MATRICIES
     BUT HAS THE SIDE EFFECT THAT A REFERENCE TO A 
     UNDIMENSIONED VECTOR PRODUCES AN ARRAY OF (10,10).

220  DOING A SCRATCH OF A RANDOM ACCESS FILE CAN PRODUCE
     A SYSTEM ERROR.( replaced by edit 227)
BAS17F.DOC                                                      Page 7



221  BENING A SEQUENTIAL ACCESS FILE IN RANDOM ACCESS MODE
     USING THE FILES STATMENT CAUSES GARBAGE TO BE WRITTEN
     TO THE FILE

222  BASIC DETECTS A RECURSIVE SUBROUTINE CALL ONLY AFTER THE
     SECOND CALL IS MADE.

223  CODE CHANGES FOR MACRO V52 AND V53 PLUS ALL KNOWN
     REVISION HISTORY.

224  LOW SEGMENT COMMON I/O INSTRUCTIONS ARE BEING 
     OVERWRITTEN RESULTING IN EXECUTION OF ILL UUOS.

225  THE CORE MANAGEMENT ROUTINES CAN LOSE TRACK OF WHERE 
     DYNAMICALLY ALLOCATED APPEND BLOCKS BEGIN, RESULTING
     IN AN ILL MEM REF WHILE ADDRESSING WITH RANDOM APPEND
     BLOCK DATA. ALSO, APPEND BLOCK STRING CAN BECOME LOST
     DURING CORE EXPANSION, CAUSING RANDOM CONCATENATION
     OPERATIONS TO FAIL.

226  IF AN INPUT STATMENT IS TERMINATED BY A ^Z, GIVE
     AND END OF FILE MESSAGE AND EXIT CLOSING ALL FILES.

227  ?SYSTEM ERRORS RANDOMLY OCCUR WHEN DOING SCRATCHES OF
     RANDOM FILES. ACTUALLY DUE TO A MONITOR BUG, BUT
     CORRECTABLE BY SPECIFING A WORD COUNT BEFORE DOING 
     INITIAL WRITE TO THE RANDOM FILE.(REPLACES EDIT 220)

230  THE RESULT OF A FLOATING DIVIDE CHECK CAN END UP BEING
     MINUS INFINITY WHEN IT SHOULD BE POSITIVE. MAKE THE
     DIIVIDE CHECK ROUTINE PRESERVE THE SIGN DURING FIXUP.

231  RESEQUENCE COMMAND DOES NOT DETECT SOME INVALID
     ARGUMENTS SUCH AS IN ILLEGAL STARTING LINE NUMBER
     OR A ZERO INCREMENT.

232  THE SPECIAL CASE OF "IF ASC(") GOTO NNN" TRIPS UP THE
     RESEQUENCER, TREATS THE REST OF THE AFTER THE QUOTE
     AS A STRING LITERAL.

233  STOP CORE MANAGER FROM ALLOCATING EXTRA CORE WHEN 
     NOT NECESSARY, ALSO WLIMINATE SOME OBSCURE BUGS IN THE
     CORE MANAGER WHICH COULD CAUSE STRING CURRUPTION.

234  THE CATALOG COMMAND SHOULD LIST FILES IN THE DEFAULT 
     DIY PATH OR THE PATH ASSOCIATED WITH THE SPECIFIED
     DEVICE. TO ALLOW WORKING IN SFD'S ALSO THE SAVE/REPLACE
     CODE SHOULD NOT LOSE TRACK OF A FILE JUST WRITTEN WHILE
     IN A SFD.

235  ASSIGNING "NUL: TTY:" CAUSES BASIC TO LOOP AT STARTUP.

236  SAVE X1 IN MEMORY INSTEAD OF ON THE STACK DURING  APR
     INTERUPT PROCESSING THIS IS IN CASE IT WAS DDT THAT 
BAS17F.DOC                                                      Page 8


     CAUSED THE INTERUPT(P WILL NOT BE THE STACK POINTER)

237  PRINT USING SPECIFING A NUMERIC IMAGE WITH NO DECIMAL
     OR EXPONENT CAUSES MANY 8 DIGIT INTEGER NUMBERS TO BE
     PRINTED OUT WITH THE LAST DIGIT INCORRECT.

240  ATTEMPTING TO INVERT A MATRIX GREATER THAN 64 BY 64 
     CAUSED AN ILL MEM REF VECT1 AND VECT2 WHICH HOLDS EACH
     PIVOT POINT AS IT IS FOUND WAS 64 WORDS LONG.

241  MODIFIED QUEUE TO BE ABLE TO QUEUE FILES IN UP TO 
     5 SFD'S. USES THE NEW QUEUE. MONITOR CALL(MAKES THE
     PRODUCT DEPENDENT ON THE 7.01 MONITOR).ALSO, IMPROVED
     THE METHOD BASIC CHECKS FOR SYSTEM SPOOLING.

242  FIX EDIT 162

243  FIXED PROBLEMS IN EDIT 224 AT QLSPEC:
     IN LOW SEGMENT.

244  REPLACE OLD CODE TO MAKE QUEUE COMMAND WORK
     WITH FIELD IMAGE GALAXY (VERSION 2)





6.0  SUGGESTIONS

     None.


[End of BAS17F.DOC]