Google
 

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
@