-
-
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
Packages 0
No packages published