Trailing-Edge
-
PDP-10 Archives
-
BB-5543E-BB_1979
-
documentation/bas2.bwr
There are no other files named bas2.bwr in the archive.
BASIC.BWR
May 1979
COPYRIGHT (C) 1977, 1979 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.
BAS2.BWR Page 2
BASIC.BWR
May 1979
1.0 INTRODUCTION
Since the version 2 release has been packaged, several problems
have been discovered, which are not fixed in version 2(252). The
sections below discribe these problems, and include a DDT patch to fix
each one. It is recommended that the patches below be installed into
the version 2 package.
2.0 THE DELETE COMMAND
[SYMPTOM]
The DELETE command does not invalidate the compiled program so that
a START command will be allowed, and a RUN command will not recompile
the program. Therefore the program will be executed as though the lines
deleted were not actually deleted.
[DIAGNOSIS]
The DELETE command does not properly invalidate the lower fork.
[CURE]
Make the routine SCDELETE clear the lower fork status flags TEAVLF
and TEASYMTAB. The following DDT patch may be installed into version 2
to correct this problem:
@ENABLE
$GET SYS:BASIC
$DDT
DDT
SCDELETE+4/ MOVEI AP,KLIN.P+1 JRST BASPAT<TAB>
BASPAT/ ? FX253: TRZ 40000<LF>
FX253+1/ 0 TLZ 100<LF>
FX253+2/ 0 MOVEI AP,KLIN.P+1<LF>
FX253+3/ 0 JRST SCDELETE+5<LF>
FX253+4/ 0 BASPAT:<CR>
MOVE @770001$X
$
MOVEM 116$X
$
^Z
$SAVE SYS:BASIC.EXE 0 120
BASIC.EXE.2 Saved
$DISABLE
@
BAS2.BWR Page 3
3.0 STACK OVERFLOW
[SYMPTOM]
If a stack overflow occurs, an Illegal Instruction trap may be
generated.
[DIAGNOSIS]
The routine that checks for a stack overflow after the BLIS10 ADD
P,[n,,n] does not properly setup the AC that indicates which interrupt
is to be generated.
[CURE]
Make sure the right half of the AC is zero. Until the next release
of BASIC-PLUS-2/20, the following DDT patch can be installed.
@ENABLE
$GET SYS:BASOTS
$DDT
DDT
MOVE 440006$X
$
MOVEM @770001$X
$
FXSTKF/ HRLI V1,LWR%IN# FX254: HRLZI V1,LWR%IN<CR>
MOVE @770001$X
$
MOVEM 440006$X
$
^Z
$SAVE SYS:BASOTS 440 640
$DISABLE
@
4.0 PRINT USING AND THE NUL CHARACTER
[SYMPTOM]
Attempting to output NULs (ASCII characters having the value 0)
with PRINT USING generates the error:
? 410 Illegal character in output .......
This used to work under version 1A.
[DIAGNOSIS]
Certain characters that change the current position of the TTY:
output line (by moving the cursor other than 1 position to the right)
are specified as 'special' characters, and are marked as such by an
internal special character table. Attempting to print any of these
characters (backspace, vertical tab, line feed, etc..) with PRINT USING
generates an error as indicated above. The character NUL is included in
this table because it originally performed the function of reseting the
line position back to 0 (it was called EOL). However, a bug in verion
1A prevented the proper detection of some special characters, and NUL
was allowed to be output by PRINT USING. For versions after 1A, we have
changed the function of NUL for unformatted output to do nothing, to
allow this character to be used as a harmless 'fill' or 'timing'
character for video terminals that have cursor addressing.
[CURE]
Allow NULs to be output by PRINT USING (the TAB character is
already allowed). Until some release of BASIC-PLUS-2/20 after version
2, the following DDT patch can be applied to eliminate the problem.
@ENABLE
$GET SYS:BASOTS
$DDT
DDT
MOVE 440006$X
$
MOVEM @770001$X
$
OTSPAT/ ? FX255: AND V,R2<LF>
FX255+1/ 0 MOVEI R1,1<LF>
FX255+2/ 0 CAIN V1,0<LF>
FX255+3/ 0 SETZ R1,0<LF>
FX255+4/ 0 AND V,R1<LF>
FX255+5/ 0 JRST P.STR+1075<LF>
FX255+6/ 0 OTSPAT:<CR>
P.STR+1074/ AND V,R2 JRST FX255<CR>
MOVE @770001$X
$
MOVEM 440006$X
$
^Z
$SAVE SYS:BASOTS 440 640
$DISABLE
@