日本CA株式会社(コンピュータ・アソシエイツ。以前はアシスト社で販売)の簡易言語UFO言語をCOBOLに変換します。
以下にUFO言語(CICS版)をCOBOL言語に変換した例を掲載します。
画面定義体は割愛しています
- LABEL COMMAND FIELD #1 OP FIELD #2 'GOTO' OR
-1
02 *
03 *
04 WHEN /FIRSTD = /YES * シヨキ ショリ
05 MOVE /BLANK TO SENTAKU * ワ-ク エリア ノ クリア
06 MOVE /BLANK TO SWMSG
07 MOVE /BLANK TO GROUP
08 MOVE /KLIT TO SWMSGSO '0E'
09 MOVE /KLIT TO SWMSGSI '0F'
10 ENDWHEN
58 MSG1 MOVE /LIT TO SWMSG1 STARTが完了
59 MOVE /LIT TO SWMSG2 していないので処
60 MOVE /LIT TO SWMSG3 理できません。
61 MOVE SWMSG TO /MSG EXIT
62 *
63 MSG2 MOVE /LIT TO SWMSG1 この端末では
64 MOVE /LIT TO SWMSG2 業務はで
65 MOVE /LIT TO SWMSG3 きません。
66 MOVE SWMSG TO /MSG EXIT
67 *
IDENTIFICATION DIVISION.
PROGRAM-ID. ONLINE1.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY ONLINE1.
COPY ONLINE1I.
COPY ONLDB11.
COPY ONLW100.
COPY SYNCDCOM.
COPY SYSVINIT.
COPY DFHAID.
*------------------------------------
* ワークエリア(共通)
*------------------------------------
01 K PIC S9(8) COMP-4.
01 L PIC S9(8) COMP-4.
01 M PIC S9(8) COMP-4.
01 N PIC S9(8) COMP-4.
01 NEXT-DID PIC X(8).
COPY DSPDATEW.
*-------------------------------------
* ワークエリア(追加)
*-------------------------------------
01 WK-KJLIT PIC X(50).
*------------------------------------
* 連携域
*------------------------------------
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(7000).
EJECT
*------------------------------------
* 処理
*------------------------------------
PROCEDURE DIVISION.
ONLINE1O-MAIN SECTION.
ONLINE1O-MAIN-START.
* 画面入力
MOVE 'ONLINE1' TO DID.
MOVE LENGTH OF ONLINE1I TO MSGL.
CALL DSPIO USING DFHEIBLK DSPGET SYNC-DCOM
ONLINE1-INF ONLINE1I.
PERFORM PFKEYCHK.
* 画面入力異常
IF IORET NOT = '00'
GO TO ONLINE1O-MAIN-DSPPUT
END-IF.
ONLINE1O-MAIN-OUT.
*
*
** シヨキ ショリ
IF FIRSTD = 'YES'
THEN
** ワ-ク エリア ノ クリア
MOVE SPACE TO SENTAKU
MOVE SPACE TO SWMSG
MOVE SPACE TO GROUP--S
MOVE X'0E' TO SWMSGSO
MOVE X'0F' TO SWMSGSI
END-IF.
ONLINE1O-MAIN-MAPOUT.
PERFORM MAPOUT.
MOVE 'ONLINE1' TO DID.
MOVE LENGTH OF ONLINE1O TO MSGL.
ONLINE1O-MAIN-DSPPUT.
* 画面出力
CALL DSPIO USING DFHEIBLK DSPPUT SYNC-DCOM
ONLINE1-INF ONLINE1O.
ONLINE1O-MAIN-EXT. EXIT.
EJECT.
*
ONLINE1O-MSG1 SECTION.
ONLINE1O-MSG1-START.
MOVE 'STARTが完了' TO WK-KJLIT.
MOVE WK-KJLIT(2:16) TO SWMSG1.
MOVE 'していないので処' TO WK-KJLIT.
MOVE WK-KJLIT(2:16) TO SWMSG2.
MOVE '理できません。' TO WK-KJLIT.
MOVE WK-KJLIT(2:14) TO SWMSG3.
MOVE SWMSG TO MSGAREAO.
GO TO ONLINE1O-MSG1-EXT.
*
ONLINE1O-MSG2.
MOVE 'この端末では' TO WK-KJLIT.
MOVE WK-KJLIT(2:16) TO SWMSG1.
MOVE '業務はで' TO WK-KJLIT.
MOVE WK-KJLIT(2:16) TO SWMSG2.
MOVE 'きません。' TO WK-KJLIT.
MOVE WK-KJLIT(2:10) TO SWMSG3.
MOVE SWMSG TO MSGAREAO.
GO TO ONLINE1O-MSG1-EXT.
ONLINE1O-MSG1-EXT. EXIT.
EJECT.