見出し画像

スクリーンエディタ

今、使われているCUI(キャラクタユーザーインターフェイス)は、大体においてプロンプトに続いて文字を入力して、最後にエンターキーを押すことで、行を実行するというスタイルで、複数の行を含むようなテキストを扱うには、エディタを起動し、その中でテキストを編集するという流儀を取っています。

当初のパソコンの多くは、スクリーンエディタという機能を内蔵していて、画面全体がエディタでも有り、リターンキー(エンターキーと意味は同じ)を打つと、カーソルの有る行が実行されるというのが普通でした。この機能が事実上、最初に実装されたのは御三家のひとつであるPETで、とても使いやすいと評判になり、続くパソコンたちにも実装されるようになりました。

具体的には、

10 PRINT “A”

という行が画面に表示されていたとしましょう。表示する文字をAからBに変更したいとき、上下左右の矢印キーを使い A のところにカーソルを移動して B を打てば、

10 PRINT “B”

と表示内容が変わります。ここで、この行番号10の行にカーソルがある状態でリターンキーを打てば、行番号10の行の内容が表示されているものに変更されます。このロジックだと複数の行に表示されるひとつの行の挙動が少しばかりややこしいのですが、大体は思った通りの挙動をしていたので、そんなに心配しなくても大丈夫です。

これに比べるとapple][は少しトリッキーな使い方のスクリーンエディタでした。やはり

10 PRINT “A”

という行があった場合、矢印キーは左と右しかないので、上に上がることができません(入力した後は、下の行にカーソルが移っているはずです)。カーソルの位置を変えるには、矢印キーではなく、ESCキーに続いて、A(右),B(左),C(下),D(上)のいずれかのキーを押すのです。この方法でカーソルを目的とする行の先頭まで持っていきます。そこから右矢印キーを押すことで、カーソルの下に表示されている文字がキーボードから入力されたかのようにキーバッファにコピーされカーソル位置は右に進みます。Aまで来たところで、右矢印ではなくてBを打ち、残りは行の最後まで再び右矢印でキーバッファに内容を移します。これで画面は

10 PRINT “B”

になっているはずです。最後にリターンを押せば、キーバッファの内容が実行されて新しい内容がメモリに格納されるわけです。

ちなみに左矢印キーはキーバッファの最後の内容を捨てて、カーソル位置を左に移します。右矢印で右に行き過ぎた場合は、これで戻って再び行の編集を続けるわけですね。

つまり実際に画面上の表示がどうなっていようと、ESCを使って自由自在にカーソル位置を変更して右矢印で内容を取り込みつつキーバッファに行を作り上げていくのです。画面は常に上書きモードで、挿入モードなんて言うものは無かったので、文字列の途中に文字を追加したい場合などは、このようにESCを駆使し右矢印で内容を取り込むことで、行を編集することができました。まあ画面上では何が起こっているのかわからなかったでしょうね。頭の中にはキーバッファが見えていましたけど。スクリーンエディタのようにも見えたかもしれませんが、実質的にはラインエディタだったわけです。

もうひとつのTRSは、あまり良く覚えていないのですが、ファンクションキーを使いながらのラインエディタではあったようです。MS-DOSのEDLINに近い感じといえば、わかる人にはわかるかもしれませんね。

なお、このABCDのESCは、都度、押さなければいけないので、行を2つ上がるには、ESC+D+ESC+Dになります。ちょっと面倒ですよね。PLUSになった頃には、ちょっとだけ改良されてESCに続いてI(上),J(左),K(右),M(下)が押された場合にはカーソル移動モードとなり、IJKMが押されている限りカーソルが移動し続けます。他のキーを押せばカーソル移動モードから出ます(大抵はスペースで抜けていました)。行を2つ上がるには、ESC+I+I+SPで2つ上がるのにキー4つ必要なことは変わりませんが、もっと移動するときにはだいぶ手間が減ります。さらに同じキーを続けて押すには、REPTキーが使えるので、だいぶ楽ができるようになりました。

UNIXで端末設定をいじったことがあれば、ご存知かもしれませんが、画面上のカーソル位置を変えるのにESCシーケンスというのを使います。これを入力側で使っている感じですかね。

なおESCに関係する組み合わせとして、他にも@(画面クリア),T(カナなどへのトグル)もあります。

文字でツラツラと書いてしまったのですが、ちょっとわかりにくいかもしれません。本当はイラストとか書けばいいのかもしれませんが絵心がないもので、あしからず。いずれにせよキーを叩いてみないと実感はできないと思うので、興味があればエミュレータとか動かしてみるといいかもしれません。

入力したものが、その場ですぐに実行できるというのはお手軽で便利です。シェルの類はインタプリタなのでBASICに近いので想像しやすいかもしれません。エディタの中でシェルと行ったり来たりせずに、その場で内容が実行できる感じです。

とにかく当時のパソコンはBASICが基本中の基本で、プログラムを書くにも、設定をするのも状態を確認するのも全部BASICのコマンドでした。言ってみればBASIC自身がOSのような機能も果たしていたのです。BASICさえ使いこなせばパソコンのすべての機能にアクセスできたんですね。

もちろんBASICにない機能は機械語で書かないとならないのですが、機械語を書くことすらBASICで行うのです。BASICを得意としていたMICROSOFTがOSに軸足を移していったのも理解できる話ではあります。

さて、ようやくDOSの話に進める所まで来たかなぁ?


この記事が気に入ったらサポートをしてみませんか?