The following paragraphs describe changes that can affect programs originally written with ACUCOBOL-GT Version 6.0.
Compiler Changes
Two compilation switches provide compatibility with Version 6.0:
-C60
|
Causes the compiler to generate code according to the rules used by Version 6.0.
|
-Z60
|
Creates object code that can be run with a Version 6.0 runtime.
|
Alignment of Literals
The compiler uses a new algorithm for aligning literals in memory. The alignment is the smaller of the alignment specified
by the
-Da option (which has a default value of
4) or the largest power of 2 that is less than or equal to the literal's size. For example, a literal that requires 3 bytes
of memory will have an alignment of 2. You can use the
--noAlignLit option to turn off the new algorithm. See Data Storage Options in the ACUCOBOL-GT User's Guide, for additional information on --noAlignLit.
Runtime Changes
- In Version 6.0 and earlier, the WIN$PRINTER functions WINPRINT-PRINT-BITMAP, WINPRINT-SET-CURSOR, and WINPRINT-GRAPH-DRAW,
ignored the form feed status of a pending print job, causing images or text to print on the wrong page. In Version 6.1 and
later, calls to these functions automatically test for a pending form feed before printing.
- In Version 6.1, when a program is compiled with the
-Cp switch and run on an HP e3000, all OPEN OUTPUT statements create MPE files. In prior versions, byte stream files were created.
- In Version 6.0 and earlier, if a program argument was preceded by a double dash (two dashes) it was effectively treated as
if preceded by a single dash. For example,
runcbl --dle errfile iobench was executed as if it were
runcbl -dle errfile iobench. Beginning with Version 6.1, an argument preceded by two dashes generates a runtime startup error, unless you specifically
modify exam_args (in
sub.c) to ignore command-line errors.