WANI-BBS リファレンスマニュアル
目次
1 送信ファイルのカスタマイズ
ログイン時やログアウト時に表示されるメッセージ等は、それ自体が一つのファイルになっています。これらのメッセージを変更するにはファイルを書き換える(もしくは作成する)ことによって行います。
これらのファイルは、msgディレクトリの中にある必要があります(場所を変更することは可能です…「システムのカスタマイズ」参照)
また、掲示板などに入ったときにメッセージを表示させたい場合は、以下のファイルを書き換えます。これらのファイルは、ボードに関するデータをまとめる意向から各々のディレクトリにあります。
P??_WELC.MSG P??_POL.MSG S??_WELC.MSG S??_POL.MSG
G??_WELC.MSG G??_POL.MSG D??_WELC.MSG D??_POL.MSG
それぞれのメッセージの表示される順序は以下の通りです。
- ログイン時に送出 LOGIN.MSG
- 会員がアクセスした時に送出 WELCOME.MSG
- 月のメッセージ (??__.MSG)
- 日のメッセージ (__??.MSG)
- 曜日のメッセージ (WDAY?.MSG)
- 月日のメッセージ (????.MSG)
- 時間のメッセージ (HOUR??.MSG)
- ログイン回数のメッセージ (LOG?????.MSG)
- グループのメッセージ
- 5回目以内のログイン時(ゲスト以外)送出 BEGIN.MSG
- 終了時に送出 LOGOUT.MSG
それぞれのメッセージの意味は以下の通りです。
LOGIN.MSG
ユーザーがコネクトしたときに表示されるメッセージです。ホスト局の案内、ゲストのID、インフォメーションの案内などを書いておくと良いでしょう。
WELCOME.MSG
ユーザーがログインしたときに表示されるメッセージです。新設ボードの案内などを書いておくと良いでしょう。
<group>.MSG
<group>はアクセスした会員が属しているグループをあらわします。例えば、userというグループに属している会員がアクセスした場合には、USER.MSGが表示されます。
LOG<number>.MSG
<number>はアクセスした会員の延べ人数を5桁であらわします。例えば、1000人目にアクセスした会員に対しては、LOG01000.MSGが表示されます。該当するファイルがない場合は何もしません。10万を超えた場合は下5桁が一致するものを表示します。
<month><day>.MSG
<month>は現在の月が、<day>は現在の日にちが2桁で入ります。例えば、8月2日ならば0802.MSGが表示されます。また、月、日のいずれかを__で省略することができます。例えば、__01.MSGというファイルは毎月1日に表示されます。該当するファイルがない場合は何もしません。
HOUR<hour>.MSG
<hour>は現在の時刻(24時間制)が2桁で入ります。例えば、深夜0時ならばHOUR00.MSGが表示されます。該当するファイルがない場合は何もしません。
WDAY<wday>.MSG
<wday>は現在の曜日(0:日曜〜6:土曜)が1桁で入ります。
BEGIN.MSG
一般ユーザーが登録されてから5回以内のログイン時に表示されます。簡単な使用方法や、ヘルプファイルの見方などを書いておくと良いでしょう。ゲストは登録してから5回目以内のログインでも表示されません。
LOGOUT.MSG
ユーザーがログアウトコマンドを実行したときに表示されるメッセージです。次回のログインを歓迎するメッセージなどを書いておくと良いでしょう。
?nn_WELC.MSG
?にはそれぞれ掲示板はB、プログラムコーナーはP、システム管理コーナーはS、ゲームコーナーはG、ディレクトリはDがあてはまります。nnにはそれぞれのserialがあてはまります。このメッセージはそれぞれの場所に移動したときに表示されます。serialは、それぞれの掲示板などの情報を表示させたとき、先頭に表示されています。SYSOP.MANの「ディレクトリの変更状態」の「L命令」を参照してください。
?nn_POL.MSG
?にはそれぞれ掲示板はB、プログラムコーナーはP、システム管理コーナーはS、ゲームコーナーはG、ディレクトリはDがあてはまります。nnにはそれぞれのserialがあてはまります。このメッセージはそれぞれの場所で?命令を使用したときに表示されます。
2 細かいメッセージのカスタマイズ
細かなメッセージのカスタマイズは、message.defファイルを書き換えることによって行います。このファイルはbbsdataディレクトリの中にある必要があります。それぞれのメッセージの内容については、ファイルの中の説明を読んで把握してください。#で始まる行はコメントです。#で始まるメッセージを定義したい場合は\#と設定してください。
行末に\と設定すると、改行がメッセージに含まれません。通常は改行が含まれます。
それぞれのメッセージの%sや%dは順番を変更せずに設定してください。
なお、Y/Nを聞くメッセージと、端末設定ではデフォルト設定が使用できます。このデフォルト設定の方法は以下の通りです。
デフォルト設定される部分 (最後の括弧でくくられた内部の":"より後ろ、または[]で囲まれた部分)
例)
〜ですか (A:Yes B:No) (Ret:Yes) :
~~~ この部分がデフォルト値
〜の数字を入れてください (30) :
~~ この部分がデフォルト値
いいですか (Yes/[No]/Cancel) :
~~ この部分がデフォルト値
また、Y/Nを聞くメッセージでは先頭に !y または !n
を置くことで ([y]/n)? のような表示をするとともに !y ならYes、!n
ならNoをデフォルト値とすることができます。
例)
3 コマンドのカスタマイズ
コマンドのカスタマイズは、command.defファイルを書き換えることによって行います。このファイルはbbsdataディレクトリの中にある必要があります。
それぞれのコマンドについては、ファイルの内容を読んで把握してください。#で始まる行はコメントです。
4 バッチ処理のカスタマイズ
バッチ処理のカスタマイズは、alias.defファイルを書き換えることによって行います。このファイルはbbsdataディレクトリの中にある必要があります。処理の設定方法は、ファイルの内容を読んで把握してください。
なお、バッチ処理中で再帰するような設定をした場合、その動作は不定ですので注意してください。
foo foo
~~~ ~~~ このような設定はしないでください
バッチ処理中で使用できる記号、命令は以下の通りです。
%1 - %9
これは、命令のそれぞれのパラメータに置き換えられます。%1以外はほとんど利用価値は無いでしょう。
%i
現在のユーザーのIDに置き換えられます。
%h
現在のユーザーのニックネームに置き換えられます。
~
type命令や!命令はSYSOPでないと使用することはできませんが、バッチ処理中で命令の前に~がある場合に限り、一般ユーザーでも使用することができます。
foo echo This is foo;~type foo
bar echo look directory;~!dir .
ECHO
この命令は、ALIASの中で使われることを想定されています。引数なしで命令が使われた場合は、そのあと文字を表示しません。不用意に使用するとハングアップしたように見えます。その状態でまたECHO命令を使用すると元の状態に戻ります。
また、引数を与えた場合はその文字列を表示します。その場合、文字列は半角のカナや小文字に変換されます。
PUSHD
この命令は、ALIASの中で使われることを想定されています。また、この命令はPOPDとセットで使われます。この命令を実行した時点でのディレクトリの場所(例えば/system/user)を覚えておきます。
POPD
この命令は、ALIASの中で使われることを想定されています。また、この命令はPUSHDとセットで使われます。以前にPUSHDを実行した時点でのディレクトリの場所(例えば/system/user)に実際に移動します。
BATCH
この命令は、ALIASの中で使われることを想定されています。このコマンドは、複数のコマンドを連続実行させることができます。コマンドは":"で区切ります。
例えば、WANI-BBSのsignupのコマンドは実際には以下のように実現されています。
signup batch pushd:echo:\s\s:echo:w:popd
まず、pushdで現在のディレクトリを保存し、echoで表示を消します。\s\sでsignupのディレクトリに移動します(このとき、表示が消えているので、移動したきのメッセージは表示されません)。echoで再び表示するようにして、wでsignup動作を行います。signupが終われば、popdで元のディレクトリに戻ります。
5 システムのカスタマイズ
システムのカスタマイズは、system.defファイルを修正することによって行います。(このファイルはbbsdataディレクトリの中にある必要があります)
system.defでは以下の設定をすることができます。設定されていない場合は、エラーメッセージとともに実行を中止します。
- boardlimit
掲示板の新しいメッセージを読みだすときに、ある程度以上古いメッセージを無視するようにします。例えば365と設定した場合には、3年前のメッセージをまだ読んでいなくとも、1年前のメッセージから読み出しを開始します。
- guestlimit
ゲストがログインした場合は、boardlimitのかわりにこの数値が適用されます。
- firstlimit
一般会員の最初のログインの場合は、boardlimitのかわりにこの数値が適用されます。
- topiclimit
トピックの新しいメッセージを読みだすときに、ある個数以上のメッセージを無視するようにします。たとえば50と設定した場合には、100個前のメッセージをまだ読んでいなくとも、最新の50個のみをあたらしいメッセージとします。
- alert
制限時間を設定します。レベル0から8までを設定しますが、設定しない、もしくは0を設定してある場合は、時間制限をしないという意味になります。
- alert1
alert分利用した場合に時間制限の警告を出し、さらにここで設定した秒数を経過すると実際に回線を切断します。つまり、(alert×60+alert1)秒が制限時間となります。しかし、検査を常に行っているわけではないので、ダウンロードなどの最中に制限時間を超過することがあります。
- afteralert
alertの設定によって警告を出された後切断したユーザ、またはalert1の設定で強制的に切断されたユーザが、切断後再度ログイン可能となるまでの時間を分単位で設定します。
- cutoff0
ユーザがcutoff0で指定した秒数なにもアクションを行わなかった場合に警告を表示します。
RS-232Cまたはtelnet接続の場合は、文字入力待ちの状態で、何も入力が行われない場合がそれに相当します。
WWWで接続した場合、書き込む文章を校正している時間もホスト側にとっては何も入力が無い状況なので、ここの時間を長め(30分から1時間程度)に設定する必要があります。
- cutoff1
cutoff0により警告を表示してから、ここで設定した秒数更に何の入力も行われない場合は回線を切断します。RS-232Cまたはtelnetで接続している場合にのみ適用されます。
- xmtimeout
XMODEMもしくはYMODEMのアップロードにおいて、1ブロックが送られてくる際に、そのブロック内のデータのタイムアウト時間を設定します。
通常1ブロックは連続して送られて来ますが、MNPを使用しているとブロックを半分送ったところで回線状態によりリトライの発生がありますので、YMODEM-Gなどを利用していた場合はタイムアウト一つで中止してしまい、折角のMNPが生きてきません。そこで、10秒程度の遅れは認めるようにすれば、この問題は発生しなくなります。
ただし、長くすることによって転送の中断がしにくくなります。
- skipc
YMODEMのダウンロードで2回目の'C'('G')の受け取りを無視するかどうかを設定します。YMODEMの仕様上は無視すべきではないのですが、一部の通信ソフトではこれを送出しないため、この設定ができるようにしてあります。Yを設定すると無視するようになります。
- conecho
VOICE命令において、コンソールのエコー状態の既定値を設定します。Yだとエコーする状態、Nだとエコーしない状態です。
多回線版では無効です。
- conid
VOICE命令において、コンソールのIDの既定値を設定します。
多回線版では無効です。
- conname
VOICE命令において、コンソールの名前の既定値を設定します。
多回線版では無効です。
- voicecall
VOICE命令において、/C命令でBBSの動作している機械のビープ音を鳴らすことができますが、この命令を使用できる会員の最低レベルを設定します。0から9の間で設定するため、レベル9の会員は常にこの機能を利用することが可能ということになります。
多回線版では無効です。
- voicelevel
VOICE命令を利用することのできる会員の最低レベルを設定します。0から9の間で設定するため、レベル9の会員は常にVOICE命令を利用することが可能ということになります。VOICEはその記録をとることが可能なため、この機能が設定されています。
多回線版では無効です。
- voicedir
VOICE命令において、その会話の内容を一日毎に一つのファイル内に記録することができますが、そのファイルが格納されるディレクトリを設定します。ディレクトリが設定されていない場合は、記録はされません。
多回線版では無効です。
- mailmode
MAIL命令において、返事を書く時に題を変更できるようにするかを設定します。変更できるようにした場合は、送った直後に次の手紙を表示し、変更できないようにした場合は次の手紙を表示せず、どちらの設定でもリターンキーを押す回数は同じになります。変更できるようにするならばY、そうでなければNを設定します。
- mail_only
MAIL命令において、system/mboxに書き込み許可がなくてもここに設定してある会員には唯一手紙を送ることができます。設定した会員が存在しない場合は誰にも手紙を送ることはできません。
通常、GUEST会員がSYSOPに手紙を送るために使用します。
- info_id
login時に、ここに設定されているIDを入力すると、informationに即座に入ることができます。非会員制で案内をしたい場合などに設定します。8文字以内で設定します。
この機能を使用する場合は、レベル0のユーザに/system/infoのディレクトリの読み出し権を与える必要があります。
- tempdir
テンポラリディレクトリを設定します。複数のWANI-BBSを一つのPCで動かす場合を除き、通常は省略値である
\ を設定します。ディレクトリの区切りには\\を使用します。最後に\\はつけてもつけなくても構いません。
例えばC:\TMPを設定する場合は C:\\TMP と指定します。
- helpdir
ヘルプファイルの収納されるディレクトリを設定します。通常はhelpを設定します。ディレクトリの区切りには\\を使用します。最後に\\はつけてもつけなくても構いません。
例えばC:\HELPを設定する場合は C:\\HELP と指定します。
- msgdir
メッセージファイルの収納されるディレクトリを設定します。通常はmsgを設定します。ディレクトリの区切りには\\を使用します。最後に\\はつけてもつけなくても構いません。
例えばC:\MSGを設定する場合は C:\\MSG と指定します。
- cmdlogdir
ログを格納するディレクトリを設定します。通常はcmdlogを設定します。ディレクトリの区切りには\\を使用します。最後に\\はつけてもつけなくても構いません。
例えばC:\LOGを設定する場合は C:\\LOG と指定します。
ログを作成しない場合は \ のみを設定します。
- filelevel
パーソナルファイルを使用することのできるレベルの最低値を1〜9で設定します。ここで設定したレベル以上のレベルの会員はエディタで作成した文書等を一時的なファイルに保管することができるようになります。(一時ファイルはログアウト時に自動的に削除されます。)
- mailjunk
エディタで文章を書いている最中に回線が切れてしまった場合に、途中の文章を自分自身に送る機能を使用する最低レベルを1〜9で設定します。
- gramuse
グラフィックRAMを作業領域とする機能です。
PC-9801専用版のみ有効な機能です。
- screensave
誰も接続していない状態で、何もキーが触られずに設定秒数経過した場合は画面を非表示状態にする機能です。
PC-9801専用版のみ有効な機能です。
- poolregist
プログラムコーナーに会員がプログラムを登録した後、シスオペがそれをチェックしてから一般会員に公開する場合はNにします。実際のチェックの方法は、SYSOPマニュアルのプログラムコーナー読みだし状態を参考にしてください。Yにすると、会員がプログラムを登録すると、すぐに他の会員もそのプログラムをダウンロードすることができます。
- signupreg
サインアップ命令でIDを即座に与えるかどうかを設定します。Nにした場合は、/system/signupにその情報が登録されるだけで、IDはsysop等が手作業で設定する必要があります。
- def_signup
サインアップ命令で、IDを即座に与える設定をしている場合に、その会員が追加されるグループを設定します。このグループが次のdef_groupと同じである場合は、サインアップされた会員は通常の会員の追加と同じように登録されます。このグループが存在しない場合は、サインアップができるような許可を与えられていたとしてもサインアップはできません。
このグループのHeaderが「-」になっている場合には、会員は問題の無い限り自由なIDを使用することができます。それ以外の場合は、Headerに数字を足したIDが適用されます。この設定は
/system/group で変更できます。
- def_group
system/userにおいて、単にAとして会員の追加を行ったときに、その会員が追加されるグループを設定します。このグループが存在しない場合は、グループ名を指定しない会員の追加はできません。
- def_ishmode
新規に登録される会員のishmodeの初期値を設定します。それぞれ0がJIS7、1がJIS8、2がshift-JISに対応しています。
- def_clear
新規に登録される会員のerase screenの初期値を設定します。YがON、NがOFFに対応しています。
- def_help
新規に登録される会員のhelpmodeの初期値(0:プロ 1:上級 2:中級 3:初心者)を設定します。
- login_retry
何回目のログイン失敗で回線を切断するか設定します。
- pw_x
パスワード入力の部分で、パスワードを入力するときに、Xを表示して何文字入力したか分かるようにするかどうかを設定します。表示するようにすると、入力は楽になりますが、安全性は低下します。表示させる場合はYを、させない場合はNを設定します。
- bd_titlefirst
掲示板、マルチノーツで、タイトルを文章よりも先に入力するかどうかを指定します。タイトルが先ならばY、文章が先ならばNを設定します。
- mail_titlefirst
郵便で、タイトルを文章よりも先に入力するかどうかを指定します。タイトルが先ならばY、文章が先ならばNを設定します。
- edit_lines
エディタで使用できる行数の最大を設定します。500から9999の間で設定します。
- edit_size
エディタで作成できる文章のサイズの最大をバイト数で設定します。
- edit_width
エディタの行番号を表示するときの幅を指定します。4か6を設定します。6にすると、タブが揃って入力が容易になりますが、好みで4にもできます。
- edit_autospace
文章を書き込むときに、文章の最終行に1行空行を入れるかどうかを指定します。Yesにすると、エディタを終了したときに文章を調べ、終了行が空行でない場合は最後に1行空行を加えます。なお、先頭行には強制的に空行が埋めこまれます。
- directedit
書き込みの命令を使用したときに、直接入力モードに入るかどうかを設定します。この場合、入力中に.で始まる命令を使用することができるようになります。
命令は、directeditがNoの場合にエディタで使える命令と同等です。つまり、.wとすれば終了、.lとすれば一覧、.qとすれば中断になります。
- timeformat
年月日・時間の表示を日本式にするか、欧州式にするか、米国式にするかを設定します。0は日本式、1は米国式、2は欧州式になります。
- askname
初めて会員がアクセスしたときに、本名と電話番号、性別を入力させるかどうかを設定します。なお、オンラインサインアップの会員はオンラインサインアップ時のデータが使われるため、この入力はありません。
なお、レベルが0の会員(通常ゲストユーザー)はこの設定に関係無く入力させません。
- askguest
GUEST会員がログインした際にハンドル入力を要求するかどうかをYかNで指定します。
- moveafterwrite
文章を書き込んだ後に、その書き込んだ文章に移動するかどうかを設定します。
Yes... 書きこんだ文章に移動し、書いた文章を表示します
No... 現在の文章の位置のままになります
Cancel... 書き込んだ文章に移動し、書いた文章は表示しません
printafterwrite
掲示板でプロンプトから書き込みをした後(board/***>のプロンプトにwで書き込んだ後)に再表示するかどうかを設定します。Yesとすれば再表示し、Noとすれば書き込んだあとそのままプロンプトに戻ります。
checkcode
入力された文字が JIS0208(1990)
で定義されていない文字の場合はゲタ(〓)に変換します。会員が知らずに一般的に使用されていない漢字コードを入力してしまうことを防ぎます。
forcetitle
直線的なメッセージ構造を持つ掲示板において空のタイトルを入力させないようにします。ここがNoになっている場合はタイトル入力のところで空リターンを2回叩くと空のタイトルが作成できますが。ここがYesになっている場合は空リターンを押す限りタイトルを聞き続けるので空のタイトルを作成することはできなくなります。
resetcmd
システムをリセットするときのコマンドを設定します。ここに
\ だけを設定しているときはエラーレベル254で終了します。
また、ここにリセット用のプログラムを起動する命令を記述することにより、希望するプログラムを起動させてシステムをリセットさせることができます。ただし、何等かの原因によりプログラムを起動できなかった場合はWANI-BBS自体を終了してしまいますので注意してください。
resetcmdに wanibbs.exe と書いておけば、RESET命令でWANI-BBSの再起動を行うことができます。
poolpath
poolで"0 File"を選択してupload/downloadする時のデフォルトパスを設定します。ディレクトリの区切りには\\を使用します。最後に\\はつけてもつけなくても構いません。BBSの起動ディレクトリでよい場合は\を設定します。
maxsignature
signatureコマンドで作成することができるsignatureの最大サイズを設定します。0から1024の間で指定できます。0を指定すると、signatureを作成することはできません。一般的には400(80桁なら5行)程度に設定するのが良いと思われます。
profileformat
regprofコマンドで作成することができるprofileの様式を設定します。fを指定すると、自由フォーマットになり、エディタで作成することができます。sを指定すると、message.defで指定したprof_tagに従って入力することによって作成します。cを指定すると、一番最初にprofileを作成するときはprof_tagに従って入力しますが、次からは新規入力か修正かを聞いてくるようになり、新規入力の場合はprof_tagに従って入力を行い、修正の場合はエディタを使って書き換えることができるようになります。
userforward
/system/userでwした際に、mailのforward設定を会員が行うことができるかどうか設定します。Noとするとsysopのみが設定の権限を持ちます。
callwait
callコマンドでログインしている他の会員を呼び出したときに応答があるか待つ秒数を設定します。デフォルトは60秒です。
userhide
/system/userでwした際に、journal hide機能(ログやonline表示を行わない機能)を会員が設定することができるかを決めます。YesかNoを設定します。
getcountry
サインアップ時会員の住所等を設定する際に国情報を入力させるかどうかを設定します。入力させない場合はCOUNTRY.DEFに設定されている国の2文字のコードを固定情報としてここに設定します(例えば日本ならJP)。
サインアップ時に会員に国情報を入力させるにはここに \
を設定します。
getstate
サインアップ時会員に都道府県または州の入力を要求するかどうかをYかNで設定します。
autoreboot
一定時間ごとにWANI-BBSを再起動させるかどうかを設定します。WANI-BBSは再起動しなくても長期運用できるように願って作成していますが、それでもメモリリークが起こっているような場合には、WANI-BBSを再起動するのが有効な手段です。
その場合には、ここに1時間を単位とした時間を設定します。たとえば一週間なら24*7で168になります。168時間経過した後、誰かがログアウトして一人もいなくなった瞬間に
resetcmd の設定に従って再起動が行われます。(常に誰かがログインしているような状況では再起動は行われません。)
0を設定すれば再起動は行われません。
warndisk
BBSの起動ディレクトリ、またはテンポラリディレクトリの残容量がここで指定した値Mbytes以下になった場合、BBSの内部エラーとして記録します。0を指定するとこのチェックは行いません。
loglevel
cmdlogdirで指定したディレクトリに作成するログにどの程度の情報を記録するかを指定します。記録する内容は以下の数値を組み合わせます。例えばmailとノート作成の情報を記録する場合は32+2で34と指定します。
0 ログイン/ログアウト/シスオペコマンドのみ (必須)
1 その他(topic/profile等
2 mail関連
4 call/answer関連
8 game関連
16 poolへの書き込み/削除等
32 掲示板でのノート作成等
64 掲示板への書き込み/削除
128 コマンドラインからの入力
6 モデムのカスタマイズ
モデムのカスタマイズは、modem.defファイルを変更することによって行います(このファイルはbbsdataディレクトリの中にある必要があります)。
このファイルを自分の持っているモデムにあうように変更することにより、WANI-BBSを上手に稼働させることができます。
modem.defでは以下の設定ができます。設定されていない場合は、エラーメッセージとともに実行を中止します。
- atinit
初期化するときのコマンド(起動時、ユーザーが抜けた後に送られる)を設定します。atohでATH1などのATコマンドを送っている場合は、ここでATH0などを送る必要があります。
- atinit2
もしもモデムのイニシャライズにコマンドを2回送りたい場合には、この設定も利用することができます。通常は\のみを設定しておきます。
- afterring
最後にモデムに呼び出し信号が来てから接続せずに何秒したら再初期化するかを設定します。呼び出し信号が来てから再初期化するまでは、WHIPのチェックやコンソールログインができませんので、あまり長い時間を設定することは好ましくありません。
- afterdial
モデムにダイアルコマンドを送出してから接続せずに何秒したら失敗とするかを設定します。あまり短い時間を設定すると接続したのに切断してしまうことがあるので多少長めに設定すると良いでしょう。
- beforecmd
コマンドを送信する前に待つ秒数を設定します。
- cmdwait
コマンドを送信してから返事が返ってくるまで待つ秒数を設定します。
- ringwait
RINGが来てからATAコマンドを送信するまで待つ秒数を設定します。
- erwait
ER信号を操作した後に待つ秒数を設定します。
- cwait
エラー訂正プロトコルなしで接続した場合に、メッセージを送り出すまでに待つ秒数を設定します。
- cmnpwait
エラー訂正プロトコルありで接続した場合に、メッセージを送り出すまでに待つ秒数を設定します。
- endwait
最後のメッセージを送出してから、回線切断をするまで待つ秒数を設定します。
- interval
一回ベルを鳴らして、切り、再度ベルを鳴らした場合にのみ接続させるという方法をとる場合に、最初のRINGが来てから次のRINGまで必要な秒数を設定します。そのような方法をとらない場合は0を設定します。また、一回目のベルからafterring秒経過した場合は、一回目のベルは無効となり、初期化されます。
- ringcnt
一回ベルを鳴らして、切り、再度ベルを鳴らした場合にのみ接続させるという方法をとる場合に、一回目のベルとして認識するRINGの数を設定します。この数値は±1回のRING回数を許容します。
上記の方法を使用しない場合(intervalが0)は、ringcnt回のRINGを確認したあと、ATAコマンドを送出します。
- atretry
モデムにコマンドを与えてイニシャライズするときに、何回までリトライするか設定します。1とすると、1回コマンドを送って失敗しただけで失敗したとみなし、afterring秒後にまた初期化しようとします。
- atoh
キーボードからログインするときモデムに送るコマンドを設定します。
- ata
モデムを接続させるためのコマンドを設定します。
- atoff
OFF命令で回線を切るときにモデムに送るコマンドを設定します。~で1秒のウエイトをかけることができます。例えばコマンドエスケープしてATH0で切断したい場合は、~~\x0\x0\x0|ath0とすると良いでしょう(ATS2=0としてS2レジスタを0に設定しておくこと)。また、設定しない場合は、ER信号をOFFします。
- atno
接続に失敗した時に送られてくる文字列を設定します。
- atbusy
ダイアルして、話し中の時に送られてくる文字列を設定します。
- atflow
フロー制御をするときにモデムに与えるコマンドを設定します。X/Ymodemが終了したときに送信されます。端末速度固定で利用している場合以外は通常使用しません。
- atnflow
フロー制御を中断するときにモデムに与えるコマンドを設定します。X/Ymodemの転送を行うときに送信されます。端末速度固定で利用している場合以外は通常使用しません。
- cmdbps
コマンドを送出するときのボーレートを設定します。connectよりも前に設定されている必要があります。
- result
コマンドが正常に認識されたときに帰ってくる文字列を設定します。
- connect
コネクトした場合に送られてくるメッセージとその通信条件を設定します。左から、表示される速度(LOGなどに記録される速度)、コンピュータとモデム間の通信速度、ダウンロードにかかる時間の算出の参考にする速度、圧縮/エラー訂正プロトコル、そして該当する文字列を設定します。この設定方法を利用することにより、さまざまなモデムに対応することができます。
この設定のみ、複数回設定することができます。設定できる数は50個以下です。
- 表示される速度
0/75/150/300/600/1200/20800/41600と、64800以下の2400の倍数を指定することができます。ここに-を指定すると、実際にモデムから受けた数字が使われます(文字列の項目を参照してください)。また、Cを指定するとcmdbpsで設定された数値が使用されます。
- コンピュータとモデム間の通信速度
0/75/150/300/600/1200/20800/41600と、64800以下の2400の倍数を指定することができます。ここに-を指定すると、実際にモデムから受けた数字が使われます(文字列の項目を参照してください)。また、Cを指定するとcmdbpsで設定された数値が使用されます。
- ダウンロードにかかる時間の算出に参考にする速度
0/75/150/300/600/1200/20800/41600と、64800以下の2400の倍数を指定することができます。ここに-を指定すると、実際にモデムから受けた数字が使われます(文字列の項目を参照してください)。また、Cを指定するとcmdbpsで設定された数値が使用されます。
- 圧縮/エラー訂正プロトコル
-/DIRCT/MNP/MNP3/MNP4/MNP5/MNP10/VFC/V34/V32/V32b/V42b/V42/HSTを指定することができます。DIRCTを設定すると、RS-232Cのキャリア信号がなくても通信を終了しません。キャリア信号のOFFで通信を終了させたい場合はDIRCT以外を設定してください。エラー訂正プロトコルの種別は単にログに記録されるだけで特に意味は持ちません。
- 文字列
モデムから送られてくる文字列を記述します。ここで、%uを文字列に含めると、モデムから来た文字列の%uの部分の数字を読み取ります。この数値は、「表示される速度」等で-が設定されている時の数値として使用されます。また、300が0300として送られてくるような場合は%04uと表記してください(C言語のprintfのフォーマットと同じです)。
例えば、「connect - C - - CONNECT %04u」のように設定されている場合に、「CONNECT
14400」という文字列が来た場合は、コンピュータとモデム間の通信速度はcmdbpsで設定された値になり、他は14400に設定されます。
モデムから来た文字は、最初に設定された文字列から比較されていきますので、ある文字列が他の文字列の部分となっている場合は、短いほうを後ろに定義しないといけません。(通常は末尾にCRが追加されますのでこのような問題は発生しづらいと思います。末尾に\を指定してCRを追加しない場合は特に気を付けてください。)
- ring
モデムが呼び出しをうけたときにモデムから送られてくる文字列を設定します。
- flow
フロー制御を設定します。SoftはXon/off、HardはRS/CS、MixedはXon/offとRS/CSの両方、Noneだとフロー制御はしません。
Mixedとは、RS/CSとXon/offの両方でフロー制御をするモードです。
- flushbreak
^Cが入力されたときに、送信バッファにあるデータをどうするか設定します。Noと設定すると、送信バッファにあるデータがすべて送出されるまで中断できません。
Yesと設定すると送信バッファのデータをクリアし、即座に中断できます。ただし、送信バッファの内容が消えてしまうため、不都合が発生する場合もあります。また、この設定でも、モデム内部の送信バッファをクリアすることはできません。
Hardと設定すると送信バッファのデータクリアと同時にモデムにBREAK信号を送出します。モデムの種類によっては、BREAK信号を受けるとモデム内部の送信バッファをクリアすることができます。この機能を使うことにより、端末速度固定の際に、^Cを受信してもモデム内の送信バッファがクリアされずに送出されてしまう(つまり、^Cの効きが悪い)という状態を回避することができるようになります。
たとえばOMRONのMD24FP4というモデムであれば、AT\K0のコマンドを送っておくことによりその設定が可能になります。
7 TCP/IPネットワークのカスタマイズ
WANI-BBSでは、TCP/IPプロトコルのうち、telnetとhttpによるアクセスに対応しています。httpによるアクセスを使用すれば、普通のWWWブラウザでWANI-BBSにアクセスすることができます。これらの設定は、
という設定ファイルで行ないます。このファイルは
ディレクトリの中にあります。
7.1 telnetの設定
- net_use
telnetでのアクセスを許すかどうかを設定します。Yes/Noを指定します。
- net_tasks
telnetで受け付ける同時アクセス数を0〜99で設定します。デフォルトは10です。net_wwwtasks及びモデムの数と足して99を超えることはできません。
- net_address
telnetで受け付けるIPアドレスを指定します。通常はIPアドレスを一つしか持っていないので、ここはデフォルト
'-' のままで大丈夫です。そのコンピュータがIPアドレスを複数持つ場合は、受け付けるIPアドレスをここで指定します。指定するフォーマットは
192.128.0.0 のような形式で指定します。複数IPアドレスがある場合にここで'-'を指定するとどのIPアドレスに対するアクセスでも受け付けるようになります。
- net_port
telnetで受け付けるポート番号を指定します。telnetのポート番号は23と決まっていますので、通常は23を使います。
7.2 httpの設定
- net_www
httpでのアクセスを許すかどうかを設定します。Yes/Noで指定します。
- net_wwwname
認証の際に認証ウィンドウで表示される名前です。他に意味は持ちません。
- net_wwwbin
BBSの内容をアクセスする際のディレクトリ名を指定します。通常はデフォルト(BBS)のままにしておきます。たとえばここがBBSならば、
http://<ホスト名>.<ドメイン名>/BBS/ というURLでBBSにアクセスすることになります。
- net_wwwtasks
httpで受け付ける同じアクセス数を設定します。デフォルトは10です。net_tasks及びモデムの数と足して99を超えることはできません。
- net_wwwthreads
httpの最大のthread数を設定します。デフォルトは100です。WWWへのアクセスが多すぎてサーバに負荷がかかりすぎるような場合には低く設定します。この数字を超えるアクセス要求はエラーになります。
- net_wwwaddress
httpで受け付けるIPアドレスを指定します。通常はIPアドレスを一つしか持っていないので、ここはデフォルト
'-' のままで大丈夫です。そのコンピュータがIPアドレスを複数持つ場合は、受け付けるIPアドレスをここで指定します。指定するフォーマットは
192.128.0.0 のような形式で指定します。複数IPアドレスがある場合にここで'-'を指定するとどのIPアドレスに対するアクセスでも受け付けるようになります。
- net_wwwdomain
WWW用のドメイン名を指定します。net_wwwportで80以外を指定している場合はドメイン名に加えて以下のようにポート番号を指定する必要があります。
net_wwwdomain domain.type.jp:80
- net_wwwport
httpで受け付けるポート番号を指定します。httpのポート番号は80と決まっていますので、通常は80を使います。ここを80以外にした場合は、
http://<ホスト名>.<ドメイン名>:<ポート番号>/<net_wwwbinのディレクトリ名>/
というURLになります。
net_wwwroot
httpで表示されるドキュメントのディレクトリを指定します。デフォルトはwwwとなっており、WANI-BBSが起動されるディレクトリのwwwというサブディレクトリになっています。他のディレクトリを指定する場合は、ディレクトリ区切りには
\\ を使用するようにしてください。BBSのアクセスに使用されるテンプレートは、ここで指定されたディレクトリの中の、net_wwwbinで指定されたディレクトリの中に配置します。
net_wwwdefault
URLでファイル名を指定されなかった際に検索するデフォルトドキュメントを指定します。10個まで指定することができます。複数指定する場合は
net_wwwdefault index.html
net_wwwdefault index.htm
のように指定してください。
net_wwwtype
ファイルの拡張子とMIMEタイプの対応を指定します。50個まで指定することができます。また、複数の拡張子に対して一つのMIMEタイプを指定する場合には、「,」で区切って指定することができます。また、拡張子の無いファイルに対してMIMEタイプを指定するには、拡張子に\\を指定してください。デフォルトでは以下のように設定されています。
net_wwwtype html,htm text/html
net_wwwtype text,txt,\\ text/plain
net_wwwtype gif image/gif
net_wwwtype jpeg,jpg,jpe,jfif,pjpeg,pjp image/jpeg
net_wwwtype tiff,tif image/tiff
8 起動時オプション
9 エラーメッセージ
エラーメッセージには大きく分けて回復可能なエラーと、回復不可能なエラー(FATAL
ERROR)があります。回復可能なエラーでは、エラーはエラーファイルに登録され、エラー情報(/system/errors)として読み出すことができます(SYSOP.MAN参照)。
エラーには以下のものがあります。
- Read open error
ファイルを読みだし専用で開こうとしたときに失敗しました。原因としては必要なファイルが存在しない、もしくは必要とするファイルと同名のディレクトリがあることなどが考えられます。
- Write open error
ファイルを書き込みするために開こうとしたときに失敗しました。原因としては必要なファイルが存在しない、もしくは必要とするファイルと同名のディレクトリがある、ファイルが読みだし専用の属性を持っているなどが考えられます。
- Read error
ファイルの読み込みに失敗しました。原因としてはファイルが破壊されていることが考えられます。
- Write error
ファイルの書き込みに失敗しました。原因としてはディスクの容量が足りなくなったことが考えられます。
- Create open error
ファイルを作成するために開こうとしたときに失敗しました。原因としては、開こうとしたファイルと同名のディレクトリがある、ルートディレクトリで大量のファイルを作成しようとした、ディスクの容量が足りないことなどが考えられます。
- Out of memory
メモリが足りません。原因としては、実装メモリが足りない、デバイスドライバが大量にメモリを消費している、または常駐しているものがメモリを消費している、もしくは何らかのプログラムの子プロセスの状態を抜けていないことなどが考えられます。起動時に最低でも20Kbytes程度は余裕があるようにしてください。(オーバレイを使用するときはもっと必要です。)例えばWANI-BBSの起動時オプションとして-gを使用したりするといった方法も有効です。
- RS-232C open error
RS-232Cのインタフェースを設定できません。modem.defファイルで設定されているボーレートが正しくない場合などに発生します。
- Parameter error
与えられたパラメータが異常です。エラー情報を元に起動時パラメータ、modem.defファイル、system.defファイルを修正してください。
- whip_id can't change
whip.defに定義されているwhip_idが変更されています。whip_idは最初0に設定されていますが、これを一旦0以外の値に設定して起動した後はこの数値を変更することはできません。これは不用意にwhip_idを変更することがないようにするための処置です。どうしても変更したい場合はWHIPディレクトリのwhiplink.datとhost.datを削除してから起動してください。この場合、登録してあるホストデータはすべて削除されることになります。
- Illegal command.dat
version command.datファイルのバージョンが違います。WANI-BBSに合ったバージョンのconfig.exeを使用してcommand.datを作り直してください。
- Illegal message.dat
version message.datファイルのバージョンが違います。WANI-BBSに合ったバージョンのconfig.exeを使用してmessage.datを作り直してください。
- Overlay loading error
オーバレイプログラムが正しくないか、もしくは、オーバレイプログラム中でエラーが発生しました。原因としては、オーバレイプログラムが存在しない、オーバレイプログラムがWANI-BBS用のものではない、もしくはオーバレイプログラムを実行する十分なメモリがない場合などが考えられます。
- Overlay removing error
オーバレイプログラムを切り離す際にメモリ開放を失敗しました。オーバレイプログラムに問題があると考えられます。(このエラーが出た場合は是非オーバレイプログラム名と、そのオーバレイプログラムでどのような操作をしたかを御一報下さい。)
- HOST program internal error
WANI-BBSの内部的エラーです。原因としては、ファイルの内容が破壊されていることが考えられます。
- WHIP error
WHIP接続の際にエラーが発生しました。
- WHIP mail
WHIPメール処理の際にエラーが発生しました。
- UUCP mail
UUCPメール処理の際にエラーが発生しました。
- Directory not exist
必要なディレクトリが存在しません。
- Can't create directory
ディレクトリの作成に失敗しました。
- No such WHIP master
whip.defのwhipmasterで指定されている会員がいません。
- No such UUCP master
uucp.defのuucpmasterでしてされている会員がいません。
- memory management error
WANI-BBSの内部的エラーです。何等かの原因でメモリ管理上の問題が発生しました。
- Program terminated.
プログラムの実行が中断されました。プログラムを終了させた場合に、この表示と共にプログラムを終了します。このエラーは、プログラムの実行に不都合が生じたわけではありません。
- Unknown error.
存在しないエラーです。このエラーは起こることを想定されていません。
- LOG
これはエラーではありません。ファイルの作成や削除が行なわれた記録です。