Google
 

Trailing-Edge - PDP-10 Archives - BB-5137E-BM - aplsf/doc/aplsf.rnd
There are 4 other files named aplsf.rnd in the archive. Click here to see a list.
.comment This .RND file produces the .DOC files for APLSF and
.comment APL-BASIC, -10 and -20
.COMMENT VARIABLE VSF PRODUCES THE SF DOC FILE (DEFAULT)
.COMMENT VARIABLE VB PRODUCES THE BASIC DOC FILE
.VR VSF S B
.VR VB B S
.comment variable VTWENTY produces the TOPS-20 .DOC file (default)
.comment variable VTEN produces the TOPS-10 .DOC file
.vr VTWENTY 2 1
.vr VTEN 1 2
.;30-Aug-79
.lm0.rm70.f.j.sp1.ts5
.if vb
APL.DOC
.else vb
APLSF.DOC
.endif vb
#--#Changes from V1C(315) to V2(435)
.br
September 1979
.fg30
COPYRIGHT (C) 1976,1979 BY
.BR
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
.B2
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.
.B1
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.
.B1
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
.if vb
.t APL.DOC
.else vb
.t APLSF.DOC
.endif vb
.pg
.if vb
APL.DOC
.else vb
APLSF.DOC
.endif vb
#--#Changes from V1C(315) to V2(435)
.br
September 1979
.b3.lm0
.hl 1 Summary
.if vb
APL is the basic
.else vb
APLSF is the
.endif vb
implementation on the
.if VTEN
DECsystem-10
.else VTEN
DECSYSTEM-20
.endif VTEN
of the APL language with shared system functions and system variables.
It runs on a
.if VTEN
KI-10 or KL-10 processor under release 6.03A or later of the TOPS-10
monitor, and requires VMSER on the KI-10.  It requires no
other software modules during execution,
.else VTEN
KL-20 processor under release 3A or later of the TOPS-20
monitor.  It requires the compatibility package, PA1050,
during execution,
.endif VTEN
and is documented in the APLSF Programmer's Reference Manual
.if VTEN
(DEC-10-LPLSA-A-D).
.else VtEN
(DEC-20-LASFA-A-D).
.endif VTEN
Version 2 is documented in the TOPS-10/20 APLSF Language Manual
(AA-H200A-TK).
.b1
Version 2 runs under release
.if VTEN
6.03A or later of the TOPS-10 monitor.
.else VTEN
3A or later of the TOPS-20 monitor.
.endif VTEN
It has been tested in-house under
.if VTEN
6.03A and 7.00.
.else VTEN
3A and 4.
.endif VTEN
.b1
The reason for this release is to correct outstanding bugs in
.if vb
APL
.else vb
APLSF
.endif vb
Version 1C and to incorporate several functional enhancements
as described below.
.b1
.if vb
APL
.else vb
APLSF
.endif vb
Version 2 fully supersedes Version 1C and includes edits
_#316 to _#435.
.pg
.hl 1 External Changes
.ls
.le;The current setting of )MAXCOR is now saved across a
)CALL, so it is possible to return from a )CALL even if
)MAXCOR had been expanded in the workspace before the )CALL.
.le;There are now TTY mnemonics for diamond (.DM), left
bracket (.LB), left tack (.LK), right bracket (.RB), and right
tack (.RK).
.le;Nonprinting elements of the atomic vector (.BXAV) are
now displayed as squish quad (.SQ).  Note that this is not a valid
character and cannot be typed to APL.
.le;When doing APL output to an ASCII sequential file while
in TTY mode, the default terminal type is now LA36 instead of
.if VTEN
2741.
.else VTEN
2741 (which is not supported by TOPS-20).
.endif VTEN
.le;Error numbers are now catenated to the front of error
messages.  Also, the error line printed when an error occurs
occasionally has fewer added spaces and the caret position
is sometimes one position to the right of where it used
to be.
.ifnot vten
.le;LIB: now refers to whatever the user has logical name
LIB: defined to be, instead of the APL system library.
LIBn: still refers to the system library.
.endif vten
.ifnot vb
.le;It is now possible to open a PTY as an ASCII
sequential file.  As noted in the next item, lower case
input will be converted to upper case just as with any
ASCII sequential file.  The new system variable .BXTIMEOUT
will be set if the input was not terminated with a line feed.
.le;When doing TTY mode input from ASCII sequential files,
lower case characters are converted to uppercase (instead of
random operators).
.endif vb
.le;The omega function (.OM) has been removed from the version 2 manual.
Omega still works in version 2 but will not be supported after version 2.
The .OM symbol has other proposed uses in the APL language and the optimizing
effect of .OM will be implememted for reduce-iota-rho.
.le;The definitions of I-beams (.IB) have been moved to an appendix of the
version 2 manual.  They are still supported in version 2 and most will still
be supported in later versions for compatibility with other vendors.  However,
we strongly recommend that system variables and functions be used instead of
I-beams.
.le;Quote-quad (.QQ) or quad-del (.QD) input following .QQ or .QD output
precedes the input string with a string of blanks equal in length to the
preceding output.  If such preceding output was longer than 390 characters
(the maximum input length), a LINE TOO LONG error occurs and correct input
is awaited.
.le;For niladic function F which returns no value, the expressions "1;F",
"1+F" and "F+1" give value errors since a value is needed by the primitive
function but F did not return one.  The expression "F;1" returns 1 to be
consistent with the expression "F", which executes F but prints nothing.
Note that the ";" function is a monadic output catenator, operating on the
expression to its right.  ";" is not intended to be a statement separator.
.ifnot VTEN
.le;On the -20,
.if VB
GENBAS
.else VB
GENSF
.endif VB
can now set the device for the library area and the )HI file as well as the
directory. The default is now PS: instead of DSK: so
.if VB
APL
.else VB
APLSF
.endif VB
will be able to find these areas even if you are not connected to PS:.  You
must be connected to the device specified for these areas when running
.if VB
GENBAS
.else VB
GENSF
.endif VB
in order for the generation procedure to be successful.
.ifnot VB
Notice that this device is also used for the billing file.
.endif VB
.endif VTEN
.els
.hl 2 Functional Changes
.list
.if vten
.le;The HIGH segment of
.if VB
APL
.else VB
APLSF
.endif VB
has grown by about 11 pages.  Users should monitor their memory use with
version 2 and if they notice substantial performance loss due to excessive
paging activity, they should ask their system administrator to raise the
global physical page limit on the system.
.else VTEN
.le;_.BXMTP has been modified to simulate some of the TAPOPs
not in PA1050.  It still has problems if the file has not
been opened.  Specifically, density and mode cannot be set from inside APL
before the file is opened.  Use the SET TAPE Exec command to set these
tape parameters.
.endif vten
.els
.hl 2 Functional Additions
.hl3 Error trapping
The following system variables and functions have been added
to allow program handling of error conditions and other events.
.list
.le;_.BXBREAK#-#This is a monadic function which causes
execution to terminate, suspending the current function and
entering immediate mode.  It prints its argument before
breaking to the terminal.
.le;_.BXERROR#-#This is a variable which is set by APL to
the error message for the last error.  (It contains the text
which is normally printed on the terminal.)
.ifnot VB
.le;_.BXSIGNAL#-#This is a dyadic function which signals an
error from the current function.  It causes the current
function to terminate before generating the error.  Its
right argument is either a valid APL error or a user defined
error in the range 500-999.  Its optional left argument is
the message to be associated with the error.
.le;_.BXTRAP#-#This variable is similar to .BXLX.   It can
be set to an expression which will be executed when an error
occurs.  
.endif VB
.els
.hl3 Limiting input wait
The following two variables allow a program to limit the
amount of time a user is given to respond to quote-quad or
quad-del input.
.list
.le;_.BXTIMELIMIT#-#The number of milliseconds to wait for
user input.  If 0, then no limit.  If -1, no waiting
is done (only characters which were typed ahead are read).
.le;_.BXTIMEOUT#-#Flag indicating whether or not user timed
out on last input.  (This flag is also used with PTYs to
indicate whether or not last input was terminated with a LF).
.els
.hl 3 New Character Arrays
The following system variables are useful subsets of .BXAV.
.list
.le;_.BXALPHA#-#The 27 letters, .LD-Z.
.le;_.BXALPHAU#-#The 27 underscored letters, .Z@-.ZZ.
.le;_.BXASCII#-#The 128 ASCII codes.  These codes are sent
to files as is, regardless of the terminal type.  They are
useful when doing graphics.
.le;_.BXCTRL#-#The 32 control characters, octal 0-37.
.le;_.BXNUM#-#The 10 digits, 0-9.
.els
.ifnot vb
.hl 3 New File Functions
.list
.le;_.BXRENAME#-#This is a dyadic system function which
allows a user to rename a file from within APL.  Its right
argument is the channel associated with the file to be
renamed.  Its left argument is the new filespec.
.le;_.BXAPPEND#-#This is a dyadic system function which
allows a user to append data to /BU or /DA files.  Its left
argument is the data item to be appended to the file.  Its
right argument has the same format as the right argument to
an output quad (.OQ) and specifies how the data is to be
formatted in the file.
.le;Two new file types, /AS* and /BS*, have been added to
allow users to append to ASCII and binary sequential files.
These file types are analogous to /IS*.
.els
.endif vb
.pg
.hl 1 Known Bugs And Deficiencies
.hl 2 Deficiencies And Restrictions
The known deficiencies and restrictions in
.if vb
APL
.else vb
APLSF
.endif vb
are:
.list
.le;The caret symbol indicating where an error in an APL
statement was first detected is sometimes displayed in the wrong
position.  With the introduction of error trapping and
_.BXERROR, it is desirable to fix this.  We will attempt to
do so in the future.  With this in mind, we recommend
that users do not write programs which depend on the current
positioning of the caret.
.le;It is not possible to display the trace or stop vector of a
function.  This is a restriction which will not be removed in the
foreseeable future.
.le;It is impossible to enter an invalid TTY mnemonic in a character
string when using a TTY terminal, just as it is impossible to enter
an illegal overstrike from an APL terminal.  This is a permanent
restriction.
.ifnot VB
.le;Monadic domino uses an inordinate amount of core.  This is a
deficiency due to the algorithm used, which does monadic domino by
simulating a dyadic domino with a left argument of the identity matrix.
Thus, it must construct a double precision identity matrix.
.endif vb
.end list
.hl 2 Outstanding Bugs
The known outstanding bugs in
.if vb
APL
.else vb
APLSF
.endif vb
are:
.b1
.list
.le;Erasing a pendent or a suspended function can cause a SYSTEM ERROR,
depending on the state of the function when erased.
.le;The compression of a zero-by-n matrix returns a length error when
the left argument is an n-element vector, but works if it is a scalar.
.le;A niladic branch inside a multistatement line will fail with
a SYNTAX ERROR.
.ifnot VTEN
.le;Linefeeds typed during linefeed editing may appear as carriage
return linefeed pairs.  This is a temporary restriction which will
be corrected in version 4 of the compatibility package.  A
patch to PA1050 which solves this problem is included in the
beware file on this tape
.if vb
(APL.BWR).
.else vb
(APLSF.BWR).
.endif vb
.le;The )LIB command updates the access dates of the listed files.
In particular, )LIB/A updates the access dates to the current date
before printing them.  This is a problem with the compatibility
package.
.endif VTEN
.end list
.pg
.hl 1 Installation Instructions
.hl 2 Files Included \on This Tape
.if vb
There are three savesets on this tape: DOCUMENTATION, BINARIES and REL
LIBRARIES.
.else vb
There are four savesets on this tape: DOCUMENTATION, BINARIES, WSINT
and REL LIBRARIES.
.endif vb
.b1;.lm18;.ts18
.i-18
The contents of DOCUMENTATION are:
.b1
.if vb
.i-13
APL.DOC	This documentation file.
.b1.i-13
APL.BWR	The beware file, containing DDT patches.
.b1.i-13
APL.HLP	The HELP message to respond to the monitor HELP command.
.else vb
.i-13
APLSF.DOC	This documentation file.
.b1.i-13
APLSF.BWR	The beware file, containing DDT patches.
.b1.i-13
APLSF.HLP	The HELP message to respond to the monitor
HELP command.
.endif vb
.b1;.i-13
APLSF.RNH	The RUNOFF input for the HELP file.
.b1.i-13
APLSF.RND	The RUNOFF input for the .DOC file.
.b1;.i-18
The contents of BINARIES are:
.b1;.i-13
.if vb
APL.EXE	The APL executable file.
.if VTEN
.b1;.i-13
APL.MAP	The LINK MAP for APL.EXE.
.b1;.i-13
DAPL.EXE	The APL executable file with DDT loaded.
.endif VTEN
.b1;.i-13
GENBAS.EXE	Generation program for APL. See below for its use.
.else vb
APLSF.EXE	The APLSF executable file.
.if VTEN
.b1;.i-13
APLSF.MAP	The LINK MAP for APLSF.EXE.
.b1;.i-13
DAPLSF.EXE	The APLSF executable file with DDT loaded.
.endif VTEN
.b1;.i-13
GENSF.EXE	Generation program for APLSF. See below for its use.
.b1;.i-13
BILING.1	The APLSF workspace which processes the APL billing file.
.endif vb
.ifnot vb
.b1;.i-18
The contents of WSINT are:
.b1;.i-13
APLCNV.DOC	DOC file for the interchange package.
.b1;.i-13
.if vten
TENTAP.EXE	Program to read/write interchange tapes.
.else vten
APLTAP.EXE	Program to read/write interchange tapes.
.endif vten
.b1;.i-13
WSIN.APL	Workspace for conversion to APLSF.
.b1;.i-13
WSOUT.APL	Workspace for conversion from APLSF.
.endif vb
.b 1;.i-18
The contents of REL LIBRARIES are:
.if VB
.if VTEN
.b1;.i-13
APLB12.REL	REL Library for APL-BASIC-10 v2.
.b;.i-13
APLB12.LNK	LINK indirect file for APL-BASIC-10 v2.
.b;.i-13
APLB12.DEB	LINK/DDT indirect file for APL-BASIC-10 v2.
.b;.i-13
APLH12.REL	REL Library for GENBAS-10 v2.
.b;.i-13
APLH12.LNK	LINK indirect file for GENBAS-10 v2.
.else VTEN
.b1;.i-13
APLB22.REL	REL Library for APL-BASIC-20 v2.
.b;.i-13
APLB22.LNK	LINK indirect file for APL-BASIC-20 v2.
.b;.i-13
APLH22.REL	REL Library for GENBAS-20 v2.
.b;.i-13
APLH22.LNK	LINK indirect file for GENBAS-20 v2.
.endif VTEN
.else VB
.if VTEN
.b1;.i-13
APLS12.REL	REL Library for APLSF-10 v2.
.b;.i-13
APLS12.LNK	LINK indirect file for APLSF-10 v2.
.b;.i-13
APLS12.DEB	LINK/DDT indirect file for APLSF-10 v2.
.b;.i-13
APLG12.REL	REL Library for GENSF-10 v2.
.b;.i-13
APLG12.LNK	LINK indirect file for GENSF-10 v2.
.b;.i-13
APLW12.REL	REL Library for APLSF-10 v2 WSINT.
.b;.i-13
APLW12.LNK	LINK indirect file for APLSF-10 v2 WSINT.
.else VTEN
.b1;.i-13
APLS22.REL	REL Library for APLSF-20 v2.
.b;.i-13
APLS22.LNK	LINK indirect file for APLSF-20 v2.
.b;.i-13
APLG22.REL	REL Library for GENSF-20 v2.
.b;.i-13
APLG22.LNK	LINK indirect file for GENSF-20 v2.
.b;.i-13
APLW22.REL	REL Library for APLSF-20 v2 WSINT.
.b;.i-13
APLW22.LNK	LINK indirect file for APLSF-20 v2 WSINT.
.endif VTEN
.endif VB
.if vb
.b1;.lm0
The following file is not distributed. It is generated by APL.
.b1;.lm18;.i-13
APLHSF.APL	The APL HI file, if a HI message is desired.
.else vb
.b1;.lm0
The following two files are not distributed. They are generated by APLSF.
.b1;.lm18;.i-13
APLHSF.APL	The APLSF HI file, if a HI message is desired.
.b1;.i-13
ACCTSF.APL	The APLSF accounting file.
.endif vb
.b1;.lm0
The default is to put
.if VTEN
.if vb
APL.EXE and GENBAS.EXE on SYS:[1,4] and APL.HLP on HLP:[2,5].
.else vb
APLSF.EXE and GENSF.EXE on SYS:[1,4], APLSF.HLP on HLP:[2,5],
and BILING.1 on APL:[5,31].
.endif vb
.else VTEN
all files on the subsystem area PS:<SUBSYS>, and to make the APL library
area be PS:<SUBSYS>.
.endif VTEN
There is no need to put the files from the REL LIBRARIES saveset on disk.
.hl 2 Changing \the Default Installation Parameters
The default installation parameters are as follows:
.b1.lm10
.i-5
The installation name is
.if VTEN
DECSYSTEM-10
.else VTEN
DECSYSTEM-20
.endif VTEN
.if vb
APL-BASIC.
.else vb
APLSF.
.endif vb
.if VTEN
.i-5
Two PPN's which differ only in the project number do not belong
to the same programmer.
.endif VTEN
.i-5
The automatic save facility, .BXAUS, is off.
.i-5
The structure used for the HI file and the library is
.if VTEN
APL:.
.else VTEN
PS:.
.endif VTEN
.ifnot vb
.i-5
The name of the accounting file is ACCTSF.APL.
.i-5
The directory used for the accounting file is
.if VTEN
[5,31].
.else VTEN
_<SUBSYS>.
.endif VTEN
.endif vb
.i-5
The directory used for the HI file and the library is
.if VTEN
[5,31].
.else VTEN
_<SUBSYS>.
.endif VTEN
.i-5
The default value of )MAXCOR (and thus the default maximum
workspace size) is
.if VTEN
20K.
.else VTEN
40P.
.enDif VTEN
.if VTEN
.i-5
The default file protection for permanent files is 000 (system standard).
.i-5
The default file protection for library workspaces is 100.
.endif VTEN
.lm0.b1
If a change in the parameters is desired, put the .EXE file on device
DSK:, run
.if vb
GENBAS.EXE
.else vb
GENSF.EXE
.endif vb
and answer the questions. The program updates the .EXE file. Then rename
and distribute the different files to the appropriate disk structures
and directories.
.hl 2 Creating \a HI Message
If you wish a HI message, login
.if VTEN
under _[1,2_], sign on
.else VTEN
as the operator, sign on
.endif VTEN
.if vb
APL,
.else vb
APLSF,
.endif vb
and execute the command
.b1;.i5
)HI 'THIS IS MY HI MESSAGE'
.b1;.lm0
Then sign off
.if vb
APL.
.else vb
APLSF.
.endif vb
This generates APLHSF.APL on the structure
and the directory specified for the )HI file
by
.if VB
GENBAS.
.else VB
GENSF.
.endif VB
.b
The )HI message is truncated to 239 characters.  The error message "WS NOT
FOUND" means that the )HI file directory specified by
.if VB
GENBAS
.else VB
GENSF
.endif VB
does not exist.
.lm0.pg
.hl 1 Internal Changes
.hl 2 Edits
.b1.lm20.ts10,20.i-20
EDIT#_#	SPR	REMARKS
.b1.i-20
316	27504	Fix CRLF idle-character handling: use
correct idle character for TTYs and reset the idle character
control count properly.
.b1.i-20
317	27492	Fix input routine for integers of magnitude
greater than 2_^27-1.
.b1.i-20
320	12872	Prevent function line editor from accepting
negative line numbers (with random results).
.b1.i-20
321	Dev	Implement .BXRENAME.
.b1.i-20
322	Dev	Implement .BXAPPEND and /AS* file type.
.b1.i-20
323	Dev	Implement .SQ for all nonprinting characters
in .BXAV.
.b1.i-20
324	Dev	Implement .BXASCII.
.b1.i-20
325	-----	Modify .BXMTP to simulate some of the TAPOPs
not in PA1050.  (-20 only)
.b1.i-20
326	-----	Correctly handle nonalphanumeric SIXBIT
characters in user-specified installation name.
.b1.i-20
327	12947	Check allocated space on codestring creation
to avoid overwriting data.
.b1.i-20
330	-----	Change default PPN to be user's PPN if PPN of
current workspace is [0,0].
.b1.i-20
331	-----	Change default APL output type for TTYs from
2741 to LA36.
.b1.i-20
332	Dev	Implement .BXTIMELIMIT and .BXTIMEOUT.
.b1.i-20
333	-----	Have TTY mode input from ASCII sequential
files convert lower to upper case.
.b1.i-20
334	-----	Internal edit.
.b1.i-20
335	-----	Internal edit to circumvent TOPS-20 bug.
(-20 only)
.b1.i-20
336	-----	Withdrawn.
.b1.i-20
337	-----	Correctly print nonalphanumeric SIXBIT
characters in user name.
.b1.i-20
340	-----	Internal edit.
.b1.i-20
341	Dev	Implement .BXERROR.
.b1.i-20
342	-----	Fix LIB: definitions on -20.  (LIB: belongs
to user, LIBn: belongs to APL) (-20 only)
.b1.i-20
343	Dev	Implement .BXBREAK.
.b1.i-20
344	-----	Add TTY mnemonics for diamond (.DM), left
bracket (.LB), left tack (.LK), right bracket (.RB), right
tack (.RK).
.b1.i-20
345	-----	Internal edit.
.b1.i-20
346	Dev	Don't set .BXERROR on EOF.
.b1.i-20
347	Dev	Append .XQ execute error message to previous
_.BXERROR.
.b1.i-20
350	Dev	Implement .BXTRAP.
.b1.i-20
351	-----	For LA36, shift out after MONITOR: message
instead of before.
.b1.i-20
352	Dev	Implement .BXSIGNAL.
.b1.i-20
353	-----	When doing )SI, have .XQs show up as .XQ
instead of .EP.
.b1.i-20
354	Dev	Make .BXBREAK work inside .XQ.
.b1.i-20
355	-----	Internal edit.
.b1.i-20
356	-----	Fix shadowing of .BXERROR.
.b1.i-20
357	-----	Internal edit.
.b1.i-20
360	Dev	Allow .BXBREAK in APL-BASIC.
.b1.i-20
361	-----	Fix SIXBIT to NINEBIT of nonalphanumerics.
.b1.i-20
362	-----	.BXFLS, .BXENQ and .BXDEQ were returning
invalid error numbers on TOPS20.
.b1.i-20
363	-----	Make .BXBREAK clear )SI when done from
protected function.
.b1.i-20
364	Q00429	Prevent loop or system error when generating
error during subscripted catenate.
.b1.i-20
365	Q00377	Put setting of )MAXCOR into TMPCOR so it is
possible to return from a )CALL even if )MAXCOR has been
expanded.
.b1.i-20
366	-----	Correctly save terminal type across )CALL.
.b1.i-20
367	-----	Internal edit.
.b1.i-20
370	-----	Correctly restore localized system variables
when )LOADing or )COPYing a workspace saved with a
different version of APL.
.b1.i-20
371	Q00448	If .BXPW is set to a width less than )TABS,
reset )TABS to new width (as is done with )WIDTH).
.b1.i-20
372	-----	Prevent workspace damage from occurring when
setting .BXTRAP to a system command.
.b1.i-20
373	-----	Allow .BXSIGNAL and .BXBREAK in immediate
mode.
.b1.i-20
374	-----	Introduce the idea of system variables which
can be set by the system but not the user (needed for .BXTIMEOUT
and .BXERROR).
.b1.i-20
375	Q03193	Fix .BXRENAME on channels 2 and 5.
.b1.i-20
376	Q00431	Fix real to integer conversion of negative
numbers.
.b1.i-20
377	Dev	Implement /BS* (sequential append for binary
files).
.b1.i-20
400	Dev	Allow recursive error trapping.  Prevent it
only with errors which occur in the .BXTRAP line itself, not
in any functions which are called.
.b1.i-20
401	-----	Internal edit.
.b1.i-20
402	-----	Remove 1030, ONTEL and TYCOM terminal types
from HELP message.  They are still supported, but are not
documented.
.b1.i-20
403	-----	Fix printing of error line when error
occurred at end of execute string.
.b1.i-20
404	-----	Take CRLF out from before ATTENTION SIGNALED
error message so error number appears on the same line as
message.
.b1.i-20
405	-----	Internal edit.
.b1.i-20
406	-----	Fix problem with printing real matrices
(e.g. 2 2.RO.FL/.IO0).
.B1.I-20
407	-----	Make .BXGAG work on TOPS20.
.B1.I-20
410	-----	Have .NT print @T in escape, and turn on .LK,.DM,.LB,.RB,.RK
output mnemonics.
.B1.I-20
411	-----	Add local version numbers.
.B1.I-20
412	-----	Make product version number available to GENSF and keep MAKILB
from loosing it.
.B1.I-20
413	-----	Allow inner products with right function = and .NE to
compare alpha's with numerics (i.e. 'ABC'&.=1 0 1)
.B1.I-20
414	QAR561	Fix edit 370 to set ASVSYMTAB on )CLEAR and to RELWS WS
with version = 0.
.B1.I-20
415	QA3420	Fix edit 367 to contract core on )LOAD:  problem only occurs
on the -10 when loading smaller WS after larger.
.B1.I-20
416	QA3266	Give LINE TOO LONG error if INBUF would overflow when putting
in leading blanks on .QQ or .QD input following .QQ or .QD output.
.b1;.i-20
417	QAR560	Prevent INCHAR from discarding any character except
a linefeed following a carriage-return.
.b1;.i-20
420	-----	When the quad-error data entry gets allocated
after a partially-built data entry that gtcore()
was trying to get core for when a wsfull occured,
move the quad-error data entry above the partially
built data entry and update globals as necessary
prevent the workspace from being trashed.
.b1;.i-20
421	Q00546	Correct function-line wraparound during output of a numeric
vector (broken during implementation of .BXERROR).
.b1;.i-20
422	-----	Prevent system errors during evaluation of the
expression F+1) where F is a niladic function
that does not return a value.
.b1;.i-20
423	Q00511	Correct two more problems with function-line wrap-around.
.b1;.i-20
424	-----	Make DGETSCI accept double precision -1 (=533400,,0 0,,0)
as integer -1.
.b1;.i-20
425	Q00518	Make .BXTIMELIMIT set < -1 a DOMAIN ERROR.
.b1;.i-20
426	QAR547	Fix dyadic .BXSIGNAL to correctly ignore left arg if right
arg is system error number.
.b1;.i-20
427	-----	Be able to load release 4 UDDT, which has pages below 770.
.b1;.i-20
430	QAR612	Change the wording in GENSF (XLIMCOR) to ask for the default
setting of )MAXCOR, not an upper bound on memory.
.b1;.i-20
431	QAR613	Allow -20 to specify LIBn: structure (default is PS:).
.b1;.i-20
432	-----	Fix the dqren() interface to cmdsyn() to
prevent wsid-filename default, accidentally
deleted files, lost default file extension,
and infinite loops.
.b1;.i-20
433	QAR564	INLINE loops when .bxTIMEOUT = 1 on PTY because FILINP didn't
reset TIMOUT (DEVTYP UUO is CALLI 53 octal not decimal).
.b1;.i-20
434	-----	Create PATCH.REL to define PATCH: area to be used instead of
PAT.. (which could get wiped out by an exapanding WS).
.b1;.i-20
435	QA3587	Fix typos in FS on -10 in /BS*.  Make STRTIO leave BLKNUM and
INDEX = 0 so WRTSETUP will do read of last block which write goes into on
append.
.lm0
.page
6.0##SUGGESTIONS
.B1
6.1##Continuing a detached APL job
.B1
In the event of a line drop or system crash, a user's job may
become detached.  After reestablishing a connection with the
system, the user should check to see if his/her job is still there.
If so, the user should reattach to the job using the
ATTACH command.
Then, to restore the job to its previous state, the
user should type CONTINUE.  If the user instead types
.if vten
R
.endif vten
.IF VB
APL,
.ELSE VB
APLSF,
.ENDIF VB
a new version of APL will be loaded and
the job's previous core image will be destroyed, along with the user's
workspace.
.b3
.if vb
[End of APL.DOC]
.else vb
[End of APLSF.DOC]
.endif vb
.if VTEN
.b1
.if VB
[APL.OLD is appended as an integral part of APL.DOC]
.else VB
.b1
[APLSF.OLD is appended as an integral part of APLSF.DOC]
.endif VB
.pg
.;8-FEB-79
.lm0.rm70.f.j.sp1.ts5
.if vb
APL.OLD -- Changes from V1B(301) to V1C(315)
.else vb
APLSF.OLD -- Changes from V1B(301) to V1C(315)
.endif vb
.br
February 1979
.fg30
COPYRIGHT (C) 1976,1979 BY
.BR
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
.B2
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.
.B1
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.
.B1
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
.if vb
.t APL.OLD
.else vb
.t APLSF.OLD
.endif vb
.pg
.if vb
APL.OLD -- Changes from V1B(301) to V1C(315)
.else vb
APLSF.OLD -- Changes from V1B(301) to V1C(315)
.endif vb
.br
February 1979
.b3.lm0
1.0##SUMMARY
.b1
.if vb
APL is the basic
.else vb
APLSF is the
.endif vb
implementation on the DECsystem-10 of the APL language with
shared system functions and system variables. It runs on a KI-10 or
KL-10 processor under release 6.03 or later of the TOPS-10
monitor, and requires VMSER on the KI-10.  It requires no
other software modules during execution,
and is documented in the APLSF Programmer's
Reference Manual (DEC-10-LPLSA-A-D).
.b1
The reason for this release is to correct outstanding bugs in
.if vb
APL
.else vb
APLSF
.endif vb
Version 1B.
.b1
.if vb
APL
.else vb
APLSF
.endif vb
Version 1C runs under release 6.03 or later of the TOPS-10
monitor.  It has been tested in-house under 6.03A and 7.01.
.b1
.if vb
APL
.else vb
APLSF
.endif vb
Version 1C fully supersedes Version 1B and includes edits
_#302 to _#315.
.pg
2.0##EXTERNAL CHANGES
.b2
2.1##Functional Changes
.b1
.list
.if vb
.le;GENBAS can now be run from any directory instead of only [1,2].
.else vb
.le;GENSF can now be run from any directory instead of only [1,2].
.endif vb
.le;Dyadic#!#now gives results over a wider range of arguments (e.g.
12!40).  It also computes results when the second argument is less
than zero, instead of returning 0 (it still returns zero when the second
argument is less than the first).  Also, monadic#!#not only gives results
for negative (non-integral) arguments, but the results are now correct.
.le;When character strings containing embedded CRLFs are printed, trailing
blanks before the carriage returns are removed.
.le;Terminal characteristics are now restored appropriately (the same
way they are set on entry) when REENTERing or CONTinuing from CTRL/C.
.end list
.b2
2.2##Functional Additions
.b2.i5
None.
.lm0.f.j
.pg
3.0##KNOWN BUGS AND DEFICIENCIES
.b1
3.1##Deficiencies and Restrictions
.b1
The known deficiencies and restrictions
in
.if vb
APL
.else vb
APLSF
.endif vb
are:
.list
.le;The caret symbol indicating where an error in an
.if vb
APL
.else vb
APLSF
.endif vb
statement
was first detected is sometimes displayed too far to the left.
This is a design problem with the interpreter, and there are no plans
to fix it in the immediate future.
.le;It is not possible to display the trace or stop vector of a
function.  This is a restriction which will not be removed in the
foreseeable future.
.le;It is impossible to enter an invalid TTY mnemonic in a character
string when using a TTY terminal, just as it is impossible to enter
an illegal overstrike from an APL terminal.  This is a permanent
restriction.
.if vb
.else vb
.le;Monadic domino uses an inordinate amount of core.  This is a
deficiency due to the algorithm used, which does monadic domino by
simulating a dyadic domino with a left argument of the identity matrix.
Thus, it must construct a double precision identity matrix.  We will
attempt to correct this deficiency soon.
.endif vb
.end list
.b1
3.2##Outstanding Bugs
.b1
The known outstanding bugs in
.if vb
APL
.else vb
APLSF
.endif vb
are:
.b1
.list
.le;Erasing a pendent or a suspended function can cause a SYSTEM ERROR,
depending on the state of the function when erased.
.le;The compression of a zero-by-n matrix returns a length error when
the left argument is an n-element vector, but works if it is a scalar.
.le;A niladic branch inside a multistatement line will fail with
a SYNTAX ERROR.
.le;If F is a niladic function which does not return an explicit
result, the construct _'_;F_;_' will give a VALUE ERROR.
.le;The random link variable .BXRL cannot be set equal to or greater
than 2_^27.  This will be fixed in version 2.
.end list
.pg.lm0.f.j
4.0##INSTALLATION INSTRUCTIONS
.b2
4.1##Files Included on this Tape
.b1
The 
.if vb
APL
.else vb
APLSF
.endif vb
system is composed of the following files:
.b1;.lm18;.ts18;.i -13
.if vb
.i-13
APL.DOC	This documentation file.
.else vb
.i-13
APLSF.DOC	This documentation file.
.endif vb
.b1;.i-13
.if vb
APL.EXE	The APL executable file.
.b1;.i-13
GENBAS.EXE	Generation program for APL. See below for its use.
.else vb
APLSF.EXE	The APLSF executable file.
.b1;.i-13
GENSF.EXE	Generation program for APLSF. See below for its use.
.endif vb
.b1;.i-13
APLSF.RNH	The HELP message to respond to the monitor HELP
.i-13
.if vb
APL.HLP	command. Put APL.HLP in HLP:[2,5].
.else vb
APLSF.HLP	command. Put APLSF.HLP on HLP:[2,5].
.endif vb
.b1;.lm0
.if vb
The following file is not distributed. It is generated by APL.
.b1;.lm18;.i-13
APLHSF.APL	The APL HI file, if a HI message is desired.
.else vb
.b1;.lm18;.i-13
BILING.1	The APLSF workspace which processes the APL billing
file. Put it on the APL library area.
.b1;.lm0
The following two files are not distributed. They are generated by APLSF.
.b1;.lm18;.i-13
APLHSF.APL	The APLSF HI file, if a HI message is desired.
.b1.i-13
ACCTSF.APL	The APLSF accounting file.
.endif vb
.b1;.lm0
The default is to put
.if vb
APL.EXE and GENBAS.EXE on SYS:[1,4] and APL.HLP on HLP:[2,5].
.else vb
APLSF.EXE and GENSF.EXE on SYS:[1,4], APLSF.HLP on HLP:[2,5],
and BILING.1 on APL:[5,31].
.endif vb
.b2
4.2##Changing the Default Installation Parameters
.b1
The default installation parameters are as follows:
.b1.lm10
.i-5
The installation name is
.if vb
DECsystem-10 APL-BASIC.
.else vb
DECsystem-10 APLSF.
.endif vb
.br
.i-5
Two PPN's which differ only in the project number do not belong
to the same programmer.
.i-5
The automatic save facility, .BXAUS, is off.
.if vb
.else vb
.i-5
The name of the accounting file is ACCTSF.APL.
.i-5
The PPN used for the accounting file is [5,31].
.endif vb
.i-5
The PPN used for the HI file and the library is [5,31].
.i-5
The default value of )CORMAX is 20K (thus, the default maximum
workspace size is 20K).
.i-5
The structure used for the HI file and the library is APL:.
.i-5
The default file protection for permanent files is 000 (system standard).
.i-5
The default file protection for library workspaces is 100.
.lm0.b1
If a change in the parameters is desired, put the .EXE file on device
DSK:, run
.if vb
GENBAS.EXE
.else vb
GENSF.EXE
.endif vb
and answer the questions. The program updates the EXE file. Then rename
and distribute the different files to the appropriate disk structures
and PPNs.
.b2;.lm0;.f;.j
4.3##Creating a HI Message
.b1
If you wish a HI message, login under _[1,2_], sign on
.if vb
APL,
.else vb
APLSF,
.endif vb
and execute the command
.b1;.i5
)HI 'THIS IS MY HI MESSAGE'
.b1;.lm0
Then sign off
.if vb
APL.
.else vb
APLSF.
.endif vb
.lm0.pg
5.0##INTERNAL CHANGES
.b1
5.1##Edits
.b1.lm20.ts10,20.i-20
EDIT#_#	SPR	REMARKS
.b1.i-20
302	QAR	Fix E format to scale mantissa appropriately.
(E-format of 1.0 was printing 10E-1 instead of 1E0.)
.b1.i-20
303	QAR	Rewrite monadic and dyadic#!.  Dyadic#!#now gives results
for a wider range of arguments.  Also make them more accurate with non-integral
arguments.
.b1.i-20
304	12480	Function editing was starting on line [0] after doing a single
line display of the function.
.b1.i-20
305	12486	Suppress trailing blanks in character vectors containing
embedded carriage-control characters.
.b1.i-20
306	-----	Internal edit.
.b1.i-20
307	-----	Reset the terminal characteristics to proper APL
characteristics when re-entering or continuing from CTRL/C.
.b1.i-20
310	-----	Reinstate )PASSWORD command.
.b1.i-20
311	-----	Internal edit.
.b1.i-20
312	-----	Version 1B didn't read TMPCOR (e.g. when returning from
a )CALL or )RUN).  Fix it.
.b1.i-20
313	-----	Version 1B didn't report KCS in the billing file.
Fix it.
.b1.i-20
314	-----	Correct upper-lower case handling when resetting terminal
characteristics.
.b1.i-20
315	12787	Fix AFUZZ comparison in integer to real conversion,
broken by edit 224.
.lm0
.b3
.if vb
[End of APL.OLD]
.else vb
[End of APLSF.OLD]
.endif vb
.endif VTEN