当サイトではWindowsでプログラム開発をされている方が、メインフレームのプログラム開発をする事になった場合に、まずネックになるメインフレームのエディタの初歩的な使い方を解説しています。
対象としているメインフレームは以下の通りです。
メーカー:IBM
OS:MVS(S/390、Z/OS)
通信:TSO
エディタ:ISPF
Windowsのエディタ操作を知っているメインフレーム初心者向けの内容です。
よってメインフレームエディタの全機能を解説している訳ではありません。
IBMメインフレームが対象ですが私が知っている限り富士通や日立の大型メインフレームもほぼ同じ使い方でした。
【注意事項】
当サイトとメインフレームメーカー各社とは一切関係ありません。
内容には充分に注意をしておりますが責任を負うものではありません。その点を了解の上で当サイトを活用下さい。
プログラム開発に欠かせないエディタですが、パソコン用エディタとメインフレームエディタとは操作方法が大きく異なります。
【相違点1】
コピー&ペーストやカット&ペーストを行単位で行います。パソコン用エディタのように自由な場所にコピーしてペーストするようなことはできません。
【相違点2】
CUIですのでコマンドを覚えておく必要があります。
そのコマンドも「Ctrl+F」で検索、「Ctrl+C」でコピーというようにパソコン用エディタの標準とは異なります。
【相違点3】
カーソル移動キーでスクロールしません。パソコン用エディタのように↑や↓キーを押し続けてもスクロールしません。
メインフレームもパソコンも入力を確定してコンピュータに処理させるために、Enterキーを押す必要があります。パソコンの場合にはEnterキーの代わりにボタンをクリックする場合もありますね。
メインフレームのエディタも同様にコマンドを入力後に、Enterキーを押す必要があります。例えばファイルを保存する「SAVE」コマンドを利用するには、コマンド入力エリアにSAVEと入力してからEnterキーを押します。
このEnterキーが曲者なんです。
一般に最近のキーボードはEnterと改行は同じキーにアサインされています。
このキーを押したときにEnterキーとして動作するか、改行キーとして動作するかは、各ソフトウェアが決めているのです。
ちょっと話がそれますが、IBMメインフレームを利用するために、パソコンでは「3270エミュレータ」と呼ばれるソフトウェアが必要です。これはIBMメインフレームの端末「3270」というハードウェアをエミュレーションしてくれるソフトウェアです。
この端末「3270」ではEnterキーと改行キーが別々の独立したキーとして存在していました。つまりメインフレームを使うにはEnterキーと改行キーが別々の方が使いやすいという事です。
現在、「3270」なんてハードウェアはありませんので、パソコンにソフトウェア「3270エミュレータ」をインストールして、メインフレームを利用するのです。
しかし最近のキーボードはEnterと改行は同じキーにアサインされています。そして「3270エミュレータ」ではEnterと改行がアサインされたキーを押した時にはEnterとして動作します。
これでは改行(次の行の先頭にカーソルを移動する)ができません。
カーソル移動は矢印キーで行うと割り切れば良いかもしれませんが、各行の左端にコマンドを入力するメインフレームエディタで、改行が使えないのは非常に使い勝手が悪いのです。
そこで何らかのキーをEnterキーに置き換え、Enterと改行がアサインされたキーは改行キーとして使うのがメインフレーム利用者の常識です。キーの置き換えは「3270エミュレータ」のオプションで設定する事が多いです。
右Ctrlキーがあるキーボードあれば、それをEnterキーとする事が一般的だと思います。
また、当サイトで「XXXXコマンドを入力する」とは「XXXX+Enterキー」と考えて下さい。
メインフレームエディタではコマンドを入力する事を省略する為にファンクションキーによく使うコマンドをアサインして使うことが一般的です。たとえばファイルをセーブしてエディタを終了するコマンド「END」をF3にアサインすれば、「END+Enterキー」を押すかわりにF3を押すだけです。
またファンクションキーの事を「PFキー」と呼ぶ場合があります。これは「プログマブルファンクションキー」の略です。F3の事をPF3と呼ぶわけです。
ファンクションキーの設定方法
ファンクションキーはISPFのメニュー番号 0.3 で設定します。
標準では以下のように設定されています。
F1 - HELP (ヘルプ表示)
F2 - SPLIT (画面分割)
F3 - END (終了、一つ前の画面に戻る)
F4 - RETURN (トップ画面に戻る)
F5 - RFIND (再検索)
F6 - RCHANGE (再置換)
F7 - UP (上スクロール)
F8 - DOWN (下スクロール)
F9 - SWAP (アクティブ画面交換)
F10 - LEFT (左スクロール)
F11 - RIGHT (右スクロール)
F12 - RETRIEVE (コマンド再実行)
良く使うコマンドを登録して使い易くしましょう
ソースプログラムのエディットの流れは以下のとおりです。
1.ファイル選択画面でプログラムが保存されている区分順次編成ファイルを入力
2.プラグラム選択画面でエディットするプログラムを選択
3.エディット画面でソースプログラムを作成・編集。ラインコマンドやプライマリーコマンドを活用
4.SAVEコマンドでソースプログラムを保存
エディットするファイル名を入力します。既存のファイルしか指定できません。新しくファイルを作るには別の画面で空のファイルを作成する必要があります。
エディットできるファイルは「順次編成ファイル」か「区分順次編成ファイル」です。
一般的にメインフレームのソースプログラムは区分順次編成ファイル保管されます。これはひとつのファイルに複数のプログラムを保管できるファイル形式です。
ファイル選択画面で区分順次編成ファイルを指定した場合はこの画面で、エディットするプログラムを選択します。
プログラムの一覧が表示されているので、その左に「S」を入力します。
これが実際のエディト画面です。大きく4つの領域に分かれています。
1.プライマリーコマンド入力域
エディット中のソースプログラム全体に対するコマンド(プライマリーコマンド)を入力する領域
2.スクロール行数設定域
スクロールコマンド入力時にスクロールする行数を設定する領域
3.行番号 & ラインコマンド入力域
行に対するコマンド(ラインコマンド)を入力する領域。行番号が表示されている上からコマンドを入力する
4.エディット域
実際にソースプログラムを入力する領域
エディット域にソースプログラムを入力する方法は、パソコンエディタと同じです。普通に文字入力すればOKです。
ラインコマンド入力域に入力するラインコマンドを紹介します。特定の行に対して発行するコマンドです。
「コピー&ペースト」「カット&ペースト」「行削除」「行挿入」などが代表的なラインコマンドです。
削除したい行に「D」を入力します。
複数行削除したい場合は削除開始行と削除終了行の両方に「DD」を入力します。つまり「DD」で挟むわけです。
「Dn」(nは数字)で複数行削除する事もできます。「D5」は入力行を含めて5行削除します。
コピーしたい行に「C」を入力します。つまりコピー元を指定するコマンドです。
複数行コピーしたい場合はコピー開始行と終了行の両方に「CC」を入力します。つまり「CC」で挟むわけです。
また「Cn」(nは数字)で複数行を指定する事もできます。「C5」は入力行を含めて5行コピーします。
コピー先は「A」コマンドで指定します。「A」を入力した次の行にコピー元が挿入されます。
移動したい行に「M」を入力します。つまり移動元を指定するコマンドです。
複数行コピーしたい場合は移動開始行と終了行の両方に「MM」を入力します。つまり「MM」で挟むわけです。
また「Mn」(nは数字)で複数行を指定する事もできます。「M5」は入力行を含めて5行移動します。
移動先は「A」コマンドで指定します。「A」を入力した次の行に移動元が挿入されます。
行内の文字列を左右にシフトするコマンドです。IF分などのプログラム字下げ入力に使います。
「 )n 」 (nは数字)でn文字右へシフトします。「 )3 」で3文字右へシフトします。複数行を一度に右シフトしたい場合は「 ))n 」と「 )) 」で囲みます。
「 (n 」 (nは数字)でn文字左へシフトします。「 (3 」で3文字左へシフトします。複数行を一度に左シフトしたい場合は「 ((n 」と「 (( 」で囲みます。
メインフレームエディタの基本的な使い方(コマンド)を解説してきました。とりあえずこれらのコマンドを覚えていればプログラム開発ができると思います。
他にも知っておくと便利なコマンドや、オプションがたくさんありますので、ヘルプやマニュアルを読んで下さい。
メインフレームはまだまだ現役で使われているコンピュータです。多くの若いコンピュータエンジニアがメインフレームを扱えるようになって欲しいと思います。
メインフレームエディタの基本的な使い方(コマンド)を解説してきました。とりあえずこれらのコマンドを覚えていればプログラム開発ができると思います。
他にも知っておくと便利なコマンドや、オプションがたくさんありますので、ヘルプやマニュアルを読んで下さい。
メインフレームはまだまだ現役で使われているコンピュータです。多くの若いコンピュータエンジニアがメインフレームを扱えるようになって欲しいと思います。