Google
 

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