Mercurial > freewnn
view Wnn/manual/7.Protocol/KKTP @ 19:e48bf9927b1c
added make rule for build_stamp.h to cWnn and kWnn so that they will be built correctly.
author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
---|---|
date | Mon, 14 Apr 2008 17:55:44 +0900 |
parents | bbc77ca4def5 |
children |
line wrap: on
line source
仮名漢字変換プロトコル(KKTPバージョン4.003)一覧 1. コネクションの確立 KKTP は、ストリーム型のソケットを用いて通信を行なう。 アドレス・ファミリーとしては、INET と UNIX と両方サポートしている。 INET 型の場合、ポート番号は、0x5701 である。 socket, connect により、通信路の確立は終了する。 以下、個々の通信プリミティブについてプロトコルを述べる。 通信路を確立した後、最初に、JS_OPEN プリミティブを呼ぶ必要がある。 2. データの種類 このプロトコルで使用されるデータの種類と名前、構造は以下の通り。 ・基本型 BYTE: 8ビットデータ WORD: 16ビット文字 INT: 32ビット符号付き整数 ・定数 NULL: WORD型 0x0000 BNULL: BYTE型 0x00 EOF: BYTE型 0xFF,0xFF ERROR: INT型 -1 ・文字列 TEXT: WORD列、列の最後に終端文字として NULL を持つ。 STRING: BYTE列、列の最後に終端文字として BNULL を持つ。 FILE: BYTE列、列の最後に終端文字として EOF もつ。 # FILE型 はファイルの内容をBYTE列にしたもの。 # ただし、BYTE の内容が 0xFF の場合はこれを # 0xFF, 0x00 に変換する。 ・構造を持ったデータ データ構造の記述は以下のように行なう。 (0) データの並び { A B C } データ A B C の並びを表す。 (1) データの繰り返し repeat ( A ) { B C } データの並び B C の A 回繰り返し。 (2) 選択 if ( A ) { B C } 条件 A が成り立つ場合には、データ並び B C をとる。 (3) 終了 exit データの終り。 構造を持ったデータ UNIFIER: ファイル唯一子 { INT time INT dev INT inode repeat(16) { BYTE createhost } } JOHO: 単語情報、複数の単語に関する情報を持つ。 struct wnn_jdata { INT 語数 INT 送られる文字列の大きさ (terminate 文字は含まれていない) repeat(語数){ INT 辞書番号 INT 辞書内のエントリ番号 INT 品詞番号 INT 頻度 INT "今使ったよ"ビット INT 辞書内頻度 INT 辞書内の"今使ったよ"ビット } repeat(語数){ TEXT 読み TEXT 漢字 TEXT コメント } } # ただし、「語数」に達していないうちに「辞書番号」が -1 になった場合には、 # 単語情報はその前の語数分のみとする。 DIC: 辞書情報 struct wnn_dic_info { INT 辞書番号 INT 辞書本体のファイル番号 INT 頻度のファイルの番号 INT 辞書の登録可能性 INT 頻度の更新可能性 INT 辞書使用中 INT 変換時の辞書の優先度 INT 逆変換 TEXT 辞書のコメント STRING 辞書のファイル名 STRING 頻度のファイル名 STRING 辞書のパスワード STRING 頻度のパスワード INT 辞書の種類 INT 辞書の語数 INT localf INT hlocalf } DAIBUN: 大文節 struct wnn_dai_bunsetsu { INT 大文節数 if(大文節数 == -1){ INT エラー番号 exit } INT 小文節数 INT 漢字情報長さ repeat(大文節数){ INT 候補文節の end char index INT 候補文節の start char index INT 小文節数 INT 大文節評価値 } repeat(大文節数) { repeat(各大文節の小文節数){ INT 候補文節の end char index INT 候補文節の top char index INT 候補文節の自立語 end char index INT 自立語の辞書エントリ番号 INT 候補文節の自立語辞書エントリー INT 候補自立語の頻度 INT 候補自立語の"今使ったよ"ビット INT 自立語品詞 INT 大文節の先頭 INT 後ろの文節に接続できるか ? INT 接続ベクトルテーブルへのポインタ INT 小文節評価値 } } repeat(大文節数) { repeat(各大文節の小文節数){ TEXT 漢字 # 自立語文字列 TEXT 読み # 自立語の読み文字列 TEXT 付属語 } } SHOBUN: 小文節 struct wnn_sho_bunsetus { INT 小文節数 if(小文節数 == -1){ INT エラー番号 exit } INT 漢字情報長さ repeat(小文節数){ INT 候補文節の end char index INT 候補文節の start char index INT 候補文節の自立語 end char index INT 自立語辞書内のエントリ番号 INT 候補文節の自立語辞書 entry INT 自立語品詞 INT 候補自立語の"今使ったよ"ビット INT 自立語品詞 INT 大文節の先頭 INT 後ろの文節に接続できるか ? INT 接続テーブルへのポインタ INT 小文節評価値 } repeat(小文節数){ TEXT 漢字 # 自立語文字列 TEXT 読み # 自立語の読み文字列 TEXT 付属語 } } 3. 受渡しの方式 それぞれの型のデータについて、受け渡し方は、以下の通りである。受け渡し 方は、クライアントからサーバ、サーバからクライアントのどちらの通信でも 同じである。 BYTE 1バイト送る。 WORD 上位バイトから順に2バイト送る。 INT 上位バイトから順に4バイト送る。 TEXT WORD を先頭から順に送り、最後に NULL を送る。 STRING BYTE を先頭から順に送り、最後に BNULL を送る。 構造を持ったデータは、データの並びの順に送り出す。 ここのデータは上記の手順に従う。 4. 個々のプリミティブの説明 4.0 凡例 本ドキュメントの書式と表記法について Request => クライアントから、サーバへ向けての要求のデータの並び。 "名称"、"型"、"内容" の順に書かれている。 データの並び順は制御構造に従う。 <= Reply サーバーからクライアントに向けての応答データの並び。 表記法は Request と同じ。 # 必要に応じて、このようにコメントが入れられる。 4.1 JS_OPEN 日本語マルチクライアントサーバ (jserver) の使用を開始する。 Request => 識別子 INT 0x0001 バージョン番号 INT 0x4003 ホスト名 STRING ユーザー名 STRING <= Reply 状態 INT if ( 状態 == ERROR ) { エラー番号 INT } 4.2 JS_CLOSE 日本語マルチクライアントサーバの使用を終了する。 Request => 識別子 INT 0x0003 <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.3 JS_CONNECT サーバとの間にコネクションを張る。 Request => 識別子 INT 0x0005 環境名 STRING <= Reply 環境ID INT if(環境ID == ERROR){ エラー番号 INT } 4.4 JS_ENV_EXIST サーバ中に環境が存在するかを調べる。 Request => 識別子 INT 0x0007 環境名 STRING <= Reply 返値 INT 4.5 JS_ENV_STICKY 環境をスティッキーにする。 Request => 識別子 INT 0x0008 環境ID INT <= Reply 返値 INT 4.6 JS_ENV_UN_STICKY 環境をスティッキーにしない。 Request => 識別子 INT 0x0009 環境ID INT <= Reply 返値 INT 4.7 JS_DISCONNECT サーバとの間のコネクションを切る。 Request => 識別子 INT 0x0006 環境ID INT <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.8 JS_PARAM_SET 変換パラメータを設定する。 Request => 識別子 INT 0x0041 環境ID INT N(大)文節解析 INT 大文節中の小文節の最大数 INT 自立語の頻度パラメータ INT 小文節長のパラメータ INT 自立語長のパラメータ INT 今使ったよビットのパラメータ INT 辞書のパラメータ INT 小文節の評価値のパラメータ INT 大文節長のパラメータ INT 小文節数のパラメータ INT 疑似品詞 数字の頻度 INT 疑似品詞 カナの頻度 INT 疑似品詞 英数の頻度 INT 疑似品詞 記号の頻度 INT 疑似品詞 閉じ括弧の頻度 INT 疑似品詞 付属語の頻度 INT 疑似品詞 開括弧の頻度 INT <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.9 JS_PARAM_GET 変換パラメータを取り出す。 Request => 識別子 INT 0x0042 環境ID INT <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT exit } N(大)文節解析 INT 大文節中の小文節の最大数 INT 自立語の頻度パラメータ INT 小文節長のパラメータ INT 自立語長のパラメータ INT 今使ったよビットのパラメータ INT 辞書のパラメータ INT 小文節の評価値のパラメータ INT 大文節長のパラメータ INT 小文節数のパラメータ INT 疑似品詞 数字の頻度 INT 疑似品詞 カナの頻度 INT 疑似品詞 英数の頻度 INT 疑似品詞 記号の頻度 INT 疑似品詞 閉じ括弧の頻度 INT 疑似品詞 付属語の頻度 INT 疑似品詞 開括弧の頻度 INT 4.10 JS_MKDIR サーバの管理下にディレクトリを作成する。 Request => 識別子 INT 0x0051 環境ID INT パス名 STRING <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.11 JS_ACCESS ファイルのアクセス権を調べる。 Request => 識別子 INT 0x0053 環境ID INT アクセスモード INT パス名 STRING <= Reply 状態 INT 4.12 JS_FILE_LIST_ALL サーバ中の全てのファイルに関する情報を得る。 Request => 識別子 INT 0x0056 <= Reply 個数 INT repeat(個数){ ファイル番号 INT ファイルロケーション INT 環境からの参照数 INT ファイルの種類 INT ファイル名 STRING } # ファイルロケーション 1: サーバホストのファイル # 0: クライアントホストのファイル 4.13 JS_FILE_LIST 環境中の全てのファイルに関する情報を得る。 Request => 識別子 INT 0x0068 環境ID INT <= Reply 個数 INT repeat(個数){ ファイル番号 INT ファイルロケーション INT 環境からの参照数 INT ファイルの種類 INT ファイル名 STRING } 4.14 JS_FILE_STAT ファイルのタイプを調べる。 Request => 識別子 INT 0x006f 環境ID INT パス名 STRING <= Reply ファイルの種類 INT 4.15 JS_FILE_INFO ファイルの情報を調べる。 Request => 識別子 INT 0x0069 環境ID INT ファイルID INT <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT exit } ファイル番号 INT ファイルロケーション INT 環境からの参照数 INT ファイルの種類 INT 4.16 JS_FILE_LOADED サーバマシン上のファイルがロードされているかを調べる。 Request => 識別子 INT 0x006a パス名 STRING <= Reply 状態 INT 4.17 JS_FILE_LOADED_LOCAL クライアントマシン上のファイルがロードされているかを調べる。 # ローカルなファイルのヘッダー部分の情報を送り、そのファイルが # サーバ内に存在するかどうかを得る。 Request => 識別子 INT 0x006b ファイル唯一子 UNIFIER <= Reply 状態 INT 4.18 JS_HINDO_FILE_CREATE 辞書ファイルの頻度ファイルを作る。 Request => 識別子 INT 0x0065 環境ID INT ファイルID INT ファイル名 STRING コメント TEXT パスワード文字列 STRING <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.19 JS_DIC_FILE_CREATE 辞書ファイルの作成を行なう。 Request => 識別子 INT 0x0066 環境ID INT ファイル名 STRING コメント TEXT パスワード文字列 STRING 頻度部分パスワード文字列 STRING 辞書のタイプ INT <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.20 JS_FILE_DISCARD ファイルをサーバ上からなくす。 Request => 識別子 INT 0x006c 環境ID INT ファイルID INT <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.21 JS_FILE_READ サーバ側のファイルをロードする。 Request => 識別子 INT 0x0061 環境ID INT ファイル名 STRING <= Reply ファイルID INT if( ファイルID == ERROR){ エラー番号 INT } 4.22 JS_FILE_WRITE サーバマシン上にファイルをセーブする。 Request => 識別子 INT 0x0062 環境ID INT ファイルID INT ファイル名 STRING <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.23 JS_FILE_RECEIVE クライアント側へファイルをダウンロードする。 Request => 識別子 INT 0x0064 環境ID INT ファイルID INT <= Reply ファイル名 STRING # サーバ内に蓄えられていた名前 Request => if(中断したい時){ # 条件「中断したい時」は、Reply の内容を見て決める。 中断する INT -1 exit } 継続する INT 0 ファイル唯一子 UNIFIER # ファイルをセーブしたい場所に Wnn のファイルが存在する # 場合、そのファイル唯一子を送る。それ以外の場合には、 # すべて0を送る。 <= Reply モード INT # ファイルを書き換える必要性を「モード」として返す # モード=-1:エラー # モード=0:必要なし # モード=1:全体を書き換える # モード=2:辞書の頻度部分のみを書き換える # モード=3:元のファイルと異なる内容を書き込む if (モード == ERROR) { エラー番号 INT exit } Request => if (中断したい時) { # 条件「中断したい時」は、Reply の内容を見て決める。 中断する INT -1 exit } 継続する INT 0 <= Reply ファイルの内容 FILE # モード=1,2,3の時、ファイルの先頭から送られてくる。 # モード = 1,3 の時は、ファイルの最後まで送られる。 # モード = 2 の時は、頻度部分の最後までが送られる。 状態 INT if (状態 == ERROR){ エラー番号 INT } 4.24 JS_FILE_SEND クライアント側のファイルをアップロードする。 Request => 識別子 INT 0x0063 環境ID INT ファイル唯一子 UNIFIER # まず、ファイルがすでにサーバ内に存在しているか調べる。 <= Reply 存在 INT if (存在 != -1) { # ファイルがすでに存在している。 状態 INT if (状態 == ERROR) { エラー番号 INT exit } exit } 状態 INT if (状態 == ERROR) { エラー番号 INT exit } Request => ファイルの内容 FILE # もし、何かの理由でファイルの送信をしない時には、 # 大きさ0の文字列を送る。 <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.25 JS_DIC_ADD 使用辞書を追加する。 Request => 識別子 INT 0x0021 環境ID INT ファイルID INT 頻度ファイルのファイルID INT プライオリティ INT 更新可能か INT 頻度更新可能か INT パスワード STRING 頻度パスワード STRING 正変換/逆変換 INT <= Reply 状態 INT if ( 状態 == ERROR ) { エラー番号 INT } 4.26 JS_DIC_DELETE 使用辞書を削除する。 Request => 識別子 INT 0x0022 環境ID INT 辞書no INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.27 JS_DIC_USE 辞書の使用/不使用の状態を設定する。 Request => 識別子 INT 0x0023 環境ID INT 辞書no INT flag INT # 0 か 1 <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.28 JS_FUZOKUGO_SET 付属語ファイルを指定する。 Request => 識別子 INT 0x0029 環境ID INT ファイルID INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.29 JS_FUZOKUGO_GET 付属語ファイルのファイル番号を得る。 Request => 識別子 INT 0x0030 環境ID INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.30 JS_DIC_LIST_ALL 全ての辞書情報を得る。 Request => 識別子 INT 0x0029 <= Reply 個数 INT repeat(個数){ 辞書情報 DIC } 4.31 JS_DIC_LIST 使用中の辞書情報を得る。 Request => 識別子 INT 0x0024 環境ID INT <= Reply 個数 INT repeat(個数){ 辞書情報 DIC } 4.32 JS_WORD_ADD 辞書に単語を登録する。 Request => 識別子 INT 0x0031 環境ID INT 辞書no INT 読み TEXT 漢字 TEXT コメント TEXT 品詞 INT 初期頻度 INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.33 JS_WORD_DELETE 辞書から単語を削除する。 Request => 識別子 INT 0x0032 環境ID INT 辞書no INT エントリ INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.34 JS_WORD_SEARCH 辞書から単語を検索する。 Request => 識別子 INT 0x0033 環境ID INT 辞書no INT 読み TEXT <= Reply 辞書単語情報 JOHO 4.35 JS_WORD_SEARCH_BY_ENV 環境の内の全ての辞書から単語を検索する。 Request => 識別子 INT 0x0034 環境ID INT 読み TEXT <= Reply 辞書単語情報 JOHO 4.36 JS_WORD_INFO 辞書引きを行なう。 Request => 識別子 INT 0x0034 環境ID INT 辞書no INT エントリ INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 読み TEXT Request => 辞書単語情報 JOHO # 1つのみである 4.37 JS_WORD_COMMENT_SET 単語にコメントをセットする。 Request => 識別子 INT 0x0036 環境ID INT 辞書no INT エントリ INT コメント TEXT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.38 JS_DIC_INFO 辞書情報の取り出し。 Request => 識別子 INT 0x0025 環境ID INT 辞書no INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 辞書情報 DIC 4.39 JS_WHO サーバの使用者を得る。 Request => 識別子 INT 0x0039 <= Reply 個数 INT if (個数 == ERROR) { エラー番号 INT } repeat(個数){ ソケットディスクリプタ INT ユーザ名 STRING ホスト名 STRING repeat(j=0:WNN_MAX_ENV_OF_A_CLIENT){ 環境番号列 INT } } 4.40 JS_ENV_LIST サーバ中の全ての環境に関する情報を得る。 Request => 識別子 INT 0x0055 <= Reply 個数 INT if (個数 == ERROR) { エラー番号 INT } repeat(個数){ 環境番号 INT 環境名 STRING 参照数 INT 付属語のファイル番号 INT 使用辞書数 INT repeat(j=0:WNN_MAX_JISHO_OF_AN_ENV){ 使用辞書番号 INT } repeat(j=0:WNN_MAX_FILE_OF_AN_ENV){ 使用ファイル番号 INT } } 4.41 JS_HINDO_SET 辞書ファイルの頻度を設定する。 Request => 識別子 INT 0x0018 環境ID INT 辞書no INT エントリ INT 今使ったよビット INT 頻度 INT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.42 JS_KANREN 連文節変換を行なう。 Request => 識別子 INT 0x0011 環境ID INT 読み TEXT (前の)品詞 INT (前の)付属語 TEXT 終端ベクトル INT 終端ベクトル1 INT 終端ベクトル2 INT <= Reply 大文節受けとり DAIBUN 4.43 JS_KANTAN_DAI 大文節単位で単文節変換を行なう。 Request => 識別子 INT 0x0014 環境ID INT 読み TEXT (前の)品詞 INT (前の)付属語 TEXT 終端ベクトル INT 終端ベクトル1 INT <= Reply 大文節受けとり DAIBUN 4.44 JS_KANTAN_SHO 小文節単位で単文節変換を行なう。 Request => 識別子 INT 0x0012 環境ID INT 読み TEXT (前の)品詞 INT (前の)付属語 TEXT 終端ベクトル INT 終端ベクトル1 INT <= Reply 小文節受けとり SHOBUN 4.45 JS_KANZEN_DAI 大文節単位で単文節変換し全候補を得る。 Request => 識別子 INT 0x0015 環境ID INT 読み TEXT (前の)品詞 INT (前の)付属語 TEXT 終端ベクトル INT 終端ベクトル1 INT <= Reply 大文節受けとり DAIBUN 4.46 JS_KANZEN_SHO 小文節単位で単文節変換し全候補を得る。 Request => 識別子 INT 0x0013 環境ID INT 読み TEXT (前の)品詞 INT (前の)付属語 TEXT 終端ベクトル INT 終端ベクトル1 INT <= Reply 小文節受けとり SHOBUN 4.47 JS_VERSION サーバ、及び、ライブラリのバージョンを調べる。 Request => 識別子 INT 0x0000 <= Reply サーバ・バージョン INT 4.48 JS_KILL サーバを終了させる。 Request => 識別子 INT 0x0070 <= Reply 状態 INT 4.49 JS_FILE_REMOVE サーバのファイルシステムのファイルを消去する。 Request => 識別子 INT 0x0067 ファイル名 STRING パスワード STRING <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.50 JS_HINDO_FILE_CREATE_CLIENT クライアント・サイトに辞書ファイルの頻度ファイルを作る。 Request => 識別子 INT 0x0071 環境ID INT ファイルID INT # 辞書の <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT exit } 語数 INT ファイル唯一子 UNIFIER 4.51 JS_FILE_COMMENT_SET ファイルにコメントをセットする。 Request => 識別子 INT 0x0060 環境ID INT ファイルID INT コメント TEXT <= Reply 状態 INT if (状態 == ERROR) { エラー番号 INT } 4.52 JS_HINSI_NAME 品詞番号から名前を取る。 Request => 識別子 INT 0x0073 品詞番号 INT <= Reply 名前の長さ INT if(名前の長さ== ERROR){ エラー番号 INT exit } 名前 TEXT 4.53 JS_HINSI_NUMBER 品詞名を品詞番号に変換する。 Request => 識別子 INT 0x0074 名前 TEXT <= Reply 番号 INT if(番号 == ERROR){ エラー番号 INT } 4.54 JS_HINSI_LIST あるノードに属する品詞名の一覧を得る。 Request => 識別子 INT 0x0072 環境ID INT 辞書no INT 名前 TEXT <= Reply 個数 INT if(個数 == ERROR){ エラー番号 INT } 必要な領域の長さ INT repeat(個数){ 品詞ノード名 TEXT } 4.55 JS_HINSI_DICTS ある品詞の単語が登録可能な辞書の一覧を得る。 Request => 識別子 INT 0x0075 環境ID INT 品詞番号 INT <= Reply 個数 INT if(個数 == ERROR){ エラー番号 INT exit } repeat(個数){ 辞書番号 INT } 4.56 JS_FILE_PASSWORD_SET ファイルのパスワードを更新する。 Request => 識別子 INT 0x006E 環境ID INT ファイルID INT 辞書部分か、頻度部分か INT 昔のパスワード STRING 新しいパスワード STRING <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 4.57 JS_HINSI_TABLE_SET 辞書に登録可能な品詞の一覧を登録する。 Request => 識別子 INT 0x0076 環境ID INT 辞書no INT 品詞テーブル TEXT <= Reply 状態 INT if(状態 == ERROR){ エラー番号 INT } 5. プリミティブ識別番号一覧 各プリミティブは、ヘッダーとして、プリミティブを識別する整数(表参照)を クライアントからサーバに送ることにより始まる。 プリミティブ名 識別番号 JS_VERSION 0x00 JS_OPEN 0x01 JS_CLOSE 0x03 JS_CONNECT 0x05 JS_DISCONNECT 0x06 JS_ENV_EXIST 0x07 JS_ENV_STICKY 0x08 JS_ENV_UN_STICKY 0x09 JS_KANREN 0x11 JS_KANTAN_SHO 0x12 JS_KANZEN_SHO 0x13 JS_KANTAN_DAI 0x14 JS_KANZEN_DAI 0x15 JS_HINDO_SET 0x18 JS_DIC_ADD 0x21 JS_DIC_DELETE 0x22 JS_DIC_USE 0x23 JS_DIC_LIST 0x24 JS_DIC_INFO 0x25 JS_FUZOKUGO_SET 0x29 JS_FUZOKUGO_GET 0x30 JS_WORD_ADD 0x31 JS_WORD_DELETE 0x32 JS_WORD_SEARCH 0x33 JS_WORD_SEARCH_BY_ENV 0x34 JS_WORD_INFO 0x35 JS_WORD_COMMENT_SET 0x36 JS_PARAM_SET 0x41 JS_PARAM_GET 0x42 JS_MKDIR 0x51 JS_ACCESS 0x52 JS_WHO 0x53 JS_ENV_LIST 0x55 JS_FILE_LIST_ALL 0x56 JS_DIC_LIST_ALL 0x57 JS_FILE_READ 0x61 JS_FILE_WRITE 0x62 JS_FILE_SEND 0x63 JS_FILE_RECEIVE 0x64 JS_HINDO_FILE_CREATE 0x65 JS_DIC_FILE_CREATE 0x66 JS_FILE_REMOVE 0x67 JS_FILE_LIST 0x68 JS_FILE_INFO 0x69 JS_FILE_LOADED 0x6A JS_FILE_LOADED_LOCAL 0x6B JS_FILE_DISCARD 0x6C JS_FILE_COMMENT_SET 0x6D JS_FILE_PASSWORD_SET 0x6E JS_FILE_STAT 0x6F JS_KILL 0x70 JS_HINDO_FILE_CREATE_CLIENT 0x71 JS_HINSI_LIST 0x72 JS_HINSI_NAME 0x73 JS_HINSI_NUMBER 0x74 JS_HINSI_DICTS 0x75 JS_HINSI_TABLE_SET 0x76