Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - apl1s2.d06
There are 2 other files named apl1s2.d06 in the archive. Click here to see a list.
                 EDIT DESCRIPTIONS FOR APLSF-10-V2                              
                             EDIT 540    FOR APLSF
ASCII sequential files with carriage returns not followed by
linefeeds are not read correctly.
After reading a carriage return, CLRBFI is  called  to  read
the  linefeed.   If  the  character read is not a line feed,
then CLRBFI ignores it.  However, the count of the number of
bytes  left  in  the  buffer  will  be  off by one.  It gets
decremented at INCH.0+2 in XIO.  The file header is  pointed
to by R2.
Increment the byte count if the character read is not a line
                             EDIT 541    FOR APLSF
The  prompt  for  quad  input  always  appears  in  the  TTY
character  set when a file or device has been specified with
the )OUTPUT command.  If the terminal has an  APL  character
set, the prompt is unreadable.
OUTDEV is set up for the )OUTPUT file.  A fake OUTDEV  needs
to be created for the quad prompt.  ZTTYBIT, which specifies
whether the terminal has an APL character set  or  not,  was
not being set correctly in the fake OUTDEV.
Save ZTTYBIT in the fake OUTDEV.
                             EDIT 542    FOR APLSF
Timed input (with .BXTIMELIMIT set) does not work  properly.
The  input terminates if the user types escape or control G,
and .BXTIMEOUT gets set incorrectly.
The HIBER UUO wakes the process  when  a  line  of  terminal
input  is  ready.   Escape  and  control  G  are  valid line
If the input was not terminated with a line feed, and  there
is still some time left, go back and wait some more.
                             EDIT 543    FOR APLSF
When )WIDTH is greater than 360,  long  lines  of  character
output have garbage at the end of the lines.
Routine FJPOUT was not updated when the sizes of  AOBUF  and
OBUF  were  changed.   The ASCII output was overflowing into
the 9-bit data, and being translated recursively.
Use parameters in the code to use the correct buffer  sizes.
Also make sure that there is enough room in the ASCII output
buffer for three times as many  characters  as  are  in  the
9-bit buffer.
                             EDIT 544    FOR APLSF
     5 ^ 0 2 .RO 0 should be a LENGTH ERROR.
     Take allowed an empty right argument of any  rank  when
the left argument is of length 1.
     When the left argument to take  is  of  length  1,  the
right argument must be a scalar or a vector.
                             EDIT 545    FOR APLSF
     Dyadic .IO returns a character result  when  the  right
argument is a character empty.
     The result of dyadic .IO should always be numeric, even
if the result will be empty.  APLSF simply returns the right
argument as the result if it is empty.
     If the right argument to dyadic .IO is  empty  numeric,
return it.  If it is empty character, return a numeric empty
of the same shape.
                             EDIT 546    FOR APLSF
     .BXTRAP is not executed when an error occurs  inside  a
locked function.
     APLSF simply did not check to see if  .BXTRAP  was  set
when  in  checks  to  see  if  the  error is inside a locked
     If .BXTRAP is not empty when an error occurs  inside  a
locked function, set up so it will be executed.
                             EDIT 547    FOR APLSF
     When a locked function gets an error, the SI  stack  is
cut back through all pendent functions.
     When a locked function gets  an  error,  the  SI  stack
should  be  cut  back through all pendent, locked functions.
The first pendent, unlocked function should be suspended, if
there is one.  APLSF isn't doing this.
     Suspend at the first pendent,  unlocked  function  when
cutting the SI stack in this case.
                             EDIT 550    FOR APLSF
     Numeric constants displayed by the function editor  are
not correct in their lower order digits for some settings of
     Edit 421 fixed DISPLAY to correctly display  a  numeric
constant  when it caused )WIDTH to be exceeded.  The line is
wrapped and OUTNUM  is  called  again  to  put  the  numeric
constant on the new line.  OUTNUM accepts the low order word
of a double precision constant in DBPRCN,  which  it  clears
before   OUTNUM  returns.   Edit  421  called  OUTNUM  after
wrapping the line without  restoring  the  proper  value  to
     Save the original value of DBPRCN so it can be restored
if the line is wrapped.
                             EDIT 551    FOR APLSF
     The  )TABS  facility  does  not  operate  properly   in
conjunction with the LAMP (") end-of-line CRLF suppression.
     The )TABS facility on output tries to  replace  strings
of blanks with tabs if the next non-blank character is to be
at a tab stop.  FNTOA  uses  the  line  length  in  OLEN  to
determine  what  column  this  character  is  in.   GOUT was
resetting OLEN to 0 if the previous line ended in ZREM  ("),
which suppresses the ending CRLF.
     Don't let GOUT reset OLEN if  the  last  character  was
ZREM.   This  does  not  affect  adversely  line wrapping or
output that does not end with ZREM.
     Note that ending an output line with LAMP (") in  order
to suppress the CRLF is a bad idea, both because it makes it
difficult to print a line that ends with  a  LAMP  and  also
because  we  will  remove  this  functionality  in  the next
development release.  Multiple .QQ outputs with a final  .BX
output has the same effect, in a more "standard" way.
                             EDIT 552    FOR APLSF
     Reading a /BS file  with  a  word  pointer  beyond  EOF
sometimes  returns  a  value  instead of 0 75 .RO 0.  .BXFLS
also is changed.
     APLSF was doing a USETI to position itself in the  file
before  doing  the  read.   USETI  only takes a 16-bit block
number so if the read was beyond block 2*16, the USETI wraps
the word pointer mod 2*16 and data could be read.
     Rewrite both DOUSETI and DOUSETO in BFILE to do  FILOP.
UUOs  instead  of the USETI and USETO UUOs.  FILOP.  takes a
full 36 bit block pointer and will return EOF if the read is
beyond EOF.