Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-bb - cbl12b.d09
There is 1 other file named cbl12b.d09 in the archive. Click here to see a list.
                 EDIT DESCRIPTIONS FOR COBOL-10-V12B                            
  
  
                             EDIT 1510   FOR COBOL
  
  
  
  
[SYMPTOM]
  
  
The wrong numeric literal value may be stored in the literal
table of a program.
  
  
[DIAGNOSIS]
  
  
Edit 1507 to MOVGEN changed the  order  of  some  subroutine
calls.   Accumulator  13  is no longer set up as expected by
code that follows.
  
  
[CURE]
  
  
Edit 1510 will use a different ac.
********************************************************************************
  
  
                             EDIT 1511   FOR COBOL
  
[SYMPTOM]
  
  
  
  
  
A computation that yields in an internal value such as '4.5'
may  result in '4' even if the 'ROUNDED' clause is specified
if a conversion from floating point to binary is required.
  
  
[DIAGNOSIS]
  
  
If the fractional part of a floating point field ends in the
equivalent of .49999999999999 and rounding is specified, the
data is first converted  to  binary  and  the  extra  places
dropped,  and  then  the  data  is  rounded.  The correction
factor for  floating  point  to  binary  conversion  is  not
generated  if  the  rounding clause is used.  It was assumed
that the rounding factor would be sufficient, but since this
factor  is not applied until after the data is converted, it
does not have the expected effect.
  
  
[CURE]
  
  
Edit 1511 to EXPGEN will change the order of the  tests  for
rounding  and  floating  point  conversion so the correction
factor will always be generated if data  is  converted  from
floating  point  to  binary.   This  will not cause rounding
where it is not specified, as the correction factor  is  too
small.
********************************************************************************
  
  
                             EDIT 1512   FOR COBOL
  
[SYMPTOM]
  
For COBOL-68 and -74, where two display numeric fields A and B are
defined as follows,
  
01	A	PIC 9(x)	[DISPLAY-n].
01	B	PIC S9(x)	[DISPLAY-n].
  
where "x" is any valid digit count and "n" is 6, 7 or 9, the statement
  
	IF A = - B	action clause for True outcome
	ELSE		action clause for False outcome.
  
always takes the ELSE path, even when A equals - B. However,
  
	IF - B = A	action clause for True outcome
	ELSE		action clause for False outcome.
  
works correctly.
  
[DIAGNOSIS]
  
In MOVGEN the code is generated to move the operand to an AC and then
for the negation a MOVN instruction is generated. This instruction is
supposed to move the negative of the contents of the AC to itself.
However, the effective address of the sending field is not put into
the generated instruction, which means that the value in AC0 is always
being moved to the AC and negated. If AC0 is the sending AC, there is
no problem, as in the second example in the symptom statement, where
the negation is to the first operand, which is assigned to AC0. However,
in the first example above, the negated operand is second and is assigned
to AC2. In this case, the negative of the contents of AC0 was overlaying
the contents of AC2. In all cases where the contents of AC0 were non-zero
the subsequent test would prove False.
  
[CURE]
  
Install edit 1512 to the COBOL-68 and COBOL-74 compilers to put the
effective address of the sending operand into the generated MOVN
instruction.
  
********************************************************************************
  
  
                             EDIT 1523   FOR COBOL
  
  
  
  
[SYMPTOM]
  
  
The heading for a listing says 'S U B' instead of 'S U B P R
O G R A M'.
  
  
[DIAGNOSIS]
  
  
COBOLF never sets up the byte pointer to 'P R O  G  R  A  M'
after putting out the prefix 'S U B'.
  
  
[CURE]
  
  
Ac TA points to 'SUB', have it point to 'SUBPROGRAM'.
********************************************************************************
  
  
                             EDIT 1533   FOR COBOL
  
  
  
  
[SYMPTOM]
  
  
A syntax is given  on  all  alternate  keys  if  the  record
containing their definition is variable in length.
  
  
[DIAGNOSIS]
  
  
Edit 1501 put in code to disallow variable length  alternate
keys.   A new label was created so the loop which follows it
would only execute the test once, but the JRST statement was
not changed to use the new label.
  
  
[CURE]
  
  
Edit 1533 to CLEANC will change the JRST statement.
********************************************************************************
  
  
                             EDIT 1534   FOR COBOL
  
  
  
  
[SYMPTOM]
ILL MEM REF while compiling a  DBMS/COBOL  program,  on  systems  with
one-word global byte pointers implemented.
  
  
[DIAGNOSIS]
COBOL edit 1115 is creating an incorrect byte pointer, which is  being
interpreted  a  a  pointer  to a non-zero section when one-word global
byte pointers are implemented.
  
  
[CURE]
Simplify and fix the byte pointer generation algorithm.
********************************************************************************
  
  
                             EDIT 1536   FOR COBOL
  
  
  
  
[SYMPTOM]
  
  
A program deleting records from an RMS file  being  accessed
sequentially  may get a syntax error on the DELETE statement
specifying that an 'INVALID KEY' clause is required.
  
  
[DIAGNOSIS]
  
  
The code generator determines if a file  is  being  accessed
sequentially,  and  if  so,  calls  a subroutine to set up a
standard argument list in the literal table of the  program.
Upon  returning  from  this  subroutine,  AC16  is no longer
pointing to the current file  table.   AC16  is  used  again
later  on  in  the  code  as  the  file  table  address, and
depending on its value, may indicate to a second  test  that
an 'INVALID KEY' clause is now required.
  
  
[CURE]
  
  
Edit 1536 to IOGEN will reset AC16  to  the  current  file's
table entry.
********************************************************************************
  
  
                             EDIT 1537   FOR COBOL
  
  
  
  
[SYMPTOM]
  
  
A syntax error will be given on a data field with usage COMP
if it is declared in a record layout for an ASCII file.
  
  
[DIAGNOSIS]
  
  
Edit 1424 gives this error since the data is not transferred
correctly  from the record area to the buffer.  The last bit
is dropped.  The error should not be based on the  recording
mode  of  the  file,  but  on  the  usage mode of the record
layout.   Sixbit  and  ebcdic  data  will   be   transferred
correctly.
  
  
[CURE]
  
  
Edit 1537 to COBOLC and DIAGS will fix the edit so the error
will  be  given  if a COMP field is found in a record layout
with usage mode ASCII.
********************************************************************************
  
  
                             EDIT 1542   FOR COBOL
  
  
  
  
[SYMPTOM]
  
The first word in working storage got trashed in a move from
a sixbit to an Asciz field.
  
[DIAGNOSIS]
  
In module IFGEN, in routine IFKADM, the divide was incorrect
to  get the number of words to reserve.  Instead of dividing
by the number of bytes per word,  it  divided  by  the  byte
size.
  
[CURE]
  
Divide by the number of bytes per word rather than the  byte
size.
********************************************************************************
  
  
                             EDIT 1543   FOR COBOL
  
  
  
  
[SYMPTOM]
  
Edit 1411 does not suppress the truncation warning if an  ON
SIZE ERROR clause is used
  
[DIAGNOSIS]
  
The code does not check if there is an ON SIZE ERROR  clause
on the statement before generating the warning.
  
[CURE]
  
Check to see that the GNSERA bit in the opcode is off before
checking for truncation.
********************************************************************************
  
  
                             EDIT 212    FOR ISAM
  
  
  
  
[SYMPTOM]
  
ISAM files become corrupted when  updating  a  file  with  a
poorly  chosen  blocking  factor  such  that  index block is
exactly one over a sector boundry.
  
[DIAGNOSIS]
  
The ISAM index block length computation is off by  one.   In
computing the index block length a header length of one word
was used, when in reality index blocks have a header  length
of 2 words.
  
[CURE]
  
Change the calculation to use a 2 word header instead  of  a
one word header.
  
********************************************************************************
  
  
                             EDIT 1116   FOR LIBOL
  
  
  
  
[SYMPTOM]
  
  
An RMS program will halt with a fatal error message from the
OTS  stating  that  the  file being used is not open for the
specified i-o.
  
  
[DIAGNOSIS]
  
  
If a file is unavailable at the  time  of  open  and  a  use
procedure  is  executed which will cause the file open to be
re-attempted, the file status is  not  reset  before  trying
again.   If  a later request succeeds, the file status still
specifies the file is unavailable.  When later i-o  requests
attempt  to  verify  that  a  file has been opened correctly
according  to  the  verb's  requirements,  the  file  status
implies the file is not open, so all i-o requests fail.
  
  
[CURE]
  
  
Before re-attempting an open on a file, edit 1116  to  RMSIO
will  reset  the  file status and corresponding flag bits in
the file table.
********************************************************************************
  
  
                             EDIT 1126   FOR LIBOL
  
  
  
  
[SYMPTOM]
  
  
Blank lines in an ascii text file are ignored by COBOL.
  
  
[DIAGNOSIS]
  
  
COBOL processes <LF> characters for output files  only,  for
positioning records on a page.  These characters are ignored
when reading files.  Leading <CR>'s are assumed to have been
generated  by 'WRITE AFTER ADVANCING' clauses which indicate
that the data record follows the <CR>, so the <CR> character
should be ignored.
  
  
[CURE]
  
  
We are issuing edit 1126 to  INTERM,  LBLPRM  and  CBLIO  in
conditional  assembly brackets.  We do not intend to support
this code as the default for COBOL as it will alter  current
file  handling.   The  new  code  will trap any leading <CR>
found while reading an ascii file and cause  a  space-filled
record  to  be  returned  to  the user program.  The default
definition of the new feature test switch  BLANKL  is  zero;
to  enable  this  feature,  its  value should be set to 1 in
INTERM, as shown in the filcom.  A possible  side-effect  of
this  edit  is  that  where one record has been written, two
records will be read, the first triggered by a leading  <CR>
and  the  second  triggered  by the transfer of the expected
number of characters from the file buffer.
********************************************************************************
  
  
                             EDIT 1127   FOR LIBOL
  
  
  
  
[SYMPTOM]
  
  
When assembling  COBST  get  warnings  that  complain  about
obsolete symbols.
  
  
[DIAGNOSIS]
  
  
Using obsolete symbols in COBST.
  
  
[CURE]
  
  
Remove them.
********************************************************************************
  
  
  
END OF  COBOL-10-V12B