Changes Affecting Version 5.2

The following paragraphs describe changes that can affect programs originally written with ACUCOBOL-GT Version 5.2.

Vision Version 5

Version 6.0 introduces a new Vision file format: Vision Version 5. Vision Version 5 supports records up to 64 megabytes in size, block sizes up to 8192 bytes, very large pre-allocate and extension factors, and a virtually unrestricted number of records that allow duplicates. Version 5 files cannot be read by ACUCOBOL-GT Version 5.2.1 or earlier runtimes. See Indexed Files Vision in ACUCOBOL-GT User's Guide the for a complete description of Vision Version 5.

Windows Console Runtime

Version 6.0 introduces a new runtime for the Windows operating environment that may be used to run applications originally deployed in the Extended DOS environment, as well as other character-based applications. The new runtime is called the console runtime. The name of the executable is crun32.exe. The console runtime uses the Windows Console API and runs in a virtual DOS window. The console runtime replaces the Extended DOS runtime and is sold separately.

The console runtime can run ACUCOBOL-GT applications developed for the Extended DOS environment provided that some minor changes are made. For example, the console runtime supports printing capabilities based on the Windows model. Program code that relies on DOS printing functions must be modified.

The following runtime configuration variables are MS DOS-specific and are not supported in Version 6.0:

  • 132_MODE
  • A_WAIT_FOR_LICENSE
  • AUTO_BUFFER
  • DOS_OUTPUT_METHOD
  • DOS_WATCOM_10
  • LOCKED_RECORD_DELAY
  • USE_MOUSE

Web Plug-in Discontinued

The browser industry has shifted away from its support of Internet plug-ins in favor of ActiveX controls. For this reason, we developed and released an ActiveX-based Web Runtime in ACUCOBOL-GT Version 5.2.1. Due to lack of browser support, the ACUCOBOL-GT Web Plug-in is not offered or supported in Version 6.0. See Migrating from the Web Plug-in to the Web Runtime in A Programmer's Guide to the Internet for information on migrating from the Web Plug-in to the Web Runtime.

List Box and Combo Box Handling of VALUE

In Version 5.2 and earlier, setting the VALUE of a combo box or list box caused the first item in the list that started with the value of VALUE to be selected, regardless of case. Beginning with Version 6.0, when a box's VALUE is set, the list is searched for an exact, case sensitive match with the specified value. If the value is found, it is selected. If an exact match is not found, the list is searched for an exact match regardless of case. If a match is still not found, the list is searched again, this time for the first string that contains the passed VALUE as a leading substring, regardless of case.

This change could affect the behavior of an existing application. The configuration variable V60_LIST_VALUE allows you to select which search algorithm, new or old, to use. See V60_LIST_VALUE in Appendix H.

Area A in RM COBOL Compatibility Mode

Starting with Version 6.0, when you compile for RM COBOL compatibility (-Cr), in the Identification Division, Area A can start in either column 8 or 9 (ANSI format) or column 1 or 2 (terminal format). In prior versions, Area A in the Identification Division started precisely in column 8 (ANSI format) or column 1 (terminal format).

This change may cause warnings in programs that previously compiled without warnings. To revert to the old rule, you can use the --noRmMargin compiler option.

Image Rendering for BITMAP Controls

The image processing code used by Version 6.0 (and later) for BITMAP controls is device-dependent. This may affect image rendering in some programs, written for Version 5.2 or earlier, which rely on device-independent bitmaps. If BITMAP controls are displaying incorrectly, adjust the setting of the configuration variable, V52_BITMAPSV52_BITMAPS, described in Appendix H.

Bitmap Push Button Behavior Change

If some event in the system forces the focus away from a text-based push button after a click has been initiated but not finished, the click is voided. Starting with Version 6.0, bitmap push buttons void the click just like a text-based push button. This change applies only to programs compiled for 6.0 semantics or later.

Changes to Data Items Used by C$REDIRECT

The definitions of the HANDLER-PRE-ALLOCATE-AMOUNT, HANDLER-EXTENSION-AMOUNT, HANDLER-MAX-LREC-SIZE, HANDLER-MIN-LREC-SIZE, and HANDLER-SEGMENT-OFFSET data items in sample/handler.cpy have changed.

Changes to Data Items Used by I$IO

The definitions of the PRE-ALLOCATION-AMOUNT, EXTENSION-AMOUNT, MAX-REC-SIZE, MIN-REC-SIZE, and KEY-OFFSET data items in "sample/def/filesys.def" have changed.

Compiler Changes

  • Two compilation switches provide compatibility with Version 5.2:
    -C52    Causes the compiler to generate code according to the rules used by Version 5.2.
    -Z52 Creates object code that can be run with a Version 5.2 runtime.
  • When compiling for Version 6.0 or later format, table indexes and USAGE INDEX data items are treated as 32-bit signed native binary data items. In versions prior to 6.0, the default for indexes is to act as 16-bit unsigned portable binary data items. In rare cases, this change from 16-bit to 32-bit indexes may cause problems with an existing program. One case where this could be a problem is if you place USAGE INDEX items in a data file. Another case would be if you rely on undefined overflow behavior with arithmetic on 16-bit indexes.

    If you need to preserve indexes as 16-bit items, you can either compile for an object format prior to Version 6.0, or you can compile using the --nodata32bit option. This option inhibits the new data addressing features of 6.0 and causes indexes to be kept as 16-bit data items.