KCORAL/NCORAL/CANOAID言語をIBM・IMS/DB/DC対応のCOBOLに変換します。
CORAL言語はオンライン処理やバッチ処理を簡便に記述できる簡易言語で、日立の汎用機ユーザーでよく使われています。
当社ツールではCORAL/CANOAIDのシンタックス(文法)からCOBOL言語プログラムを自動生成することができます。
以下にKCORAL言語をCOBOL言語に変換した例を掲載します。
000100IONLINE サンプルオンライン GAMENA MPPR
000200DGAMEN Iガメン
000300DWRKDB IサンプルDB
000400*
000500T DFCセット ... #20-10
000600* --------------------------------------------------------
000700* ワ-ク エリア
000800* --------------------------------------------------------
000900V01 キ-1 X(06) 'TEST'
001000V 01 フラグ
001100V 02 エラーフラグ 9(01) ZERO.
001200 #10.
001300* --------------------------------------------------------
001400* メイン ル-チン
001500* --------------------------------------------------------
001600*
001700 #10-10.
001800 ガメン オ ヨム.
001900 イジヨウ ナラ シユウリヨウ-シヨリ.
002000 #10-20 オ ジツコウ スル.
002100 #20 ヘ イク.
002200*
002300 #10-20.
002400 サンプルDB(キ-1) オ ヨム.
002500 モシ セイジヨウ ナラ
002600 #10-20 オ デル,
002700 デナケレバ
002800 1 ---> エラーフラグ.
002900*
003000 #20.
003100 DFCセット オ ジツコウ スル.
003200 ガメン オ カク.
003300 END.
003400*
003500 #20-10.
003600 'DFC'(DFCAREAA,HIGH,BLINK) オ ヨブ.
IDENTIFICATION DIVISION.
PROGRAM-ID. ONLINE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
COPY WRKDB ・・・・・
COPY GAMENSPA.
COPY GAMENQ.
COPY CONVWRK.
COPY CONVWRKC.
COPY COR0COMM.
COPY ACDATETI.
COPY DFCLIST.
01 MAPI-REC.
02 MAPI-LEN PIC S9(04) COMP-4.
02 MAPI-ZZ PIC S9(04) COMP-4 VALUE ZERO.
02 MAPI-AREA.
03 MAPI-ID PIC X(04).
03 MAPI-CLR PIC X(01).
03 MAPI-PFK PIC X(01).
03 FILLER PIC X(2000).
01 MAPO-REC-GRP.
02 MAPO-REC.
03 MAPO-LEN PIC S9(04) COMP-4.
03 MAPO-ZZ PIC S9(04) COMP-4 VALUE ZERO.
03 MAPO-AREA.
04 MAPO-LIN PIC S9(04) COMP-4.
04 MAPO-COL PIC S9(04) COMP-4.
04 FILLER PIC X(2000).
02 MAPO-DFC PIC X(900).
02 MAPO-GAMEN-DFC REDEFINES MAPO-DFC.
03 DFCAREA-DFC PIC X(03).
01 WRKDB-SSA.
02 FILLER PIC X(08) VALUE 'WRKDB'.
02 FILLER PIC X(01) VALUE '('.
02 WRKDB-SSA-KEY PIC X(08) VALUE 'WRKDBCTRL'.
02 WRKDB-SSA-OP PIC X(02) VALUE '= '.
02 WRKDB-SSA-VALUE PIC X(10) VALUE SPACE.
02 FILLER PIC X(01) VALUE ')'.
01 GAMENO PIC X(08) VALUE 'GAMENO'.
* --------------------------------------------------------
* ワ-ク エリア
* --------------------------------------------------------
01 KI-1 PIC X(06) VALUE 'TEST'.
01 FLG.
02 ERRFLG PIC 9(01) VALUE ZERO.
LINKAGE SECTION.
01 IO-PCB.
02 IO-NAME PIC X(08).
中略
01 WRKDB-PCB.
02 WRKDB-NAME PIC X(08).
02 WRKDB-LEV PIC X(02).
02 WRKDB-STS PIC X(02).
02 WRKDB-OPT PIC X(04).
02 FILLER PIC X(04).
02 WRKDB-SEG PIC X(08).
PROCEDURE DIVISION
USING IO-PCB WRKDB-PCB.
MAIN-RTN SECTION.
MAIN-RTN-START.
PERFORM INIT-RTN
PERFORM L10
PERFORM FINAL-RTN.
MAIN-RTN-EXT.
EXIT.
L10 SECTION.
L10-START.
* --------------------------------------------------------
* メイン ル-チン
* --------------------------------------------------------
*
L10-10.
* 画面入力
* ガメン オ ヨム.
CALL 'CBLTDLI' USING GU
IO-PCB
GAMENSPA
CALL 'CBLTDLI' USING GN
IO-PCB
MAPI-REC
CALL DSPAPI USING DSPAPI-CTLI
GAMEN-INF
MAPI-REC
GAMENSPA
MOVE IO-STS TO WK-STATUS
IF WK-STATUS NOT = SPACE
THEN
* シユウリヨウ-シヨリ
PERFORM FINAL-RTN
GOBACK
END-IF
PERFORM L10-20
THRU L10-20-EXT
GO TO L20.
*
L10-20.
* DB処理
* サンプルDB(キ-1) オ ヨム.
MOVE KI-1 TO WRKDB-SSA-VALUE
CALL 'CBLTDLI' USING GHU
WRKDB-PCB
SAMPLEDB-REC
WRKDB-SSA
MOVE WRKDB-STS TO WK-STATUS
IF WK-STATUS = SPACE
THEN
GO TO L10-20-EXT
ELSE
MOVE 1 TO ERRFLG
END-IF.
L10-20-EXT.
EXIT.
*
L20 SECTION.
L20-START.
PERFORM L20-10
THRU L20-10-EXT
* 画面出力
* ガメン オ カク.
MOVE LENGTH OF MAPO-REC TO MAPO-LEN
CALL DSPAPI USING DSPAPI-CTLO
GAMEN-INF
MAPO-REC
GAMENSPA
CALL 'CBLTDLI' USING ISRT
IO-PCB
GAMENSPA
CALL 'CBLTDLI' USING ISRT
IO-PCB
MAPO-REC
GAMENO
MOVE IO-STS TO WK-STATUS
PERFORM FINAL-RTN
GOBACK.
*
L20-10.
* DFC処理
MOVE DFC-HIGH-BLINK TO DFCAREA-DFC
L20-10-EXT.
EXIT.
*--------------------------------------------
* PGM開始処理
*--------------------------------------------
INIT-RTN SECTION.
INIT-RTN-START.
CONTINUE.
INIT-RTN-EXT. EXIT.
*--------------------------------------------
* PGM終了処理
*--------------------------------------------
FINAL-RTN SECTION.
FINAL-RTN-START.
CONTINUE.
FINAL-RTN-EXT. EXIT.