Trailing-Edge
-
PDP-10 Archives
-
bb-bt99g-bb
-
cbl12c.d13
There is 1 other file named cbl12c.d13 in the archive. Click here to see a list.
EDIT DESCRIPTIONS FOR COBOL-10-V12C
EDIT 1576 FOR COBOL
[SYMPTOM]
Extra line feeds will be inserted in a multi-line comment
copied from a library file if copy replacing is being used
and edit 1316 has been installed. If it hasn't been
installed, a paragraph name from a library file that is
being replaced and is preceded by a comment will lose the
line feed that precedes it. Extra line feeds may be added
after replacing tokens.
[DIAGNOSIS]
Edit 1316 shuts off the 'reading for replacement test only'
flag when finding the line feeds in the comment. The
pointers marking where in the library file the search for
text to be replaced started and ended include leading and
trailing punctuation and comments. If the tokens are
replaced, the leading and trailing data is lost. The
character count of the replacement text is one too high in
some situations.
[CURE]
If a read for replacement test is in effect, store the
library file buffer header at the start of the token and the
exact size of the token. Before writing the replacement
token out to cpyfil, see if the token is really where the
scan started, if not write out the leading characters.
After writing out the replacement text, see if the last
token replaced ends at the position in the library file
where the next token starts, if not, write out the data in
between.
********************************************************************************
EDIT 1577 FOR COBOL
[SYMPTOM]
With a non-BIS COBOL-74 v12B compiler, a Move from a source
field to a destination field which has an OCCURS DEPENDING
clause produces a data record which is prematurely truncated
and filled with spaces when the length of the source field
is approximately 470 characters or greater.
[DIAGNOSIS]
The truncation occurs because the length of the source field
is truncated on the left at run-time. The length is
retained in twelve bits (6 - 17) of the temporary output
pointer. However, only the rightmost eleven are picked up
at run-time. This can happen in either one of two places.
(1) In the generated code a DPB instruction moves the length
from an AC to the temporary output pointer word. This
instruction depends upon a byte pointer created at compile
time by the routine MOVGEN. This byte pointer has to be
changed to pick up 12 bits rather than 11.
(2) Under the LIBOL entry point SET2., a LDB instruction
moves the length to an AC using a byte pointer which exists
within the routine SETRET. This byte pointer has to be
changed for a non-BIS OTS to pick up 12 bits rather than 11.
[CURE]
Install edits 1577 and 1144 from KL2116::CBL:<MASLANKA> and
rebuild the COBOL-74 compiler and LIBOL.
********************************************************************************
EDIT 1603 FOR COBOL
[SYMPTOM]
A program that includes the sort RELEASE verb will sometimes
cause a catastrophe in phase E on a Bad table-link.
[DIAGNOSIS]
Edit 1516 assumes that the FILTAB entry for the sort file
will be in CURFIL. When this is not true the compiler
aborts with a catastrophe in phase E due to a bad table
link. LNKSET is called using the value of CURFIL. LNKSET
aborts when CURFIL does not contain the relative address in
FILTAB for the sort file.
[CURE]
Use the DATAB pointer for the record entry given in EOPTAB
to find the FILTAB entry for the sort file instead of using
CURFIL. The DA.POP entry of the record DATAB entry contains
a FILTAB relative pointer to the sort file. The COBOL-v13
compiler includeds edit 1516 in the code twice. The extra
four lines should be deleted when installing this edit in
COBOL-v13.
********************************************************************************
EDIT 1604 FOR COBOL
[SYMPTOM]
A COBOL program with a long INSPECT REPLACING statement will
generate a bad argument block in some cases. The bad
argument block may cause an assembly error in phase G. This
error is sensitive to the size of the compiler literal pool
at the time the argument list is generated. Changing the
size of the INSPECT statement or moving it in the program
may cause the problem to disappear.
[DIAGNOSIS]
The table LITAB runs out of core space in the process of
generating the argument list for the INSPECT. When the
table is expanded the absolute pointer CURIRG is not updated
with the new start of TEMTAB. After expanding CURIRG is
used to get data from TEMTAB. Since CURIRG was not updated
bad data is put into the argument list. Depending on this
data the compiler may get an assembly error.
[CURE]
Update the value of CURIRG with the new value of TEMLOC when
LITAB is expanded.
********************************************************************************
EDIT 1607 FOR COBOL
[SYMPTOM]
When the translator is built with edit 1604 the linker gets
an undefined globol CURIRG.
[DIAGNOSIS]
The translator is built with the ANS74 conditional equal to
zero. The INSPECT code is for ANS74 only and is inclosed in
conditionals. CURIRG is defined for ANS74 only.
[CURE]
Since edit 1604 is needed for ANS74 syntax only
inclose the new code in ANS74 conditionals. This edit is
needed for cobol-12b only.
********************************************************************************
EDIT 1613 FOR COBOL
[SYMPTOM]
Very large COBOL compiles of programs with many data items
or large report writer sections may crash due to bad table
links or produce bad code. These programs may get a "?Not
enough memory to continue compilation" error if a few more
lines are added to the largest section. This is most likely
to happen with large report writer programs (~2000+ lines of
reports).
[DIAGNOSIS]
Information derived from the source is stored in internal
dynamic compiler tables. The tables have a limit of 2**16-1
words. Large programs may overflow one or more of the
tables and cause the pointers into them to wrap-around.
Data in the low end of the table gets overwritten. The
table expanding routine does not check for table overflow.
[CURE]
Add a routine to the dynamic table expander to check that
the table has not overflowed. If a table overflows the
routine will produce and error and abort the compile. The
routine will expand the table by a smaller amount if the
requested expansion would overflow the table. This will
keep the edit from breaking large programs that just squeak
through now. No effort was made to find a way to make the
tables larger since the problem only occurs if the source
program is close to compile-time and runtime core limits
anyway. The edit goes into XPAND.MAC for version 12B and
into COBCOM.MAC for version 13.
********************************************************************************
EDIT 1614 FOR COBOL
[SYMPTOM]
Compiler gives an error message when comp item is included
in a display-7 group item.
[DIAGNOSIS]
The compiler was disallowing all mixed mode ascii, whereas
with the recording mode of BINARY, it was documented as
working.
[CURE]
Add check for the Internal recording mode as Binary. If it
is let it pass.
********************************************************************************
EDIT 1616 FOR COBOL
[SYMPTOM]
Compiler gives an error message when comp item is included
in a display-7 group item. Edit 1614 didn't correct this
symptom.
[DIAGNOSIS]
Forgot to point to current file.
[CURE]
Point to current file.
********************************************************************************
EDIT 1617 FOR COBOL
[SYMPTOM]
Programs with FD's that have more than one 01 level that are
not the same size get CBL660 warnings even though the
"RECORD CONTAINS integer-3 TO integer-4 CHARACTERS" clause
was uesd. This warning appeared with edit 1502 to COBOL.
[DIAGNOSIS]
The warning was originally added for edit 1502 to COBOL 12B.
The purpose was to warn the user that he has created
variable lenght records when he may not have intended to.
Edit 1502 did not attempt to suppress the warning when it
was apparent that the user knew that the records would be
variable in lenght.
[CURE]
Suppress the warning when the RECORD CONTAINS clause
specifies variable lenght records. Add a FI.RCN flag to the
FILTAB entry that will be set when the "RECORD CONTATINS nn
TO nn" syntax is seen. Supperess the warning when FI.RCN is
set.
********************************************************************************
EDIT 10 FOR CPYLIB
[SYMPTOM]
A file that contains form feeds that is extracted from a
COBOL library file will be missing the line feed character
that proceeded the form feed when the file was inserted into
the library. Lines of code may get overwritten if the
extracted file is edited. When LIST is used the line feeds
are included as expected.
[DIAGNOSIS]
When a file is inserted into the library, the extra carridge
control characters at the end of the line are replaced by
only a line feed or a form feed. These carridge control
characters should be replaced when the file is extracted.
The current code only replaces the missing carridge return
character. The code for the LIST command inserts the
missing line feed.
[CURE]
Check to see if the end of line character was a form feed.
If so, insert a line feed character in the ourput file
before the form feed.
********************************************************************************
EDIT 213 FOR ISAM
[SYMPTOM]
When ISAM is run on a file that cannot be opened because it
is being modified or has protection failure ect. ISAM
reports:
?Lookup failure on input file -- (0) file not found
When file does exist the error is erroneous.
[DIAGNOSIS]
The LOOKUP error processor assumes that the short lookup
block was used and that it resides at TA-TC. It expects to
find the error code in TB. The lookup block that failed is
at IF1LB and is an extened lookup block. The error code is
therefore in the right half of IF1LB+3 not in TB. The "file
not found" error was reported because there happed to be a
zero in the right half of TB.
[CURE]
Make a new entry point into the LOOKUP failure routine that
will move the error code from IF1LB+3 to TB so that the
routine can report it.
********************************************************************************
EDIT 32 FOR LIBARY
[SYMPTOM]
A file that contains form feeds that is extracted from a
COBOL library file will be missing the line feed character
that proceeded the form feed when the file was inserted into
the library. Lines of code may get overwritten if the
extracted file is edited. When LIST is used the line feeds
are included as expected.
[DIAGNOSIS]
When a file is inserted into the library, the extra
cartridge control characters at the end of the line are
replaced by only a line feed or a form feed. These
cartridge control characters should be replaced when the
file is extracted. The current code only replaces the
missing cartridge return character. The code for the LIST
command inserts the missing line feed.
[CURE]
Check to see if the end of line character was a form feed.
If so, insert a line feed character in the output file
before the form feed.
********************************************************************************
EDIT 1142 FOR LIBOL
[SYMPTOM]
For a file, opened extended, if no PPN is given, and the
logical device name points to a file in different PPN than the user is
in, user will receive a lookup error.
[DIAGNOSIS]
Whenever no PPN is specified, COBOL uses current default PATH.
[CURE]
Make COBOL understand about pathological names, and fill in
appropriate PPN.
********************************************************************************
EDIT 1143 FOR LIBOL
[SYMPTON]
If an ISAM file is not present at the beginning of the
execution of a COBOL program, the program fails immediately
with a COMPT. UUO failure and does not pass through the
user program's USE Procedure.
[DIAGNOSIS]
COBOL-10 and COBOL-20 have been historically constructed to
cause a program failure at "Reset" time, prior to the
execution of any user-generated code, if Selected ISAM files
were not present at that time. This has not allowed
user-written COBOL USE Procedures to be executed on program
failures which are caused by "File Not Found" errors, and
this is contrary to the COBOL-74 ANSI Standard. In order to
conform to the Standard in this case, a design change is
desirable.
[CURE]
Install edit 1143 to CBLIO.MAC and rebuild COBLIB.REL and
COBOTS-V13.EXE. Please note: This edit implements a major
design change to the "Reset" code in CBLIO, and it may
affect the way in which COBOL-20 programs handle the
situation in which an ISAM file is not found. If you
install this edit, you should observe that programs with
missing ISAM files are failing on the OPEN statement instead
of at the beginning of the program execution.
********************************************************************************
EDIT 1144 FOR LIBOL
[SYMPTOM]
With a non-BIS COBOL-74 v12B compiler, a Move from a source
field to a destination field which has an OCCURS DEPENDING
clause produces a data record which is prematurely truncated
and filled with spaces when the length of the source field
is approximately 470 characters or greater.
[DIAGNOSIS]
The truncation occurs because the length of the source field
is truncated on the left at run-time. The length is
retained in twelve bits (6 - 17) of the temporary output
pointer. However, only the rightmost eleven are picked up
at run-time. This can happen in either one of two places.
(1) In the generated code a DPB instruction moves the length
from an AC to the temporary output pointer word. This
instruction depends upon a byte pointer created at compile
time by the routine MOVGEN. This byte pointer has to be
changed to pick up 12 bits rather than 11.
(2) Under the LIBOL entry point SET2., a LDB instruction
moves the length to an AC using a byte pointer which exists
within the routine SETRET. This byte pointer has to be
changed for a non-BIS OTS to pick up 12 bits rather than 11.
[CURE]
Install edits 1577 and 1144 from KL2116::CBL:<MASLANKA> and
rebuild the COBOL-74 compiler and LIBOL.
********************************************************************************
EDIT 1145 FOR LIBOL
[SYMPTOM]
The TOPS-10 COBOL OTS with edit 1127 (autopatch tape 9) can
not find the overlays for a COBOL program if it is run using
EXECUTE, LOAD/START or LINK and GO.
[DIAGNOSIS]
Edit 1127 removed obsolete symbols from the OTS. One of
these (.SGDEV) was used to determine if the program was run
via EXECUTE, LOAD/START or LINK and GO. If this was the
case then the OTS looked for the program's overlays on the
current PPN and device. When edit 1127 is installed the
test for this case is deleted. The OTS now looks for the
overlays on the device that LINK was run from and does not
find them.
[CURE]
Replace the code in the OTS that checked for the LINK and GO
case. If this is the case then the COBOL program name will
not match the run program name and the run program name will
be "LINK". If so then look for the overlays on the current
PPN and device.
********************************************************************************
EDIT 1150 FOR LIBOL
[SYMPTOM]
When writing and the subsequently reading a sixbit file, the
following error message result: Maximum Record count cannot
be exceeded.
[DIAGNOSIS]
Forgot to check the buffer for being full in all cases
before writing.
[CURE]
Check the buffer to see if it is full before writing.
********************************************************************************
EDIT 1151 FOR LIBOL
[SYMPTOM]
If a program has both a sequential and a relative file open
for output, and a relative write that causes the buffer to
output to disk takes the invalid key path, the next
sequential write will fail with an "? illegal address in
UUO" error for the write.
[DIAGNOSIS]
The WRITE. code puts a dump mode IOWD in the right half of
UOUT. The normal key path later clears the right half of
this word before returning to the user program. The invalid
key path leaves the IOWD pointer in place.
[CURE]
Edit 1151 clears the right half of UOUT. before returning
via the invalid key path.
********************************************************************************
EDIT 1152 FOR LIBOL
[SYMPTOM]
When two programs attempt opening a file and a declaractives
section is in effect, the program blows up with improper
mode error.
[DIAGNOSIS]
When the use procedure is invoked and LIBOL tries to reopen
the files, it doesn't make sure that the channel number is
in the right ac.
[CURE]
Make sure the channel number is in the right ac.
********************************************************************************
END OF COBOL-10-V12C