-
-
Notifications
You must be signed in to change notification settings - Fork 1
WonderWitch terminal program "WWTerm" patched to compile with Wonderful: http://www.kozos.jp/ww/index.html
License
WonderfulToolchain/WWTerm
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
wwterm - terminal on WonderWitch
■ はじめに
WonderWitch 上で動作するシリアルターミナルのアプリケーションです.
■ 使いかた
起動すると,以下のような画面がでます.
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃WWTerm(C)2000−2002 SAKAI Hir┃─┐
┃oaki. ┃ │
┃Push S at left−below of the ┃ │
┃virtual keyboard to change ┃ │
┃the serial port speed. ┃ │
┃Push C at left−below of the ┃ ├ ターミナル用
┃virtual keyboard to connect ┃ │ スクリーン
┃the serial port. ┃ │
┃■ ┃ │
┃ ┃ │
┃ ┃ │
┃ ┃─┘
┃−−−−−−−−−−−−−−−−−−−−−−−−−−−a┃← (1)
┃■bcdefg hijklmn 01234 ,.+−<>┃─┐
┃opqrstu vwxyz() 56789 :;*/= ┃ ├ 仮想
┃Spc Enter Esc BS Del Tab Clr┃─┘ キーボード
┃X1234)Select A)Input B)Shift┃─┐ 簡単な
┃Y1234)Cursor START)Quit 96LC┃─┘ キーの説明
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
画面の上半分はターミナル用のスクリーンです.画面の下半分は仮想キーボードと
簡単なキーの説明です.
カーソルは2つあります.ひとつはターミナル用スクリーンの中にあるもので,
「スクリーンカーソル」と呼ぶことにします.もう一つは仮想キーボード上に
あるもので,「キーボードカーソル」と呼ぶことにします.
キーボードカーソルは,X1,X2,X3,X4 で移動できます.
Aを押すと,キーボードカーソルが指している文字が入力されます.
現在キーボードカーソルが指しているキーの意味は,仮想キーボードの
右上に表示されます.(図中の(1))
START キーで WWTerm を終了します.
キーボードの一番右下にある 96LC というのは,次の意味を持ちます.
96LC
↑ ↑↑
│ │└─ シリアルポートの接続状態(C:接続,N:非接続)
│ └── ログの採取状態(L:ログ採取中,N:採取中でない)
└──── シリアルポートのボーレート(96:9600bps,384:38400bps)
B を押すとキーボードが mode1 → mode2 → mode3 → mode1 → ...
という順に切り替わります.以下に各modeでのキーボードの意味を説明します.
■ キーボード(mode1)
mode1 のキーボードは以下のようになっています.
---------------------------a
abcdefg hijklmn 01234 ,.+-<>
opqrstu vwxyz() 56789 :;*/=
Spc Enter Esc BS Del Tab Clr
X1234)Select A)Input B)Shift
Y1234)Cursor START)Quit 96LC
mode1 は主に英小文字と数値の入力です.また,Spc(スペース,0x20),Enter(0x0d),
Esc(0x1b),BS(バックスペース,0x08),Del(Delete,0x7f),Tab(0x09),
Clr(画面クリア(0x0c))が入力できます.
mode1の場合には,Y1,Y2,Y3,Y4 はスクリーンカーソルの移動になります.
スクリーンカーソルの移動時には,シリアル接続している際には,カーソル移動の
エスケープシーケンスを出力します.非接続の場合には,スクリーン上で
スクリーンカーソルが動くだけです.
■ キーボード(mode2)
mode2 のキーボードは以下のようになっています.
---------------------------A
ABCDEFG HIJKLMN !"#$%&'~^ ^v
OPQRSTU VWXYZ{} []|\@`?_ <>
NL Bel F1F2F3F4F5F6F7F8F9F10
X1234)Select A)Input B)Shift
Y1234)Screen START)Quit 96LC
mode1 は主に英大文字と記号の入力です.
NL は NewLine(0x0a),Bel はベル(0x07)です.
また,右端の矢印(このファイルでは ^v<> のようになっていますが,実際には
矢印になってます)は,スクリーンカーソルの移動(mode1でのY1,Y2,Y3,Y4と同等)です.
F1〜F10はファンクションキーです.
mode2 での Y1,Y2,Y3,Y4 は現在では将来のための予約機能になっています.
■ キーボード(mode3)
mode3 のキーボードは以下のようになっています.
----------------------Ctrl-A
cAcBcCcDcEcFcGcHcIcJcKcLcMcN
cOcPcQcRcScTcUcVcWcXcYcZ
Connect Speed Clean Mode Log
X1234)Select A)Input B)Shift
Y1234)Fn1234 START)Quit 96LC
cA 〜 cZ は,Ctrl-A(0x01) 〜 Ctrl-Z(0x1a) です.
Connect はシリアルポートの状態を接続/非接続に切替えます.非接続状態だと,
入力した文字をスクリーン上に表示するだけで,シリアルポートへの出力は行ない
ません.
Speed はシリアルポートの速度を 9600/38400bps で切替えます.
Clean はスクリーンのクリアです.シリアルポートにはなにも出力しません.
Mode は将来のための予約です.
Log はログ採取機能の ON/OFF です.ログ採取を ON にした場合,デフォルトでは
log0 というファイルを作成し,ログを採取します.log0 がすでに存在する場合には
log1, log2, ... というように順番でファイルを作成します.
(シリアルポートを非接続状態にしてログ採取を行なえば,簡易テキストエディタと
して使えるかも?)
mode3 では,Y1,Y2,Y3,Y4 はファンクションキーの F1,F2,F3,F4 に対応します.
■ 終了方法
Start ボタンで終了できます.
■ 簡単な使いかた
起動したら,まず最初に B を2回押してキーボードを mode3 にして,
Speed を押してシリアルポートの速度を設定して,次に Connect を押して
シリアルポートを接続状態にします.あとは自由に入力するだけです.
キーボードのキーの意味が常にキーボードの右上に表示されるので,キーの意味は
そちらを見ればだいたいわかると思います.
■ ファンクションキーについて
WWTerm は F1 〜 F10 までの10個のファンクションキーを持っています.
これらはデフォルトでは以下のようになっています.
F1 ls
F2 cd
F3 cd ..\n
F4 cat
F5 pwd\n
F6 eval `resize`\n
F7 TERM=vt100 ; export TERM\n
F8 setenv TERM vt100\n
F9 exit\n
F10 logout\n
ファンクションキーは /rom0/wwtfunc というファイルを置いておくことで自由に
カスタマイズできます.(wwtfunc が存在しない場合にはデフォルトの設定になります)
wwtfunc の書式は以下のとおりです.
・改行コード(\n すなわち 0x0a もしくは \r すなわち 0x0d)を行の区切りとし,
行ごとにファンクションキーの文字列を設定する.
・1行目の文字列はF1,2行目の文字列はF2というように対応する.
・行末に \ がある場合は,行を連結する.
・空行(改行コードのみの行)があった場合は,その行に対応するファンクションキーに
関しては,デフォルトの定義が使用される.
・連続する \n と \r は,MS-DOS の改行コードと考え,改行コードひとつぶんとして
認識する.(\r\n は \n として処理する,ということ)
・行中に \n という文字列があった場合には,改行コードに変換する.
(0x5c 0x6e は 0x0a に変換するということ)
・行中に \\ という文字列があった場合には,バックスラッシュに変換する.
(0x5c 0x5c は 0x5c に変換するということ)
wwtfunc のサンプルを添付しておくので,参考にしてください.
■ FreeBSD にシリアルログインする
では,UNIX マシンにシリアルログインしてみましょう.例として,
FreeBSD マシン(Linux でもいいけど)にシリアルポート経由でログインしてみます.
まず,当然ながら FreeBSD マシンを準備してください.
シリアルログインする前に,本当にシリアル接続できるのかテストしてみましょう.
WonderSwan をシリアルケーブルで FreeBSD マシンに接続します.
FreeBSD で,
# cu -l /dev/cuaa0 -s 9600
します./dev/cuaa0 は,使用するシリアルポートに合わせて変更してください.
(tip cuaa0c のようにして,tip を使用してもいいです.cuaa0c というのは,
/etc/remote で定義されています)
WonderSwan 側で wwterm を起動し,Speed キーで通信速度を 9600bps に合わせて,
Connect キーでシリアルポートを接続状態にします.
FreeBSD 側や wwterm 側で,てきとうにキーを入力してみましょう.相手側に
表示されるでしょうか?
うまくいったら FreeBSD 側で [Enter]~. と入力して,cu を終了します.
(tip も [Enter]~. で終了できます)
つぎに,FreeBSD 側でシリアルログインできるように設定し,実際にシリアルログイン
してみましょう.
FreeBSD は,起動時に /etc/ttys を見て getty を起動するので,まずは
FreeBSD マシンの /etc/ttys に以下の行を追加します.
cuaa0 "/usr/libexec/getty std.9600" vt100 on secure
このとき,/etc/ttys に以下の行がある場合には,コメントにして無効化します.
ttyd0 "/usr/libexec/getty std.9600" dialup off secure
で,
# kill -HUP 1
をします.これで /etc/ttys を読み込み直します.これにより,FreeBSD に
シリアルポートからログインできるようになります.たとえば Windows マシンを
用意して,シリアルケーブルで FreeBSD マシンに接続して,Tera Term や
ハイパーターミナルでシリアルポートを開くことにより,シリアルログインできます.
ちなみに,設定を解除して,シリアルログインを無効にするには,/etc/ttys を,
#cuaa0 "/usr/libexec/getty std.9600" vt100 on secure
cuaa0 none
のように修正して kill -HUP 1 することにより,元に戻ります.
cuaa0 none を追加することに注意してください.
#cuaa0 "/usr/libexec/getty std.9600" vt100 on secure
とするだけで cuaa0 none を追加しないと,kill -HUP 1 しても,cuaa0 が無効に
ならないので注意してください.
FreeBSD 側の準備ができたら,WonderSwan のシリアルポートを FreeBSD マシンに
接続し,wwterm を起動します.
wwterm を起動したら,Speed キーで通信速度を 9600bps に合わせて,
Connect キーでシリアルポートを接続状態にします.さらに Enter キーを何回か
押してみてください.ちゃんと接続されていれば,WonderSwan のスクリーンに
login: プロンプトが表示されます.
では,ログインしてみましょう.X1,X2,X3,X4 と A ボタンでがんばって
ログイン名とパスワードを入力します.
ログインすると,シェルのプロンプトが出ます.で,
> ls
してみましょう.ちゃんとファイルリストが表示されるでしょうか?
キーボードが mode1 の場合には,Y1,Y2,Y3,Y4 がカーソルキーに対応するので,
Y1,Y2,Y3,Y4 で,シェルのコマンドラインを編集したり,シェルのヒストリ機能を
利用することができます.
次に,vi エディタを起動してみます.wwterm はいちおう VT100 互換もどきなので,
必要に応じて,
> setenv TERM vt100
もしくは bash ならは,
> TERM=vt100 ; export TERM
します.(ファンクションキーのF8もしくはF7で入力できます)
また,ログインしたままではスクリーンサイズを通知していないので,
スクリーンエディタなどを起動するとおかしなことになります.そのため,
> eval `resize`
を実行して,スクリーンサイズを通知してやります.
(ファンクションキーのF6で入力できます)
で,
> vi
として,vi を起動してみましょう.もしくは,
> emacs -nw
としてみましょう.
しかし残念ながら,スクリーンエディタはまだうまく起動できていません.
どうすればうまくいくのか,だれか教えてください.
■ makefile について
作者は FreeBSD 上で dos エミュレータを用いて LSIC を動かして開発しているため,
makefile が特殊です.注意してください.また実際の開発作業は WonX を使用して
いるため,make wonx で WonX を使用してコンパイルするようになっています.
ほんとは Windows 上でコンパイルするときのための makefile を添付するべきなの
だろうけど,Windows 環境が無いのでやってません.コンパイルしたいときは
makefile を自分で作ってね.ごめんなさい.
■ 今後
現在はスクリーンは常に行単位というかストリーム単位で動作するため,
ラインモードとでもいうべき動作をしますが,これとは別にスクリーンモード
とでもいうべきモードを追加して,80x25 のスクリーンで動かすこともできるように
したい.
■ このファイルはここまで
About
WonderWitch terminal program "WWTerm" patched to compile with Wonderful: http://www.kozos.jp/ww/index.html
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Sponsor this project
Packages 0
No packages published