メイン・プログラムおよび最初の引数: 命令コード
出口への引数は、標準 390 レベル 2 符号化規則に従っています。引数ごとにポインターが提供されます。
サンプル COBOL 出口は、COBOL がすべての引数をポインターとみなすという事実を利用します。COBOL は内部的に、関連する 01 構造のアドレスを LINKAGE SECTION に設定します。
以下のように、出口へのすべての呼び出しで、最初の引数は命令コードへのポインターになります。
01 RAM-OPCODE PIC S9(9) BINARY.
01 RAM-OPCODE-VAL REDEFINES RAM-OPCODE PIC X(4).
88 OPCODE-INIT-RAM VALUE X"09010000".
88 OPCODE-TERM-RAM VALUE X"09010001".
88 OPCODE-VALIDATE-REPOS VALUE X"09010004".
88 OPCODE-GET-1ST-MEM-REC VALUE X"09010014".
88 OPCODE-GET-NEXT-MEM-REC VALUE X"09010015".
88 OPCODE-GET-1ST-MEM-INFO VALUE X"09010010".
88 OPCODE-GET-NEXT-MEM-INFO VALUE X"09010011".
88 OPCODE-GET-DISPLAY-INFO VALUE X"09010008".COBOL コードでレベル 88 として定義されている呼び出しは、FMNCRAEX が提供するサービスです。
どのように OpCode が FMNCRAEX プログラムによって受け取られるかを示すメイン・プログラム:
PROCEDURE DIVISION USING RAM-OPCODE,
RAM-WORK-AREA-PTR,
RAM-PARM2,
RAM-PARM3,
RAM-PARM4,
RAM-PARM5,
RAM-PARM6.
MAIN SECTION.
STARTUP-RAM.
IF TRACELVL >= TRACEBAS THEN PERFORM TRACE-STARTUP.
MOVE 0 TO RAM-RC.
SELECT-RAM-FUNCTION.
EVALUATE TRUE
WHEN OPCODE-INIT-RAM
PERFORM INIT-RAM
WHEN OPCODE-TERM-RAM
PERFORM TERM-RAM
WHEN OPCODE-VALIDATE-REPOS
PERFORM VALIDATE-REPOS
WHEN OPCODE-GET-1ST-MEM-REC
PERFORM GET-1ST-MEM-REC
WHEN OPCODE-GET-NEXT-MEM-REC
PERFORM GET-NEXT-MEM-REC
WHEN OPCODE-GET-1ST-MEM-INFO
PERFORM GET-1ST-MEM-INFO
WHEN OPCODE-GET-NEXT-MEM-INFO
PERFORM GET-NEXT-MEM-INFO
WHEN OPCODE-GET-DISPLAY-INFO
PERFORM GET-DISPLAY-INFO
WHEN OTHER
SET RAM-RC-UNKNOWN-OPCODE TO TRUE
END-EVALUATE.
RETURN-FROM-RAM.
MOVE RAM-RC TO RETURN-CODE.
GOBACK.