Skip to content

WonderfulToolchain/WWTerm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published