Google
 

Trailing-Edge - PDP-10 Archives - ap-c800d-sb - cbl12a.doc
There are no other files named cbl12a.doc in the archive.


CBL12A.DOC -- COBOL-68/COBOL-74 V12A Documentation
Sep 1979






























COPYRIGHT (C) 1979 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
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
COBOL-68/COBOL-74 V12A Documentation                            Page 2


1.0  SUMMARY

This is the the first maintenance release of COBOL-68 Version  12  and
COBOL-74  version  12.   It is the first release of common sources for
both compilers.

COBOL version 12A consists of:
        COBOL    version 12A(726)
        CBL74    version 12A(726)
        LIBOL    version 12A(604)
        C74OTS   version 12A(604)
        COBDDT   version 12A(26)
        ISAM     version 12A(161)
        LIBARY   version 12A(30)
        RERUN    version 12A(6)

The above software will run on all supported  monitors  and  has  been
tested under TOPS-10 6.03A and 7.00.

This release  contains  the  common  sources  for  both  COBOL-68  and
COBOL-74.

COBOL-74 version 12A conforms to the full ANSI  highest  level  except
for:
IDX  No multi-key ISAM
RPW  It contains ANS-68 Report Writer (same as COBOL-68)
DEB  No Debug module

See section 3 for known deficiencies.

See COBOL INSTALLATION GUIDE  for  configuration  switch  setting  and
compatibility issues.


1.1  Bibliography

COBOL-68 LANGUAGE MANUAL AA-5057A-TK
COBOL-74 LANGUAGE MANUAL AA-5059A-TK
COBOL INSTALLATION GUIDE (COBOL.INS)
CBL12A.DOC, NEWCOB.MEM, AND SRT4B.DOC 



1.2  Required Software

The following software is required to build COBOL V12A.

     Name           Version
     ----           -------
     MACRO          53(1020)
     LINK            4(765)
     MAKLIB          2(20)
     UUOSYM         13A(406)
COBOL-68/COBOL-74 V12A Documentation                            Page 3
EXTERNAL CHANGES and OPTIONS


2.0  EXTERNAL CHANGES AND OPTIONS


2.1  COBOL BUG FIXES SINCE COBOL-74 V12(601)


Note, edit 617 has been temporarily  removed  since  it  causes  other
     problems.

Edit 726 Fix COPY REPLACING when replaced item is an exact multiple of
         six chars.

Edit 725 Make sure FFATAL is on if fatal errors exist.

Edit 724 Fix error in edit 722.

Edit 723 Fix edit 706 to point to correct record.

Edit 722 Fix COBOL-74 MOVE  HIGH-VALUES  or  LOW-VALUES  when  PROGRAM
         COLLATING SEQUENCE has been specified.

Edit 721 Fix COBOL-74 subscripted IF when PROGRAM  COLLATING  SEQUENCE
         has been specified.

Edit 720  Fix  COBOL-74  compare  to  SPACES  when  PROGRAM  COLLATING
         SEQUENCE has been specified.

Edit 717 Fix IF a NOT = SPACES for a ALPHANUMERIC and longer than 2040
         characters.

Edit 716 Fix bad check for EBCDIC mode in subscripting.

Edit 715 Correct edit 566.

Edit 714 Break up long lines due to SIRUS bug.

Edit 713 Do TMPCOR UUO in the right address if CORE UUO is needed.

Edit 712 Not required, already in 12A in a different form.

Edit 711 Fix edit 674 for index items.

Edit 710 Set flag showing WORKING-STORAGE SECTION seen.

Edit 707 Fix edit 670 - it broke nested IFs.

Edit 706 Check RECORD CONTAINS clause against maximum record size.

Edit 705 Put out PERIOD ASSUMED message in right place.

Edit 704 Fix multiple COPY REPLACING ordering bug.

Edit 703 Bad code generated for  SIXBIT  SORT  where  key  starts  one
         character into a word (non-BIS case only).
COBOL-68/COBOL-74 V12A Documentation                            Page 4
EXTERNAL CHANGES and OPTIONS


Edit 702 List comments in DATE-COMPILED paragraph.

Edit 701 Don't do improper optimizations - fix to  SAMACM  routine  in
         PMATCH.

Edit 700 Fix undeserved error for COMP-1 items with edit 674.

Edit 677 Tables expanding may cause DBMS USE PROCEDURES to get  messed
         up.

Edit 676 Fix edit 517, get listing right when space in column 7.

Edit 675 Check FIND RSE 3 syntax that could look like FIND RSE 5.

Edit 674 Generate error for bad value clause of 88 level item.

Edit 673 Fix quad-word rounding problem.

Edit 672 Fix Ill Mem Ref when someone defines a dataname TALLY.

Edit 671 Fix problem with linkage section subscripts.

Edit 670 Fix nested IF .  ELSE problem.

Edit 667 Wrong code for EBCDIC KEYS with 2 bytes in last word.

Edit 666 Fix edit 661 (label BADSB4 was already defined in maintenance
         sources).

Edit 665 Recover correctly from PROCEDURE DIVISION mis-spelled.

Edit 664 Fix multiply with 4-word intermediate problem.

Edit 663 Fix SKIPA optimization if previous instruction is JRST .+3.

Edit 662 Fix edit 557, define PICNXT common to phases B, C, and D.

Edit 661 Give error message rather than generating bad code for COMP-1
         subscripts.

Edit 660 Fix error message points to wrong place for WRONG  NUMBER  OF
         SUBSCRIPTS.

Edit 657 Fix problem with lookahead in COPY REPLACING integer.

Edit 656 Fix problems with DBMS USE PROCEDURES.

Edit 655 Check for premature EOF on library file.

Edit 654 Fix bad code generated sometimes for MOVE of item with two or
         more subscripts.

Edit 653 Turn on FFATAL on assembly errors in phase G.
COBOL-68/COBOL-74 V12A Documentation                            Page 5
EXTERNAL CHANGES and OPTIONS


Edit 652 Allow null paragraph proceeding END DECLARATIVES.

Edit 651 Wrong byte pointer use in RPW CONTROL footer code.

Edit 650 Fix Ill Mem Ref when compiler expands tables for DBMS program
         with USE PROCEDURES.

Edit 647 Wrong code generated for FILLER  X(5),  KEY  X(8)  in  SIXBIT
         SORT.

Edit 646 Fix error message always points to line 371 if error  was  in
         subscripted COUNT item in UNSTRING statement.

Edit 645 Fix error recovery in SORT statement;  also  add  restriction
         to MERGE statement to not allow subscripting.

Edit 644 More error recovery for 88 level  where  01  is  not  defined
         uniquely.

Edit 643 Fix ?SIZTE RETURNED 0.

Edit 642 Fix MOVE CURRENCY STATUS OF RUN-UNIT to subscripted-item.

Edit 641 Fix incorrect test for operand is ACC at LASTOP in EXPGEN.

Edit 640 Fix ill mem ref when expanding tables in phase O.

Edit 637 Fix COMPUTE with COMP-1 result.

Edit 636 Fix various errors when compiling programs with fatal errors.

Edit 635 Fix size allocation for an item  which  RENAMES  item-1  THRU
         item-2.

Edit 634 Fix problems with 4-word COMP arithmetic.

Edit 633 Give better warning on line number wrap-around.

Edit 632 Remove second (wrong) definition of ARGSGN in IPCGEN.

Edit 631 Don't use ARG2 at  PA258.   thus  preventing  catastrophe  in
         phase D.

Edit 630 Fix edit 562 for non-BIS case.

Edit 627 Wrong code generated for EBCDIC 8 byte KEY with 1 or 3  bytes
         in first word.

Edit 626 Fix MOVE of 3 char EBCDIC fig-const (COBOL-68 only).

Edit 625 Fix bad test for two word TEMP in PUTEMP.

Edit 624 Record size must match RECORD CONTAINS in F mode file.
COBOL-68/COBOL-74 V12A Documentation                            Page 6
EXTERNAL CHANGES and OPTIONS


Edit 623 Give error if SORT KEY contains OCCURS clause.

Edit 622 Wrong code generated for FILLER X, KEY X(9) in SIXBIT.

Edit 620 Store Seq.  No.  correctly for DATE-COMPILED paragraph.

Edit 617 If FGTPER is on don't test for replacement in COPY.

edit 616 Fix SUBI/ADDI optimization in LINKAGE SECTION.

Edit 615 Put remaining fixes from BWR file into official sources.

Edit 614 Decrement Tag count correctly for IF D.P.  test (this was  in
         BWR file).

Edit 613 Make it possible to build compiler with DBMS=0 (this  was  in
         BWR file).

Edit 612 Initialize FNOSUB at the start of phase D (this  was  in  the
         BWR file).

Edit 611 Fix IF DBMS-statement to generate correct code (this  was  in
         BWR file).

Edit 610 Fix incorrect code generated in array where top level is COMP
         and is referenced via constant subscript.

Edit 607 Fix ?NPCIN BECAME NEGATIVE when deleting code that  can't  be
         reached.

Edit 606 Fix ?INTERNAL COMPILER ERROR  if  01  item  OCCURS  usage  is
         non-DISPLAY.

Edit 605 Make variable length reads work usefully.

Edit 604 Put out correct error message on  STRING  of  non-NUMERIC  to
         NUMERIC.

Edit 604 Clear ATEND flag on CLOSE REEL.

Edit 603 Fix ?ILL UUO.  when CONTROL in RD refers to edited item.

Edit 602 Allow null section in Procedure Division.
COBOL-68/COBOL-74 V12A Documentation                            Page 7
EXTERNAL CHANGES and OPTIONS


2.2  COBOL BUG FIXES SINCE COBOL-68 V12(530)


Edit 601 Correct edit 546.

Edit 600 Adjust D.P.  of "A" in accs if less than D.P.  of "B".

Edit 577 Fix SET DOWN BY 262144 (i.e.  <-1,,0>).

Edit 576 Fix ?BAD LITAB CODE - in ENABLE stmt code gen.

Edit 575 Fix MOVE ALL 'A' TO DISPLAY-ITEM (SUBSCRIPTED).

Edit 574 Don't set bit 1 for user-name external entry (bit went away).

Edit 573 Allow null paragraphs in DECLARATIVES.

Edit 572 Make tables be size 1 if DBMS or MSC/TCS turned off.

Edit 571 Finally fix edits 531 and 517.

Edit 570 Add quad-word rounding function.

Edit 567 Fix decimal point alignment in quad-word multiplies.

Edit 566 Float operands when target is COMP-1.

Edit 565 Pass NUMERIC EDITED fields to a subroutine correctly.

Edit 564 Fix bug in edit 537 - non-BIS only problem.

Edit 563 Ill.  Mem.  Ref.  for FILLER X(3) or X(4), KEY X(8) in ASCII.

Edit 562 Fix SIXBIT 6 char FIG-CON compare when sign gets in the way.

Edit 561 Fix GO DEPENDING - /O problem.

Edit 560 Wrong code generated for FILLER X(3), KEY X(7) in SIXBIT.

Edit 557 Fix various COPY REPLACING bugs.

Edit 556 Fix GETTAB 135 if FILDAEMON is turned off in TOPS-10 monitor.

Edit 555 Fix miscellaneous problems with COBOL SORT.

Edit 554 Give error message if KEY in SORT statement is in  the  wrong
         file.

Edit 553 Give warning if RECORDS/RERUN too large.

Edit 552 Give error if DECLARATIVES but no END DECLARATIVES.

Edit 551 Fix Catastrophe in Phase E.
COBOL-68/COBOL-74 V12A Documentation                            Page 8
EXTERNAL CHANGES and OPTIONS


Edit 550 Fix IF subscripted item is ALPHABETIC.

Edit 547 Fix EXAMINE REPLACING HIGH-VALUES BY.

Edit 546 Fix MULTIPLY -1 BY X generates a SETZM.

Edit 545 Fix statement after SUBTRACT 1 is compiled wrong.

Edit 544 Fix HIGH-VALUES compares for SIXBIT variables.

Edit 543 Fix bad literal table offsets.

Edit 542 Fix  NUMERIC  compare  of  field  with  decimal  places  with
         expression with no decimal places.

Edit 541 Fix  Catastrophe  in  Phase  O  if  null  INPUT   or   OUTPUT
         procedures.

Edit 540 Fix CONTROL HEADING  printed  past  line  specified  as  last
         DETAIL LINE.

Edit 537 Fix subscripted MOVE with "A" in acs.

Edit 536 Fix MOVE of COMP item to DISPLAY to only move the  number  of
         characters in the COMP PIC.

Edit 535 Fix edit 273 for IF SET NOT EMPTY.

Edit 534 Fix COMPUTE gets answer from wrong ac.

Edit 533 Make STOP RUN work for WHEN in SEARCH.

Edit 532 Fix 511 to process errors correctly.

Edit 531 Fix 517 to compile copies correctly.

Edit 517 Improve readability of .LST file.
COBOL-68/COBOL-74 V12A Documentation                            Page 9
EXTERNAL CHANGES and OPTIONS


2.3  OTS BUG FIXES SINCE COBOL-74 V12(543)


Edit 603 Take out call to CLWSMU in CLSWEL (from edit 576).

Edit 602 ******* NOT USED *******

Edit 601 Make COBOL-74 FILE STATUS fixes available for COBOL-68.

Edit 600 Correctly shuffle SIXBIT records in SHFREC.

Edit 577 Put in check for no CR-LF in blocked 1 ASCII MTA file,  allow
         it with warning.

Edit 576 Put checkpoint FILOP  in  CLSWEL  for  10's  SMU  type  CLOSE
         (flushes buffers).

Edit 575 Fix OPEN for spooled CDR when file is empty or nonexistent.

Edit 574 Check record pointer as well as key description of ISAM file.

Edit 573 Fix edit 571 to save ac 7,14 before call to SU.CL.

Edit 572 Fix infinite loop of typing out 0's if first CORE  UUO  fails
         in RESET.

Edit 571 At C.CLOS, do not call SU.CL until all buffers are out.

Edit 570 Take out edit 557 and replaces it with code to  force  thawed
         access COMPT.  LOOKUP for all READ ONLY OPENS.

Edit 567 Fix three problems with the level in PERF.MAC.

Edit 566 Put in LKPSIZ definition that should have been in  edit  565.
         This  edit  is  not needed for these sources, but is added to
         conform with HOSS sources, which were the  ones  that  missed
         it.

Edit 565 Fix OPNELO to calculate file size when  called  from  LFENQ.,
         but not after.

Edit 564 Fix optional file routine YES.NO to eat whole answer line  up
         to EOL.

Edit 563 Check for illegal file name and give fatal error if found.

Edit 562 Dummy edit to get 10 and 20 sources back in sync.

Edit 561 Fix MTA label processing to allow for ANSI labels in  monitor
         version 4.

Edit 560 Fix edit 544.

Edit 557 Remove EXTENDED LOOKUP in OPEN and allow for OPEN  READ  ONLY
COBOL-68/COBOL-74 V12A Documentation                           Page 10
EXTERNAL CHANGES and OPTIONS


         when  another  program  has  OPENED the file for simultanious
         update.

Edit 556 Fix RESET with shared buffer areas to work  for  ISAM  "save"
         areas.

Edit 555 Fix read of EBCDIC file with recording mode  of  binary  read
         wrong number of characters.

Edit 554 Enclose quad-word routines in BIS conditional.

Edit 553 Allow no digits following a decimal point.

Edit 552 Fix ISAM Sequential READ after a WRITE which  splits  both  a
         data block and an index block.

Edit 551 Fix E0.6.1, E0.7.1, E0.9.1 not found in /R case.

Edit 550 Fix null conversion in LRDEQ.

Edit 547 Not used.

Edit 546 Fix smashing of ac when INSPECT REPLACING.

Edit 545 Store no.  of characters in var.  len.  record in file table.

Edit 544 Check for missing half of PPN and fill in default.
COBOL-68/COBOL-74 V12A Documentation                           Page 11
EXTERNAL CHANGES and OPTIONS


2.4  OTS BUG FIXES SINCE COBOL-68 V12(525)


Edit 543 Move code to setup .JBHRL  from  CBLIO  to  COBST.   This  is
         required for overlays on TOPS-20.

Edit 542 Fix ASCII to EBCDIC  record  conversion  to  recognize  E-O-L
         characters.

Edit 541 Fix BYTE mode to EBCDIC tape (gave Ill.  Addr.  in UUO).

Edit 540 Add quad-word rounding function.

Edit 537 Fix edit 521, use TMP.DP.

Edit 536 Make LIBOL identify an overlay file it can't find.

Edit 535 Fix LIBOL-12 to run with IQL.

Edit 534 Fix EOF for LOW-VALUES READ of  ISAM  files  in  SIMULTANEOUS
         UPDATE.

Edit 533 Fix DISPLAY doesn't display trailing spaces.

Edit 532 Fix illegal instruction from LSU for SIMULTANEOUS UPDATE.

Edit 531 Fix error on WRITE of NON-STANDARD LABELS to NUL:

Edit 530 Fix device not available error to  give  the  correct  device
         name.

Edit 527 Test for OVERFLOW and  UNDERFLOW  before  fixing  a  floating
         point number.

Edit 526 Fix ASCII writes to RANDOM file may put bit 35 on TOPS-20.
COBOL-68/COBOL-74 V12A Documentation                           Page 12
EXTERNAL CHANGES and OPTIONS


2.5  LIBARY BUG FIXES

Note, the editor commands have been removed from LIBARY.

Edit 30 Prevent looping "?Incorrect command" error.

Edit 27 Add SFD support and improve error messages.

Edit 26 Fix bug in /D caused by edit 24.

Edit 25 Put tab after line number on listing file.

Edit 24 Put page number on listing of library.


2.6  ISAM BUG FIXES

Edit 161 Fix tape label error routine at LTCTST:.

Edit 160 Issue warning U before X in KEY descriptor.

Edit 157 Fix FILOP. uuo for large files.


2.7  COBDDT BUG FIXES

Note, This version of COBDDT will not  work  with  versions  of  COBOL
         prior to v12A.

Edit 26 Add more new features.  See NEWCOB.MEM.

Edit 25 Add better comments, minor bug fixes.
         Add requirement that STOP command be typed in full.

Edit 24 Add NEXT <integer> command.

Edit 23 Fix breakpoint insertion after .REENTER.

Edit 22 Fix ?ITEM TOO LARGE FOR TEMP error to DISPLAY correctly.
COBOL-68/COBOL-74 V12A Documentation                           Page 13
EXTERNAL CHANGES and OPTIONS


2.9  SYNTACTIC and SEMANTIC CHANGES NOT YET DOCUMENTED

COMPUTE Statement

         Internal support for double precision floating point has been
         added  to  both the compiler and OTS.  There is a new feature
         test  switch  BISCMP  which,  if  on,  causes   all   COMPUTE
         statements  to coerce the data into double precision floating
         point.  In this version the feature test  is  OFF.   This  is
         because  the  code has not had sufficient testing, however if
         anyone turns it on and tries it out, we  will  fix  any  bugs
         found.   This  code  will only work on KL CPUs.  There are no
         plans to add double precision floating point as  an  external
         data type.

VARIABLE LENGTH SEQUENTIAL RECORDS

         Version  12A  correctly  reads  and  writes  variable  length
         sequential records.
         The simplest way to describe the record is as:
         01 record PIC X OCCURS n TIMES DEPENDING ON data-name-1.
         Where data-name-1 is not part of the record.
         On WRITE all that has to be done is to setup  data-name-1  to
         the  correct size and do the WRITE.  On READ data-name-1 will
         be setup correctly after the READ so that the user  can  tell
         how big the record was.

OPEN EXTEND

         This is the COBOL-74 OPEN EXTEND syntax.  It allows the  user
         to append to a sequential file to either DSK or MTA.

DISPLAY IS DISPLAY-6/7/9

         This clause has been added to the OBJECT  COMPUTER  paragraph
         to  allow  the  user  to set the default DISPLAY mode.  It is
         similar to /X but also allows DISPLAY-7.

WRITE record FROM SPACES

         This is an extension of WRITE record FROM data-name.
         It is equivalent to
         MOVE SPACES TO record.
         WRITE record.

CHECKPOINT OUTPUT

         The original syntax was:
         ACCESS MODE IS INDEXED CHECKPOINT OUTPUT
         at user's requests the syntax was expanded  to  cover  RANDOM
         and SEQUENTIAL also.
         The action is to do a CHECKPOINT  FILOP  after  every  output
         which  is  equivalent  to,  but  much  faster  than,  a CLOSE
         followed by  an  OPEN.   This  should  greatly  increase  the
COBOL-68/COBOL-74 V12A Documentation                           Page 14
EXTERNAL CHANGES and OPTIONS


         reliability of ISAM files at the expense of performance.

BYTE MODE

         This was in version 12 but undocumented.  The syntax is
         RECORDING MODE IS BYTE MODE [ASCII, SIXBIT, ...]
         If BYTE MODE is used, the exact number of bytes is written on
         the  tape,  it  does  not  round up to the the word boundary.
         This is valid only on magnetic tape.

DENSITY IS 6250

         Allow the syntax for mag tape density of 6250 bpi.

SELECT file-name ASSIGN TO literal-1

         This is an extension of the SELECT statement to allow devices
         that  look  like  COBOL  reserved words to be used.  Note the
         literal must be a legal TOPS-10 style device name, no "-" for
         example.
COBOL-68/COBOL-74 V12A Documentation                           Page 15
DEFICIENCES


3.0  DEFICIENCIES


3.1  NEW Deficiencies from COBOL v12


     COPY REPLACING has some problems in that it is  not  possible  to
     replace either part of PIC xyz without replacing the whole.
     i.e.  REPLACING ==PIC S9(10)==
     will work
     but
     REPLACING ==PIC== or REPLACING ==S9(10)== will not.

     Note, it was never  the  intent  (and  it  contravenes  the  ANSI
     standard) for COPY REPLACING to replace part of a data-item.
     REPLACING AA by BB should not turn AA-XYZ into BB-XYZ.

     Programs  which  contain  nested   SEARCH   statements   generate
     instructions  which jump to themselves.  These instructions never
     get executed so the program works, however the optimizer does not
     know  how to handle them and goes into an infinite loop.  For now
     do not optimize programs which contain nested SEARCHes.

     The LINK supplied with 7.00 for loading the monitor will not load
     COBOL-74  subroutines,  COBOL-68 is OK.  Use field image LINK for
     this case.

     In COBOL-74 the statement
     PROGRAM COLLATING SEQUENCE IS EBCDIC 
     is not supported even though the manual implies that it is.

     MULTIPLY A BY B GIVING C ON SIZE ERROR ...  *(1)
     where A, B and C are double precision (BIS only) has a problem in
     that  the  compiler  generates code which, because of the ON SIZE
     ERROR code, assumes that the conversion from 4-words to COMP  has
     already taken place so the wrong data is stored.  Correct code is
     generated if ON SIZE ERROR is not used or the  intermediate  temp
     is not bigger than 18 digits.

     DIVIDE A BY B GIVING C  *(1)
     where A, B and C are double precision COMP  and  have  sufficient
     decimal  places  so  that A must be adjusted to be bigger than 18
     digits so as not to lose precision (BIS only) then  the  compiler
     generates  wrong  code  for  the  divide  by  B.  Note, this only
     happens if B is COMP.

     MULTIPLY/DIVIDE A BY B GIVING C  *(1)
     where A, B and C are double precision and where the  intermediate
     temp  is  4-words  (BIS  only) and has more decimal places than C
     then wrong results are generated when A and B have opposite sign.

     CATASTROPHE IN PHASE C  *(1)
     If the FD has a RECORD CONTAINS clause but no  data  record  then
     the compiler will get a fatal error when it tries to diagnose the
COBOL-68/COBOL-74 V12A Documentation                           Page 16
DEFICIENCES


     user error.

     SOURCE-COMPUTER with no  comment  following  it  causes  a  fatal
     error.  *(1)














































---------------
*(1)   Untested patches  exist  for  these  problems.   They  will  be
published  after  version  12A  is  released  when  they have had more
testing.
COBOL-68/COBOL-74 V12A Documentation                           Page 17
DEFICIENCES


                               ********
                               * NOTE *
                               ********
     We do not reccomend that this change  be  installed  unless  your
     installation  is  having  problems  transfering  data  TO  an IBM
     machine.

     The ASCII to EBCDIC translation table was changed in  version  12
     (as  the  result  of  several  SPRs)  so  that the translation of
     graphics was more correct.   However  it  is  still  not  correct
     according  to  IBM  documentation, we are currently investigating
     what VAX does to see if there can be a DEC to IBM standard we can
     live  with.   However it seems that we now in some cases generate
     incorrect EBCDIC characters for minus zero.  The interim solution
     for  those  who  see this problem is to put the translation table
     back the  way  it  was  in  version  11  knowing  then  that  the
     translation of some graphics will be wrong.
     In CHREQV.MAC change
     E 133,255 to E 133,340
     E 134,340 to ;  134
     E 135,275 to E 135,320
     E 136,137 to ;  136
     E 140,171 to ;  140
     E 175,320 to E 175,260
     E 176,241 to ;  176

     and before CAE insert
     DSAE 134,155
     DSAE 136,117
     DSAE 140,174
     DSAE 176,155
COBOL-68/COBOL-74 V12A Documentation                           Page 18
DEFICIENCES


3.2  OLD Deficiencies from before COBOL v12


     Program ID same as filename, procedure name or data name  results
     in spurious error messages.

     If A=B and C=D or E for subscripted A and  C  gives  wrong  code,
     cause "SUBSCRIPT not POSITIVE" run time message if subscripts not
     COMP or INDEX.

     Using argument  missing  in  call  statement  gives  wrong  error
     message.

     Misspelled column not handled properly in the report section.

     Error not detected.
     A RESET FINAL clause is legitimate only when FINAL is given as  a
     control.   Violation  of  this  rule  goes  undiagnosed.  A RESET
     clause  can  only  accompany  a  sum  clause.   A  RESET   clause
     accompanying a source clause receives no diagnostic.

     Incorrect error message.
     DATA-NAME RC which is defined on last line of the working-storage
     section is incorrectly diagnosed as undefined in the declaratives
     area of procedure division.  It is considered to be defined ok in
     the report section, however.

     Incorrect error message.
     COBOL rules make the presence of  a  data-name  optional  in  the
     control  footing  report description provided there is no need to
     reference the report group.  In the case where the  data-name  is
     present  the  program  compiles without error.  In the case where
     the data name is not present the compiler seems to be disallowing
     sections in the procedure division.

     DBMS error handling
     Errors which relate to the schema are not tabulated in the  error
     count, and they go only to the TTY.

     If "USE AFTER ERROR PROCEDURE ON x" where x is  "INPUT",  "OUTPUT
     or  "I-O"  and  "USE AFTER ERROR PROCEDURE ON file-name" are both
     specified, then file-name may not be OPENed for x.
COBOL-68/COBOL-74 V12A Documentation                           Page 19
DEFICIENCES


4.0  Installation Instructions


See  the  COBOL-68/74  Installation  Guide  (COBOL.INS)  for  complete
installation instructions.



5.0  INTERNAL CHANGES


5.1  I/O Performance Metering

A new feature test switch, LSTATS and two new modules, METUNV.MAC  and
METIO.MAC have been added to do OTS performance analysis.  The feature
test switch is OFF in  this  release,  however  the  save  set  LSTATS
contains  a KL-10 version of the OTS with this feature turned on.  See
IOPERF.MEM for details.


5.2  Misc.

1. The DATE and TIME routines have been moved from CBLIO.MAC to a  new
   routine TODAY.MAC.
2. The floating point conversion routines FLOT.1 and FLOT.2 have  been
   combined into one module FLOAT.
3. Most of the numeric constants in CBLIO.MAC have  been  replaced  by
   symbolic constants and the TX and MOVX macros have been used.
4. Wherever possible symbol definitions have been moved from CBLIO and
   other modules into the appropriate UNV file.
5. The module UUO.MAC is no longer required and has been deleted.

[END OF FILE CBL12A.DOC]