石原 博の覚書

電子工作に関する日々の覚書を記載します

Forthのエディタ(スクリーンエディタ)

2021-05-23 18:17:58 | 日記
現在流のスクリーンエディタと比較すると貧弱だが、Forthにもスクリーンエディタがある。
画面のコントロールは以下の4つのワードを使用する

AT (S col row -- )  カーソル位置の指定
BLOT (S col -- ) 行内カーソルより右クリア
DARK (S -- ) 画面クリア
-LINE (S -- ) 1行削除(下の行はスクロールアップ)

デフォールトではdumb端末を想定しており、
ATは (AT) (S col row -- ) 2DROP CR ;
BLOTは (BLOT) (S col -- ) C/L SWAP - SPACES ;
DARKは (DARK) (S -- ) 24 0 DO CR LOOP ;
-LINEは NOOP
となっている。

端末がANSIのエスケープシーケンスを受け付ける場合
例えばputtyとか、xtermとかなら以下の設定を受け付けることが出来る。
(avrcpmではputtyでシリアル、RunCPMではxtermなのでどちらもOK)

ANSIのエスケープシーケンスの場合
-----------------------------------
ANSI−AT カーソル位置の移動(n行、m列)  (esc)n;mH
ANSI-BLOT 行内カーソルより右をクリア  (esc)[K
ANSI-DARK 画面全体クリア  (esc)[2J
ANSI--LINE 1行削除(下の行はスクロールアップ) (esc)[1M


使用例
------
EDITOR ANSI (ボキャブラリEDITORを選び、ANSIによりエスケープシーケンスを使うように設定)
1 EDIT (スクリーン1を編集する)
ここで Enter your ID: ........... と表示されるので、適当にIDをいれて Enter

上部18行に現在のスクリーンデータ、その下1行が現在の編集行、
それ以下5行はForthへの入力コマンド等が表示される。(画面は24行想定 .ALLにハードコーディング)

1 NEW
とすると1行目から順に入力することが出来る。
(ただし上下左右のカーソルコントロール等は出来ない)


最新の画像もっと見る

コメントを投稿