There are no other files named alg1a.doc in the archive.
ALGOL.DOC -- Version 1A(145)
COPYRIGHT (C) 1978 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
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
ALG1A.DOC Page 2
ALGOL.DOC -- Version 1A(145)
This is a maintainance release of DECSYSTEM-20 ALGOL intended to
include all bug-fixes made since Version 1(105), both those published
in the Software Dispatch and those reported to us through non-SPR
In addition individual users have made suggestions for enhancements to
ALGDDT which we have implemented for this release. This results in a
small change in funtionality although not sufficient to merit a new
version number. These improvements include an enhanced UNWIND
command, a RETRY command, additions to the PAUSE command and improved
control C handling. Most of these are documented in the programmer's
guide, which was prepared with this release in mind.
The changes made for this version will not effect the operating
environment requirements given for Version 1(105).
2.0 EXTERNAL CHANGES
The following changes will be noticed by the user in 1A(145):
1. The documentation lists the three library procedures
RAND,ONTRACE & OFFTRACE, this is a documentation error, the
procedures being correctly called RAN,TRACEON & TRACEOFF.
However since users have not complained about this before and
have presumably adapted to the error, both spellings will now
have the correct effect (rendering all current programs
2. If an identifier is undeclared or misused, its spelling will
now be included in the error message. It is felt this will
be particularly useful when a listing is not being generated
and only the error meassages appear on the terminal.
3. The library procedures READ and INLINE will now recognise an
EOF as an LF, and treat it as a terminator to input in any
circumstance where a LF would do so (before, encountering an
EOF would result in a run-time error).
4. The library procedure READ now no longer throws away the byte
immediately following a quoted string.
5. The ALGDDT command RETRY as documented in the programmer's
guide is now implemented.
6. The ALGDDT command PAUSE is now fully implemented, as per the
ALG1A.DOC Page 3
7. Enhanced ALGDDT command UNWIND.
The UNWIND command has been extended to know about block
levels within procedures as well as procedure levels
themselves. The new command formats are as follows:
UNWIND Same as BACK - return to original context
UNWIND n Change to dynamic procedure level <n>
UNWIND n.m Change to dynamic proc. level <n> and block
UNWIND -n Change by <n> procedure levels.
UNWIND -.m Change by <m> block levels.
UNWIND 0 Change to outermost block
The WHERE command has also been extended to include the
additional information required by this extension.
8. The OTS no longer enables for trapping UUO or QUOTA exhausted
errors, and the monitor should produce error messages if
9. Undeclared labels now have the status of hard errors and will
cause suspension of .REL file generation.
3.0 KNOWN BUGS AND DEFICIENCIES
1. The library procedures OPENFILE,INPUT & OUTPUT will not work
correctly if passed a dynamic string as an actual parameter;
that is a string procedure or a string that is itself a
formal. Doing so results in a runtime error.
2. Interrupting a program that is performing a monitor call with
a control C can sometimes result in an immediate return to
monitor level instead of invoking ALGDDT. In this case the
user should type CONTINUE which will enter ALGDDT in the
3. Edit 776 published as an answer to SPR #10797 (DECsystem-10
Dispatch) claimed to fix a problem of bad code generation
using embedded assignments to long real arrays. We have
since found that this is not the case and have not included
this edit in this release. Until we can fix this problem
properly we recommend users avoid using embedded assignments
to long real arrays.
4.0 INSTALLATION INSTRUCTIONS
The batch command file ALGOL.CTL contains all the details necessary
for building ALGOL version 1A. The files ALGOL.EXE, ALG145.EXE,
ALGLIB.REL and ALGDDT.HLP should be put on <SUBSYS>.
ALG1A.DOC Page 4
5.0 INTERNAL CHANGES
There now follows the list of edits included in version 1A. Four
digit edit numbers are fixes to problems or enhancements not
originating from an SPR.
#106 10-10777 Make ALGDDT PAUSE on labels work correctly
#107 None Make READ ignore LF after CR.
#110 10-107778 Exponentiation caused incorrect code code with
sufficiently complex operands.
#111 10-10794 Make ALGOL call itself version 10 and not
#112 None Don't make REDIRECTed files unecessarily large.
#113 None Fix certain cases of GOTO command in ALGDDT.
#114 None Fix to control C trapping.
#115 None Fix to ALGDDT NEXT command.
#116 None Ignore breakpoints if already in ALGDDT.
#117 10-22610 Make compiler command scanner ignore leading
#120 None Use compiler version number as program version
#121 10-22013 Stop programs generating un-defined global
#122 10-22677 Make programs linked with /OTS:NONSHARE switch
#123 10-10783 Fix overflow in routine LEXP.
#124 10-23180 Make INPUT and OUTPUT not always take the error
return if an error label was specified.
#125 10-10789 Make the body of a FOR statement a block.
#126 10-10792 Report correct channel number when giving EOF
#127 None Enhanced UNWIND command & various minor fixes.
#130 10-10791 Compile time folding of floating point constants
generates incorrect code.
ALG1A.DOC Page 5
#131 10-10793 Give EOF error when READing from empty strings.
#132 10-10787 Make I/O to TTY on channels 0 & 1 work.
#133 10-10789 Make DELETE deal with strings properly.
#134 10-22806 Compiler crash with TTY input lines longer than
#135 10-10799 Fix certain differences between TTY I/O on
channel -1 and the others.
#136 10-10800 ALGOTS could get into a loop when called with an
#137 10-10802 Fix compiler crash when real number present in a
#140 10-23307 Fix compiler looping with certain mis-spelled
#141 10-10805 Stop ALGDDT trying to echo on non-echo
#142 10-10797 *** Please see section 3.0 ***
#143 10-23923 Make the automatic DUMP after run-time error in
BATCH not give IMRs.
#144 10-10808 An external recursive procedure call with
/PRODUCTION switch caused incorrect code.
#145 10-10812 Give EOF the status of a terminator to READ and
#1000 None Fix several problems concerning control C
interrupting running programs and entering
#1001 None Include improperly used or undeclared
identifiers in compiler error messages.
#1003 None Fix certain cases of the NEXT command in ALGDDT
not working correctly.
#1004 None Enhance Edit #011 to prevent compiler looping
with absent or incorrect procedure names.
#1005 None In certain cases very long source lines caused
#1006 None Certain sequences of delimeters in QUOTED mode
caused compiler crash.
ALG1A.DOC Page 6
#1007 None Improve ALGDDT response to inter-rupting a
running program when it is performing a monitor
call ( see section 3 ).
#1010 None Make the I/O operations ignore nulls at the
start of a buffer. Before this could result in
a loss of characters.
#1011 None Establish aliases for RAN,TRACEON & TRACEOFF (
see section 2 ).
#1012 None Clear output buffer if SELECTOUPUT away from the
#1013 None DECSYSTEM-20 version only. Stop occasional
errors with PRINT.
#1014 None ALGOTS no longer traps QUOTA exceeded & UUO
errors ( see section 2 ).
#1015 None NEXTBYTE used to give incorrect results with
some dynamic actual parameters.
#1016 None Not used.
#1017 None Stop procedure READ losing the next character
after a quoted string ( see section 2 ).
[End of ALG1A.DOC]