当サイトでは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コマンドでソースプログラムを保存
メインフレームエディタは以下の画面構成になっています。
尚、TOP画面からはエディタの他に、ファイル作成ユーティリティーなどいろいろな機能にジャンプできます
エディットするファイル名を入力します。既存のファイルしか指定できません。新しくファイルを作るには別の画面で空のファイルを作成する必要があります。
エディットできるファイルは「順次編成ファイル」か「区分順次編成ファイル」です。
一般的にメインフレームのソースプログラムは区分順次編成ファイル保管されます。これはひとつのファイルに複数のプログラムを保管できるファイル形式です。
ファイル選択画面で区分順次編成ファイルを指定した場合はこの画面で、エディットするプログラムを選択します。
プログラムの一覧が表示されているので、その左に「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 」と「 (( 」で囲みます。
プライマリーコマンド入力域に入力するプライマリーコマンドを紹介します。プログラム全体に対して発行するコマンドです。
「スクロール」「セーブ(保存)」「検索」「置換」「終了」などが多用するプライマリーコマンドです。
画面を上下左右にスクロールします。
「UP」 - 上スクロールします。一般的にF7に設定されています。
「DOWN」 - 下スクロールします。一般的にF8に設定されています。
「LEFT」 - 左スクロールします。
「RIGHT」 - 右スクロールします。
「TOP」 - 先頭にジャンプします。「UP M」でも同じです
「BOTTOM」 - 末尾にジャンプします。「DOWN M」でも同じです
「UP nn」「DOWN
nn」でnn行スクロールします。例えば「DOWN 300」で下に300行スクロールします。
コマンド入力によるスクロール量は スクロール行数設定域 に以下の値のいずれかを設定します
「PAGE」 - 現在表示されている1ページ分スクロールします
「HALF」 - 現在表示されている半ページ分スクロールします
「nn」(nは数字) - n行スクロールします
「CSR」 - 現在のカーソル位置を基準にスクロールします。
お勧めのスクロール量設定は「CSR」です。任意に量をコントロールできる事が理由です。
プログラム内の特定文字を検索します
「FIND 検索文字」 - 現在のカーソル位置から下に検索文字を検索します。「F 検索文字」でも構いません。
「RFIND」 - 直前の検索コマンドを再実行します。一般的にF5に設定されています。
「CHANGE 検索文字 置換文字」 - 現在のカーソル位置から下に検索文字を検索し、見つかったら置換文字で置き換えます。「C 検索文字 置換文字」でも構いません
「CHANGE 検索文字 置換文字 ALL」でプログラム内の全ての検索文字を、一度に置換文字に置き換えます
「RCHANGE」 - 直前の置換えコマンドを再実行します。一般的にF6に設定されています。
「RFIND (F5)」と「RCHANGE
(F6)」を組み合わすと、検索した結果から置き換えを判断することもできます。
「SAVE」 - プログラムを保存します
「END」 - プログラムを保存して、一つ前の画面に戻ります
「CANCEL」 - エディット作業をキャンセルして、一つ前の画面に戻ります。「CAN」と省略しても構いません。
「HEX」 - 文字の下に16進数を表示します。パソコンでいうところのバイナリーエディターです。文字を編集しても、16進数を編集しても構いません
メインフレームエディタの基本的な使い方(コマンド)を解説してきました。とりあえずこれらのコマンドを覚えていればプログラム開発ができると思います。
他にも知っておくと便利なコマンドや、オプションがたくさんありますので、ヘルプやマニュアルを読んで下さい。
メインフレームはまだまだ現役で使われているコンピュータです。多くの若いコンピュータエンジニアがメインフレームを扱えるようになって欲しいと思います。