2種類の画面入出力
-
下の2つのプログラムを見てください。
両方とも、DISPLAY命令で画面に「HELLO A-VX WORLD」と表示して、ACCEPT命令で入力待ちになるプログラムです。
何か1文字入力するとプログラムが終了します。
- (1)サンプルプログラム5
-
000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. SAM005. 000030 ENVIRONMENT DIVISION. 000040 DATA DIVISION. 000050 WORKING-STORAGE SECTION. 000060 01 DSP-OUT PIC X(16) VALUE "HELLO A-VX WORLD". 000070 01 ACP-IN PIC X(01). 000080 PROCEDURE DIVISION. 000090 MPRG. 000100 DISPLAY DSP-OUT 000110 ACCEPT ACP-IN.
- (2)サンプルプログラム6
-
000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. SAM006. 000030 ENVIRONMENT DIVISION. 000040 DATA DIVISION. 000050 WORKING-STORAGE SECTION. 000060 01 DSP-WK PIC X(16) VALUE "HELLO A-VX WORLD". 000070 01 ACP-WK PIC X(01). 000080 SCREEN SECTION. 000090 SD GAMEN END STATUS IS ENDSTS. 000100 01 DSP-OUT. 000110 05 LINE 23 PIC X(16) USING DSP-WK. 000120 01 ACP-IN. 000130 05 LINE 24 PIC X(01) USING ACP-WK. 000140 PROCEDURE DIVISION. 000150 MPRG. 000160 DISPLAY DSP-OUT 000170 ACCEPT ACP-IN.
- 小入力命令/表示命令の説明
-
(1)も(2)も画面の入出力にDISPLAYとACCEPTを使っていますが、(1)のDISPLAY/ACCEPT命令と(2)のDISPLAY/ACCEPT命令は違う命令です。
(1)の方のDISPLAY命令は「表示命令」、ACCEPT命令は「小入力命令」です。 説明書から概要を下に抜き出します。
機能
ACCEPT(小入力)命令は,少量のデータを指定されたデータ項目へ格納する。
一般形式
書き方1
ACCEPT 一意名-1 [FROM 呼び名-1]
構文規則
書き方1では,呼び名-1は,環境部の特殊名段落でハードウェア装置(CONSOLE)に対応付けておかなければならない。
ACCEPT命令は,一意名-1のデータ項目の内容を,ハードウェア装置から読み込んだデータで置き換える。
FROM呼び名句が指定されていてもいなくても,操作卓からデータが入力される。
機能
DISPLAY(表示)命令は,少量のデータをハードウェア装置に表示する。
一般形式
DISPLAY {一意名-1 | 定数-1}・・・[UPON 呼び名-1] [WITH NO ADVANCING]
構文規則
呼び名−1は、環境部の特殊名段落でハードウェア装置(CONSOLE,またはGDD)に対応付けておかなければならない。
いろいろな装置に対してDISPLAYやACCEPTができるのが一般的なようですが、A−VXのCOBOL85の場合は、実質CONSOLE(端末装置の画面のことね)だけです。
- 画面制御機能のデータ表示命令とデータ受け取り命令
-
(2)のプログラムの方のDISPLAY命令とACCEPT命令は、「画面制御機能」の「データ表示命令」と「データの受け取り命令」となります。
DISPLAY/ACCEPT命令で指しているデータ項目が画面節(SCREEN SECTION)上のものになっています。
機能
ACCEPT(データの受け取り)命令は,指定された領域にディスプレイステーションよりデータを入力する。
一般形式
ACCEPT 一意名-1 [{ BEFORE | AFTER } ROLlING 〜後略〜
構文規則
一意名-1は画面節の画面データ記述項の名前でなければならない。
ACCEPT命令はディスプレイステーションからデータを一意名-1で定義された入力領域に入力し,その値をINTO句またはUSING句で指定された一意名-1に転記する。入力領域から一意名への転記に際しては通常の転記の規則に従う。
機能
DISPLAY(データの表示)命令は,画面上に指定した項目を表示する。
一般形式
DISPLAY {一意名-1}・・・ 〜後略〜
構文規則
一意名−1は画面節の画面データ記述項の名前でなければならない。
2種類のDISPLAY命令やACCEPT命令を1つのプログラム中で混在して書くのは良くないようです。
COBOL言語説明書中に、以下のような注意事項が書いてあります。
画面制御機能のACCEPT命令と小入力命令の書き方1のACCEPT命令を混在して使用した場合には、結果はどうなるかわからない。 画面制御機能のDISPLAY命令と表示命令のDISPLAY命令を混在して使用した場合、結果はどうなるかわからない。 - おまけ
-
何となく作ってみたA−VXのCOBOL85で一番短い(と思う)HELLO WORLDのプログラム。
DISPLAYもACCEPTも使っていないし、特殊すぎますね。
実はDISPLAY命令を使わなくても画面に文字を表示することができます。
000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. SAM007. 000030 PROCEDURE DIVISION. 000040 MPRG. STOP "HELLO A-VX WORLD".