PS2200 (4) プログラムの翻訳と実行
簡単なCOBOLプログラムを作成して、コンパイル、実行をします。当初は、OS2200の機能だけを使ったオーソドックスな方法でプログラミングしようとしたのですが、数十年のブランクのせいか、@IPFの操作が思うように進まないことと入力効率が良くないため、諦めてPS2200の拡張機能である@XEDITを使うことにしました(注:前記事の方法でエディタの設定が必要です)。
このページでは、OS2200に馴染みの無い方でも理解できるように、本稿で使っているOS2200固有の用語解説を文末に付け加えました。
次の順で進めます。
- @XEDITでCOBOLプログラムを書く。
- COBOLプログラムのエレメントが作られていることを確認する。
- @XEDITで入力データを作成する。
- @UCOBでコンパイル、@XQTで実行する。
- コンパイル・リストと実行結果を印刷する。
- コンパイル・リストをPCのファイルにコピーする。
- PCのディレクトリを表示する。
PS2200を起動して、USER画面(デマンド)からユーザID/パスワードと@RUN制御文を入力しているものとします。
SECURITY/SECURI @RUN RUN2、0,PS2200
@XEDITでCOBOLプログラムを書く
@CATで作業用のカタログファイルTESTを用意して、@XEDIT,Iを実行します。オプション”I”は新規作成の意味です。
@CAT,P TEST.,F @XEDIT,I TEST.PROG
なんということでしょう! 秀丸エディタが開きました。
シンボリック・エレメントを読んで出力するだけの簡単なプログラム(TEST.PROG)を入力して、上書き保存、終了します。
秀丸エディタを開いている間はPS2200のUSER画面はブロックされていて、秀丸エディタを終了するとUSER画面に”END XEDIT.”が表示され、操作を再開できます。
注)既存のエレメントを修正するときは、「@XEDIT,U TEST.PROG」のようにUオプションを付けます。オプションを付けないと読み込み専用モードになるので、せっかく入力した内容が保存されず悲しい思いをします。気を付けてください。
COBOLプログラムのエレメントが作られていることを確認する
プログラムファイルTESTに含まれるエレメント一覧を表示して、シンボリック・エレメントPROGが作られていることを確認し、その内容を@EDで表示します。
@PRT,T TEST. @ED,R TEST.PROG LNP!
結果は次の通りです。
@XEDITで入力データを作成する
引き続き、入力データ(TEST.DATA)も作ります。
@XEDIT,I TEST.DATA
@UCOBでコンパイル、@XQTで実行する
PS2200のUSER画面からコンパイルと実行をします。
@UCOB TEST.PROG @XQT TEST.PROG
コンパイルエラーはありません。下図のように表示されました。
コンパイル・リストと実行結果を印刷する
実行まで出来たので、コンパイラが生成したオブジェクト・コードを含む完全なコンパイルリストと実行結果を印刷することにします。USER画面から次のEXEC制御文を実行します。
@CAT,P PR-F.,F - (1) @BRKPT PRINT$/PR-F - (2) @HDG **** PS/2200 TEST **** @UCOB,L TEST.PROG @XQT TEST.PROG @BRKPT PRINT$ - (3) @P22PRINT PR-F.,PR2 - (4)
(1)印刷イメージを格納するカタログ・ファイルPR-Fを用意し、(2)USER画面への表示をPR-Fに出力するように切り替えます。(3)コンパイルと実行を終えたら、出力先をUSER画面に戻します。(4)PR-Fの内容をPR2に印刷します。このPR2は、前記事でConfigurationに設定したプリンタの名前です。PDF作成のダイアログが表示され、ファイル名を指定すると印刷イメージがPDFに書き込まれます。
注)このダイアログでキャンセルを押すと、不具合なのかPS2200がエラー終了して痛い目に会いました。
PS2200の画面は次の通りです。
作られたPDFファイルがこれです。コンパイルリストのページ制御がプリンタのマージン設定と合っていないようで、次ページに6行余分にはみ出て無駄な空白が生じていました。
コンパイル・リストをPCのファイルにコピーする
印刷イメージを、PCのテキストファイルとしてコピーすることもできます。@EXPORTを使います。
@EXPORT PR-F.
EXPORT 3R1Q1 (110227 2243:54) 2016 Oct 17 Mon 0432:55
Enter PC file name for EXPORT write > C:\TT\PR-F.TXT
END EXPORT. RECORDS OUTPUT = 667.
作られたテキストファイルがこれです。
PCのディレクトリを表示する
最後に、PS2200からPCのCドライブのディレクトリを表示してみました。
@P22DIR
P22DIR 3R1Q1 (110227 2243:54) 2016 Oct 17 Mon 0440:55
Enter PC file or directory name or mask > C:\
わざわざPS2200の画面に表示させる必要性が分かりませんが、このようになりました。
OS2200固有の用語解説
- プログラムファイル
- 1階層のWindowsフォルダのようなもので、複数のエレメントを含むことができる。IBM系の区分編成ファイルと類似した方式。
- エレメント
- Windowsのファイルに相当し、プログラムファイル内に作ることができる。シンボリック・エレメント(テキスト)やアブソリュート・エレメント(実行可能プログラム)など、数種類のタイプがある。プログラムファイル名とエレメント名をピリオド(.)で繋ぎ、TEST.PROGのように表記する。
- ラン
- IBM系のジョブに相当し、一括処理のバッチ・ランと、端末から会話モードで実行するデマンド・ランがある。
- EXEC制御文
- ランの中で使われるコマンドで、WindowsやUNIXのコマンドに相当する。@記号で始まるのが特徴で、日本の旧UNIVAC系エンジニアは@を「単価」と呼んできた(@RUNはタンカラン)。もちろん、Eメールアドレスの場合は「アットマーク」と呼ぶ。
- @CAT
- ファイルには、ランが終了すると消滅する一時的なものと、消滅しないカタログ・ファイルがある。@CATは、その後者を作るEXEC制御文。
- @ED
- 古くからあるライン・エディタ。
- @IPF
- フルスクリーン・エディタとしての利用が一般的だが、デマンド端末の操作全体を引き受けられる豊富な機能を持っている。IBMのISPFと同時期に作られた。
- @UCOB
- ANSI COBOL85に準拠したCOBOLコンパイラ。
- @XQT
- ユーザ・プログラムを実行する。