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]