戻る

5. 外部ユーティリティ


5.1 ファイル更新ユーティリティ


オンラインでのメンテナンスはファイル自体の削除が行われません.
従って,外部ユーティリティ ncsm.x を使うことになります.
このユーティリティはバイナリファイルの削除・リネーム,data.dat の再編成とそれに伴う data の更新を行います.

このプログラムを実行するには,最低でも data.dat,title.dat,sys_data.dat の3ファイルのサイズ合計より大きいディスク容量と title.dat,sys_data.dat のサイズ合計より大きいメモリが必要になります.
また config.ncs を参照しますので,同じディレクトリになければ実行はできません.

C:\cock>ncsm

NET-COCK ver3.60+1.xx.xx 沙希さん system 支援ツール
System maintenance tool 'ncsm.x' ver0.13
Original 'nncu.x ver2.0' by と・とら 1990
Arrange programmed by MoAi-ANDOR.S 1997,98

system: c:\cock\sys_data.dat を open します
system: c:\cock\title.dat を open します
system: c:\cock\data.dat を open します

system: 更新前 data.dat size = 0000765000
system: 更新後 data.dat size = 0000573000
system: data.dat logical error =00000
system: now title pointer=04805

system: text の maintenance を実行しますか (y/n):Y

system: binary dir files = 00100 (00020) (00040) (00030) (00010)
system: binary number pointer= 00100
system: binary logical error = 00000 (00000) (00000) (00000) (00000)
system: binary delete files= 00020 (00010) (00005) (00005) (00000)

system: binary の delete を実行しますか (y/n):Y

system: binary の delete を実行します
system: binary の delete を終了します

system: binary の rename を実行しますか (y/n):Y

system: binary の rename を実行します
system: binary の rename を終了します

system: ncsm.x の作業を終了します

テキストメンテナンスで実行されるのは data.dat 内のデータで使われていない部分の削除と,それを詰める作業などです.
バイナリメンテナンスで実行されるのは,削除されたアーティクルに対応するバイナリファイルの削除と,バイナリナンバーの空きを詰めるためのリネームなどです.

バイナリメンテナンスでは,リネーム作業は時間を要するために削除のみを実行することも可能です.
バイナリナンバーは最大で 65534 まで対応していますので,通常リネームは特に必要ないかもしれません.

通常は上記のように作業が進められますが,稀に以下のようなメッセージが出て作業が中断したり,警告が出たりする場合があります.

warning : \113 00005 [NCS_MAN4.LZH] isn't exist

system  : binary logical error = 00001 (00000) (00001) (00000) (00001)
system  : binary delete files= 00000 (00001) (00000) (00000) (00000)

warning : binary file logical error

system  : c:\cock\fsw1\00005 to c:\cock\fsw1\00004 could't rename

論理エラーについてですが,テキストにて発生した場合に考えられるのは data.datにあるデータを指し示すポインタが実際と異なるというケースです.
これはリセットやハングアップなどで発生することが多いのですが,この場合は論理エラーの発生しているアーティクルを title only にすることで回避しています.
該当アーティクルは 'NET-COCK' 上から削除するなど対応してください.

バイナリで起こる場合には title.dat 上にあるのにも関わらず,実体がない場合が考えられます.
この場合はそのアーティクルの内容からファイルを補完することが可能ですので,削除やリネームなどは行なわずにメンテナンスは続行されます.
実体のない場合にはボード番号,バイナリ番号,ファイルネームが表示されます.
これを参考にして,メンテナンスを行なってください.

エラーが発生せずに正常に終了すると,data.new,sys_data.new,title.new というファイルがカレントディレクトリにできあがります.
これが今後使用されるファイルになります.再度システムを立ち上げる場合にはこれらを *.dat にリネームするなどして利用してください.
バイナリの削除などを行なわなかった場合には,*.new ファイルを使わなければ,ncsm.x 実行前の状態と何ら変わりません.
万が一の事故のための予防対策になっています.

また,実行の際に以下のオプションをつけることによって動作が変わります.

-?
ヘルプを表示する.
-t
実際に削除や書き込みを行なわない.
-a
ノンストップで実行する.

特に 't' オプションは初めて実行する際には試してみてください.
どのような動作を行なっているかわかるだけではなく,エラーを確認することもできます.

なお,ncsm.x は使い方を間違えるとデータを破壊してしまいます. 注意する点を次に記します.

  1. 'NET-COCK' の子プロセスでは使わない.
  2. メンテナンス後のデータで運営する際は *.new のファイルを *.dat に変更することを忘れずに行なう.
  3. 論理的なエラーが発生しているときは,特に注意する.
    また,プログラムネームの変更時のエラーも注意する.

エラーが発生しても自動的に修復可能なものもあります.
通常の使用ではエラーは発生しないはずです.エラーが出た場合には原因を良く考えてみてください.

オリジナル付属の nncu.x は当システムには対応しておりません.絶対に使用しな
いでください.


5.2 モデム設定ユーティリティ


modemcc.x はホストに使用するモデムの設定を行います.
実行に必要なファイルは modem.dat,modem.lib の2つのファイルです.
modem.dat がシステム実行に必要な設定ファイルで,modem.lib がライブラリデータとなっています.
modemcc.x 実行の際には modem.lib を同じディレクトリ内に入れてください.
そして modem.dat の存在するディレクトリをカレントディレクトリにしてください.
もし modem.dat が存在しなければ,新規ファイルとして作成します.modem.lib が存在しない場合も新規作成します.
その他,実行時に必要なファイルやデバイスドライバはありません.

なお,オリジナルに同梱されている modem_cc.x は対応する速度や,プロトコル,回線数などが異なるために使用できません.

modem.dat が c:\cock,modemcc.x,modem.lib が a:\net に存在する場合.

C:\>cd \cock
C:\cock>a:\net\modemcc


5.2.1 操作方法


ライブラリからの読みだしと回線への設定方法を説明します.
ライブラリに登録されているモデムをお持ちであれば,簡単に設定できます.
設定したい回線に対応するファンクションキーを押してください.
F1 が0回線目で F2 が1回線目というぐあいになっています.
次に HOME を押してください.ライブラリに登録されているモデムの名前が表示されます.
希望のモデムにカーソルを移動してください.カーソルを合わせたらリターンを押してください.
間違えていなければもう一度リターンを押してください.これでその回線の設定は終わりです.

0回線目はホストからのアクセスですから,必ず Host access を選んでください.
モデムを使用せずに,クロスケーブルでターミナルに接続する場合には Cross access を選んでください.
速度はそれぞれのシステムに対応して書き換えて使用します.

モデムを選択すると,画面の上部に DIP-SW 010010 などの数値が表示される場合がありますが,これはモデムにあるディップスイッチの設定を示しています.
0 が ON で,1 が OFF に対応しています.

全ての回線の設定が完了したら ESC を押してプログラムを終了してください.データが書き込まれます.


5.2.2 データの編集


モデムには,様々なコマンドがあり,機種・メーカーによって異なっている場合が多々あります.
モデムについて深い知識のある方は設定も可能でしょうが,今までモデムのコマンドを直接使ったことがないという初心者の方にとっては,難解なものです.
同梱ファイルに付属している modem.lib 中にあるモデムの設定を参考して書き換えることも必要になるでしょう.

そのような場合には,一番近いタイプのモデムをライブラリから選んでください.
そして,修正したいコマンドの位置にカーソルの上下で移動してください.リターンで修正することができます.
文字列中にコントロールコードとして 'CR','BS' を入力したいときは,それぞれ SHIFT+CR,SHIFT+BS で入力できます.

モデムデータの編集で注意するべきことを記しておきます.

  1. 自動着信にはしない.ホストがダウンしたときに,勝手にオフフックするの を防ぐためです.
  2. 端末固定速度を用いる.MNP の性能を発揮するには,回線速度以上の通信速度でホストとモデムをつなぐ必要があります.
  3. フロー制御は必ずハードフローにする.MNP 対応モデムは,モデムとの間でフロー制御を設定できます.
    この設定は RTS/CTS を用いたハードフローにしてください.
    XON/XOFF によるソフトフロー制御では,正常な転送ができません.

修正したデータをライブラリとして登録する場合は HELP を押すことによってデータの読み出しと同じ画面になります.
登録したい位置にカーソルを合わせてからリターンを押してください.
間違えていなければもう一度押してください.これで登録されます.
ライブラリは修正されると終了時に自動的に登録されます.


5.2.3 モデム実行コマンド


modemcc.x でモデムを制御するコマンドには,以下のものがあります.

connect モデム制御プログラムを終了します.
つまり,回線が接続されたことを示します.
これから後は,モデム制御から離れます.
over receive,get コマンドの最大待時間を設定します.
最大 32767 秒です.
wait 指定秒数だけプログラムの実行を停止します.
最大 32767 秒です.
receive 指定の文字列を受け取るまで,プログラムを停止します.
タイムオーバーになれば指定の行へ分岐します.
send 文字列をモデムに出力します.
$00 のコードを送ることはできません.
dtr DTR (ER) 信号の制御を行います.
speed RS-232C の速度,ログ記録速度,エラーフリータイプを設定 します.
通信速度で HOST の設定がありますが,変更なしと同じ扱いになります.
RS-232C の速度はホストとモデム間の速度です.
ログ記録速度は,ログリストに記録される速度で通信回線の速度に合わせてください.
ifdsr DSR 信号が ON のときに分岐します.
ifstr バッファ内のデータと比較して分岐します.
ifspd バッファ内のデータと比較して通信速度の変更を行います.
ifstr,speed が一緒になったコマンドと思ってください.
goto 指定行に移ります.
get モデムから送られてくる CR コードまでの文字列をバッファに格納します.
CR 自身は含みません.タイムオーバー時は分岐します.
timeset ログイン時間を設定します.オフフックと同時に設定してください.

以下にモデムの設定例を記します.参考にしてください.



SportSter288FAX (US ROBOTICS)

00over3
receive の待ち時間を3秒に設定.
01dtroff
02wait2
03dtron
04wait1
05speed115.2K2400非MNP
モデム速度 115.2kbps ログ記録速度は 2400bps で非MNP に設定.
06send"ATZ^m"
07receiveline-00OK^m"
モデムに 'ATZ'+CR を送り,'OK' を待つ.3秒経っても 'OK' が来ない場合には00行へ戻る.
08wait1
09send"ATB0E1F1Q0V1X4M0&S1^m"
10receiveline-00"OK^m"
11wait0
12send"AT&A3&B1&G0&H1&I0^m"
13receiveline-00"OK^m"
14wait0
15send"AT&M4&N0&P0&R2&T5^m"
16receiveline-00"OK^m"
17wait0
18send"ATS44Y11=100^m"
19receiveline-00"OK^m"
20over30
21receiveline-00"RIN"
receive の待ち時間を30秒に設定して 'RIN' (RING) を待つ.
22timeset
ログイン時間計測開始.
23wait1
24send"ATA^m"
25over40
26receiveline-00"CONNEC"
'ATA+CR' を送り着信 (CONNECT) を40秒間待つ.なにもなかったら00行へ戻る.
27getline-00
モデムからのリザルトコードを待つ.40秒間何も文字が来なかったら00行へ戻る.
28ifspd左寄せ比較一致変更なし変更なしMNP"T 2400/ARQ/"
モデムのリザルトコードを最初から比較する.
'CONNECT2400/ARQ/' ならモデム速度変更なし,ログ記録速度変更なし,プロトコルは MNP に設定する.
29ifspd左寄せ比較一致変更なし4800MNP"T 4800/ARQ/"
30ifspd左寄せ比較一致変更なし7200MNP"T 7200/ARQ/"
31ifspd左寄せ比較一致変更なし9600MNP"T 9600/ARQ/"
32ifspd左寄せ比較一致変更なし12000MNP"T 12000/ARQ/"
33ifspd左寄せ比較一致変更なし14400MNP"T 14400/ARQ/"
34ifspd左寄せ比較一致変更なし16800MNP"T 16800/ARQ/"
35ifspd左寄せ比較一致変更なし19200MNP"T 19200/ARQ/"
36ifspd左寄せ比較一致変更なし21600MNP"T 21600/ARQ/"
37ifspd左寄せ比較一致変更なし24000MNP"T 24000/ARQ/"
38ifspd左寄せ比較一致変更なし26400MNP"T 26400/ARQ/"
39ifspd左寄せ比較一致変更なし28800MNP"T 28800/ARQ/"
40ifspd右寄せ比較一致変更なし変更なしMNP4"MNP"
リザルトコードを終わり側から比較する.'MNP' ならプロトコルは MNP4 に設定する.
41ifspd右寄せ比較一致変更なし変更なしMNP5"5"
42ifspd右寄せ比較一致変更なし変更なしLAPM"LAPM"
43ifspd右寄せ比較一致変更なし変更なしLAPMV"V42BIS"
44wait0
45send"^m^j"
46send"Node1
47send"^m"
48connect
モデム (相手側コンソール) に文字列を送信し,コネクト作業終了.



設定の際に変更が特に要する部分は,モデムのコマンド部分とコネクトリザルトの判別部分です.
同じ機種を利用している方に尋ねてみるのも1つの方法でしょう.


5.3 オリジナル 'NET-COCK' からの移行


既にオリジナル 'NET-COCK' で運営している場合は,沙希さん system に移行する際に実行ファイルを入れ替えるだけでは,一部データファイルの互換性がないために正しく動作しません.
そこでその互換性のないデータファイルに対して,コンバートを行なうことによって設定を引き継いで,使用を可能にすることができます.

user.dat に対しては usercv.r,sys_data.dat に対しては sysdatcv.r が用意されております.
それぞれ,コンバートしたいファイルを同じディレクトリ内におき,実行すれば,沙希さん system で使用可能なデータファイルにコンバートされます.

C:\cock>usercv

NET-COCK ver3.60+1.00.xx 沙希さん system 支援ツール
USER.DAT converter 'usercv.r' ver0.12
Programmed by MoAi-ANDOR.S 1995,96,98

system : user.dat を open しました
system : **************
system : process を終了しました

C:\cock>sysdatcv

NET-COCK ver3.60+1.00.xx 沙希さん system 支援ツール
SYS_DATA.DAT converter 'sysdatcv.r' ver0.08
Programmed by MoAi-ANDOR.S 1995,97,98

system : sys_data.dat を open しました
system :
system : process を終了しました

オリジナルでない 'NET-COCK' の場合でも,特にデータに変更がない場合にはこのコンバータは使用できますが,データに変更を加えてある改造版の場合にはこれを利用することはできません.
その際は,該当する改造版のデータ構成を知らせて頂ければ当方にてコンバータを作成することもできるかと思います.


[戻る]