COPY REPLACING when Run in ANIMATE or PANIMATE May Hang
PSS ID Number: Q39186 Article last modified on 04-20-1993
3.00 3.00a | 3.00 3.00a MS-DOS | OS/2
The information in this article applies to: |
- Microsoft COBOL for MS-DOS and OS/2, versions 3.0 and 3.0a |
Summary: Under a certain case, the COPY REPLACING statement supported by the Microsoft COBOL Version 3.0 Compiler may produce code that causes the ANIMATE or PANIMATE debug utilities to hang when run. The problem arises in the REPLACING clause of the COPY statement when a period is used in the replacement literals. Microsoft has confirmed this to be a problem in Versions 3.0. We are researching this problem and will post new information as it becomes available. The code example below demonstrates this problem. You can correct the problem by removing the period from the end of the replacement literals.
More Information: The program below should be compiled, then run in ANIMATE (in MS-DOS or MS OS/2 real mode) or PANIMATE (in MS OS/2) using the default directives, as follows: COBOL testprog /ANIM; ANIMATE testprog The following is a code example:
WORKING-STORAGE SECTION. 01 WS-CODE-FLAG PIC 9(2). 01 SIO-RECORD PIC X. 01 SYUDAR-RECORD PIC X. 01 ERR-RECORD PIC X. 01 CMD-RECORD PIC X. 01 S-RECORD PIC X. 88 S-CODE-AD VALUE "1". 01 FMS-RECORD PIC X. 88 FMS-OK VALUE "1". 01 SYMESG-RECORD. 05 SYMESG-DETAIL PIC X. 01 CSCTYP-RECORD PIC X. PROCEDURE DIVISION. 0000-START. PERFORM 1000-INITIALIZE. STOP RUN. 1000-INITIALIZE. MOVE ZERO TO WS-CODE-FLAG. COPY CPYCDERD REPLACING ==XXXXXX-RECORD.== BY ==CSCTYP-RECORD.==.
The CPYCDERD COPY file is as follows: CALL “UTZCDE” USING WS-CODE-FLAG CMD-RECORD SIO-RECORD ERR-RECORD S-RECORD FMS-RECORD SYUDAR-RECORD SYMESG-RECORD XXXXXX-RECORD. CALL SYMESG-DETAIL USING ERR-RECORD S-RECORD FMS-RECORD SYUDAR-RECORD SYMESG-RECORD XXXXXX-RECORD.
Additional reference words: 3.00 3.00a Copyright Microsoft Corporation 1993.